With the popularity of smart devices and the rise of mobile internet, internet giants are moving to the mobile end of the layout and transformation, while the start-up mobile internet companies are also staring at the market hope share. In this environment, the focus of the Internet has slowly shifted from the web to the mobile side, and mobile software testing has become more and more important.
In the mobile software, the hand-tour is a very large piece. As can be seen from the following figure, the popularity of smartphones and the growth of hand-play home is closely related:
Before joining the Goose factory, the author has long been engaged in the mobile phone app test development work. 1 years ago joined the Goose factory to do the hand-tour test work, through the exploration practice, found that both in the same test theory based on, in fact, has a very different test scenarios and testing requirements. Here are some of the basic parts, covering the difference between the two in manual and automated testing, hoping to help people who want to test the test from the app to the friends.
1 App Automation testing is completely different from hand-travel automation testing
The development of mobile apps and hand tours is different, which leads to the difference between the automated testing techniques.
For Android development examples, mobile apps are generally developed using the Android SDK and written in Java. Through the services provided by Android, we can obtain the view information of the app's current window, and then find and manipulate controls such as buttons to complete automated testing, such as Uiautomator. The process is standardized and technically no more difficult, so the methods of automated testing for each company's app are similar.
But the development of the hand tour is not so. Hand tours are generally used in engine development and are now famous for cocos2d and Unity3d. Both are developed using the engine's own language, and the main mainstream is C + + and C #, although in the development process there are buttons and other control concepts, but when the runtime is rendered by the engine, it becomes a simple picture:
Figure: What you see in the game is just a simple picture, and the button is no longer a control.
As a result, we will not be able to use the Android-brought service to find the game buttons, it will not be able to conduct regular automated testing.
If someone says that their technology is based on Android native control recognition, then must not be able to do hand-travel automated testing. The problem is that everyone is exploring the solution, and we are now automating the test by injecting the engine SDK into the way the installation package reflects the engine layer control, which has a good effect.
2 different gameplay results in more complex functional testing 2.1 randomness
The scene and process of the game is dynamic and is accompanied by random elements, which is reflected in two points.
- You play a game level again and it is possible that the enemy and the game process are different two times.
- You do not operate when you play a hand, and the enemy and surrounding scenes change at the same time.
These two points pose a huge challenge to automated testing, and if the test script is not flexible enough, it can easily cause the last script to run successfully. We need to properly include exploratory and adaptive functionality in our test scripts.
There is no problem with app testing, and most apps are static and repeatable. So automated testing can be written and executed exactly as a test script.
2.2 Exploratory sex
The second play of the Hand tour and app is different from exploratory. Apps are generally functional, and good apps need to tell users about their functions in a straightforward way. And the game is entertainment, need to give players a certain exploration elements. Therefore, when doing the hand-travel test, we need to test the game's user help to clarify whether it is clear, and the follow-up play and exploration process and the previous given the explanation of whether there is a reasonable connection between the instructions of the rule is sufficient prompt.
2.3 Difficulty Test
The simpler the app wants to do, the lower the user's cost of using the better. and hand-travel is difficult to set. When we do the hand-tour function test, we will adjust the resources and level to the maximum to facilitate the execution of post-function, but when all the functional tests are done, we need to initialize their resources to "return" to an ordinary player's level, through the view of ordinary players to see whether the game is more difficult to improve is reasonable, Whether the resource allocation is uniform.
2.4 Level Test
The use of the app is functional, and the reuse of a function is always the same. The concept of a hand tour with a level, even if the same play, levels and levels there are subtle differences between the front level test is correct, does not mean that the following levels must be correct. The author has encountered a bug in the hand tour, when the game to a later level, the game will certainly crash. The cause of this bug is also simple: this level of picture resources in the packaging of the client is not joined. So when we play the front level, it doesn't trigger the bug, but the one to the back of the level goes wrong.
This type of bug is simple, but it's really hard to test. Because each level of play is consistent, but a game of the number of levels is very much. If we go through all the levels, the cost of manpower will be very large. For this kind of repetitive level testing, it is recommended to use an automated script for traversal.
2.5 PVP Test
The use of the app is generally single, while the hand-tour often has a player PvP pvp mode, good Hand tour is a real-time PvP mode. The test of network latency becomes critical because two of players play games in real-time or in PvP. In testing, we need to simulate the impact of different networks on game latency, observe the two players ' status and data consistency, and experience the impact of network latency on the game feel, which is completely unnecessary in traditional app testing.
3 hands-on test more value commercial Test 3.1 payment test
Mobile apps are mostly advertising-based, and don't charge users directly. and the direct consumer group is the player, in the course of the game with the player a large number of payment operations. Because this type of operation is closely related to the player's money, the test of the payment class is guaranteed to be the highest priority in any game.
We need to ensure that the player's payment operation is properly executed or the correct failure alert is given in all strict circumstances. For example, when the network is in poor condition, multiple confirmations of the user's payment interface must be performed only once. When the user in the payment process interrupted the network, did not receive the goods, the game needs to be in the player's network after the first replacement of the goods, and make a clear hint. In addition, the payment operation requires a large number of different systems, different models of mobile phone adaptation operation to reduce the likelihood of error.
3.2 Safety Testing
For most non-payment apps, security is not a particularly big problem, only the security of login authentication is guaranteed. The app is a user-friendly tool, and no one can lock the memory when using their own calculator app, or turn the addition operation into a multiplication operation.
The hand swims in this very different, the hand swims with the player to some extent has "the confrontation" the factor, the player must defeat the game level to obtain the reward, but the game level must set certain difficulty to prevent the player. If the game's plug-in, players do not need any confrontation to win, on the one hand, the balance of the game impact, so that some players more resources than other players, on the other hand in the long run will make the game boring, resulting in the player's departure.
The common approach to security testing of games is to lock/modify memory to block and modify the game's resources, and to change game logic by modifying the game's memory to simplify the game process.
3.3 Yield Test
The General Hand Tour app does not have the concept of a paid user, all users are using the same feature. Even with paid users, the difference between them and the average user is obvious: Some extra features are available to paid users. The line between paid users and non-paying users on hand tours is not so obvious. Hand Gongri According to the user pay for the number of non-r users, small r users, large R users. We need to calculate the input and return of these paid users at the time of planning, and validate them during the testing process. For two examples, if a large R user gets the return, non-r users can be obtained only in a very small amount of time, the large r users must not be satisfied with the setting of this charge item is unreasonable, if the two purchase items of the same amounts, and the benefits are significantly different, it will also cause the player's dissatisfaction.
4 Background performance is different
Although we discuss the app and the hand tour is mainly front-end client, but actually the background performance of the two are also different. Compared to the General app, the online number of the hand tour is more regular and more concentrated, generally at 12 o'clock Noon and 8 o'clock at night are two distinct peaks. Therefore, the performance test of the hand-tour will fit this user model and be able to handle the server performance load under extreme conditions. Of course, both will be affected by the big holiday, which is the same for the app and the Hand tour.
And talk about the similarities.
In addition to the above mentioned many of the hand-travel test and app testing differences, in fact, there are many similarities between the two, in the test can not be forgotten, such as mobile phone calls, SMS interruption test, fragmented compatibility test (especially Android), the client run on the phone performance test, Weak network test with poor network or frequent network switching, already user experience and UI test.
How does hand-travel and app testing transform quickly? --The four differences between the popular Science hand tour and the app test