Mobile app testing, in addition to the basic functional test method, requires additional attention to the following:
Compatibility test
These aspects are typically considered for apps:
1. Operating system version
Includes Andoird version, iOS version
2. Screen resolution
Android 800*480, 960*640,1280*720 (720p), 1920*1080 (1080p), 2560*1440 (2k).
For iOS, consider the resolution for the most recent generation of models.
3, different manufacturers of ROM
Different manufacturers of the ROM, most manufacturers have to customize the Android system, the actual will encounter such as the call camera and the underlying service is incompatible with the problem and shake the different phones encountered on the direction and gravity sensor sensitivity set different problems.
4. Network type
The network type usually takes into account the functional situation under WIFI,2G,3G4G. Also consider different browser types and screen resolutions for the M version of the site.
Flow test
In the mobile product testing, it is necessary to measure the traffic used by the app, in general, the traffic can be divided from the perspective of the user's relevance: One is the user's operation directly caused by the traffic consumption, the other is the background, that is, the user is not directly used in the case of traffic consumption.
Test method of Flow:
1, based on the system comes with the function.
Eg Android Proc/uid_stat/{uid}/tcp_send
Android Proc/uid_stat/{uid}/TCP_RCV
2, through the API or system buried point to obtain data.
3, the general Flow test method: Mobile phone capture bag, or WiFi agent (Fiddler, Charles).
Common ways to save traffic:
1, data compression.
2, compression contains the interface text data compression, JS file compression and image compression.
3. Adoption of different data formats
For example, using the JSON format as the interface data return format is usually smaller than the XML format.
4, control the frequency of access
This is mainly for background data escalation, push message checking and other timing mechanisms.
5. Obtain only the necessary data
Sometimes the content of a page of the app is very large, and the user may only see a part, too much data from the background is wasted, so you can use split-screen loading or lazy loading way to reduce traffic consumption.
6. Cache
Can save the image, JS and other data, but because of limited storage space, you also need to control the entire cache size, and provide users with the option to clean up the cache.
7. Design different access strategies for different network types
Some apps have different network types that return content differently.
Battery test
In the electrical battery technology has not made a huge breakthrough premise, there will always be some bottlenecks, if some of the application architecture design is not good, or code even defects, it may lead to high power consumption, so the battery test is also very important.
Tool GSam Battery Monitor Pro.
Weak network Testing
Mobile Internet products compared to PC Internet products, there is a feature of the former use of the network is more diverse, in addition to wif, many times it is used under the mobile network, the mobile network encounters more complex situations, such as subways, tunnels, stadiums and so on. So the situation of network instability is relatively easy to happen, in many cases the application of some problems in the complex network situation will be exposed, rather than let users find and complain about these problems, we in the testing phase as far as possible to simulate such network conditions, early detection and repair of these problems.
Tools:
Network Delay Simulator under Windows
Network Link conditioner under Mac
Stability Testing
The stability of the app is very important to ensure that the basic function is correct, and if an app often flashes or snaps, the user experience can be very damaging, and it is easy to churn out the user in the presence of other competing products.
Security testing
1, including the installation package security test (can decompile code, installation package is signed, integrity check, permission set check, etc.).
2, sensitive information testing (database, log, configuration file).
3, soft keyboard hijacking (Financial app login page user name password input box),
Account security (password is clear, password transmission is encrypted, account input errors too many locks, simultaneous session reminders, logoff mechanism)
Data communication security (whether the critical data is hashed or encrypted, whether the critical connection uses secure communication, whether the validity of the digital certificate is verified, and whether or not the legitimacy of the database is validated.
4, component safety test.
5. Server-side interface test (SQL injection test, XSS cross-site scripting attack, CSRF cross-site request forgery, unauthorized access, etc.).
Environment-related tests
There are some flaws in the actual project that I find to be relevant to the operating environment in which the app is located, so when designing tests, consider these scenarios more, such as:
1. Interference test
Receive a call, receive a text message, receive a notification bar message, a no-power alert box pops up, a third-party security software alarm pops up.
2. Permission Test
Some users consciously block certain features when they actually use the app. For example, some users feel that allowing an app to access a phone book or an album may reveal privacy, and that the app has no access to the album in the phone.
3. Boundary test
The mobile environment itself also has its boundary conditions that need to be covered in the test. The common scenarios are:
Too little available storage, no SD card/dual SD card, flight mode, incorrect system time (later than and before Standard time), third-party dependencies (e.g. our app relies on third-party apps, but now the third-party app is not installed or the version is too low for testing).
4. Android Location test
Simulate with a white-box method
Summary of mobile app test methods