Game test process
Game test cause
?????? In the past two years, IT industry has been experiencing "cold winter", but the game software industry is showing vitality. Online games have only two years in China's game market. In January this year, the number of games that officially put into commercial operations has exceeded 100 models, but it is well known that foreign countries (mainly South Korea's games) are ruled most of the market in China. Domestic game software wants to break out, mainly from two aspects, one is playability, because China has a traditional culture of the last five thousand years, the profoundness is our unique advantage, the second is the quality of the game, the game test The most important aspect of quality assurance in game development, play an increasingly important role in the process of game design and development.
Game test and software test difference
?????? Game test as part of the software test, it has software testing all all common features:
l ???? Test is the purpose of discovering the defects in the software.
l ???? Testing is required to implement the test personnel according to product behavior. Product Behavior Description can be a written specification manual, demand document, product file, or user manual, source code, or executable program that works.
l ???? Each test requires the product to run under the real or analog environment.
l ???? Each test requires a system method to display product functions to prove whether the test results are effective, and the cause of the error is found to make the program personnel improve.
All in all, testing is to discover problems and improved, thereby improving the quality of software products. Game test also has all the above features, but due to the particularity of the game, the game test is mainly divided into two parts, one is the traditional software test, the two game itself test, due to the game, especially online games, it is quite The virtual world on the Internet is another way of human society, so it also includes part of the characteristics of human society, and it is also a game, and it also involves unique features such as entertaining, playability, so tested It is quite wide. We call the game world test, mainly with the following features:
l ???????????? Test of the game plot mainly refers to the composition of the task system in the game world, and some people are also called the game world's event driver, I like to call the game emotional world test.
L ??????????????? The balance test of the game is mainly manifested in economic balance, ability balance (including skills, attributes, etc.) to ensure the fairness of game world competition.
L ????????????????????????????????????????????????????????????????????????????????????????????????????????????? Dialogue, such as a scholar, his conversation is required, can not use the rivers and lake language J.
Game test overview
?????? Many people have such a shutdown: "After the software development is completed, it will be tested." As everyone knows, this level is contrary to the life cycle of software development, and the discovery of software defects must be The sooner the better, so you can effectively avoid the risk, and the test work will have a lot of problems under the guidance of the test concept of "final test", this concept is: the "test phase" in the life cycle It shows that the test work is the main work, not, the test work only occurs in the "test phase". Typically, to the test phase, the main task of test is to run tests to form test reports. To improve the quality of the game, you must need to do early intervention, such as test programs, test cases, and preparation of test code, etc. are to be done at a preached. If you put the test all in the final stage, I miss the best time to find a serious problem in the architecture and game logic design. In that time, it is not convenient to fix these defects, because the defect has spread into the system. So this error will be difficult to find and repair, the cost is higher. ?????? To learn how to test the game must understand how to do games, understand its development process, can really measure the game. The game is successful, and the basic necessary conditions are three. Vision (Design), Technology (Technolog) and Process, respectively. Three conditions, the lack of view, as shown in the figure:
Vision
TECHNOLOGY
PROCESS
?
?
?
Figure: Game development three major cornerstones
l ???? Vision is the overall grasp of the game has not been achieved, forward-looking understanding and strategy.
l ???? Technology: With Vision, if there is no technology, a variety of wonderful ideas can only stay in the virtual phase, and Vision is achieved by technology.
l ???? process: With Vision as a guide, there is a technology as a guarantee, and it is not necessarily able to convert a good idea into a high quality game. To create high-quality games, a short-term ring, that is, the process, manufacturing game is a very long-term dynamic process. The quality of the game product is to ensure the dynamic quality of the dynamic process. The process consists of many complicated mutually tabular links and components, and if any of the links or components have problems, they will affect the quality of the final product formation. Therefore, the process of this dynamic must have planning and control to ensure that the class is pressed, and the work is completed on time.
The relationship between the game test and the development process
The CMM (Software Capability Maturity Model) software mats, everyone is more familiar, but there is such a problem in the implementation process, there is no fixed way to the game development, and our team is a long time. The game development team has a deep understanding of game development. We think that the game's process is actually a software process, but it is a special game software development process, and each life cycle is still connected. So we summarize a set to test as quality drive, belonging to your own development process. The picture below is an iterative development of the game:
?
?
?
Figure: Game iterative development and testing
Since the life cycle of the online game is also 3, 4 years, so iterative development process can be adapted to both the long-term development of the online game itself, but also using the advantages of RUP's iterative development and CMM milestones, thus A guarantee for the full life cycle of the game product.
During the game development process, the demand analysis phase of General Software is replaced by the plan, but the role is the same, clear the game design goals (including style, game player group), the composition of the game, for later programming, A clear requirement made by art design and testing. Since the development is a phase process, the combination of testing and development is relatively easy. From the graph, we can see the testing work and the development of the game is carried out, and each development phase has participated in the test. Understand the overall technical details of the system, thereby greatly improve the accuracy of the tester's judgment of the error problem, and can effectively guarantee the stability of important game systems. Game planning and test plan
?????? The test process cannot be carried out in a vacuum. If the tester does not understand the game is made up of those parts, then the execution test is very difficult, and the test plan can clear the target, what resources, progress arrangements, through the test plan, can make testers to understand These game tests are test focus, but also communicate with the product development team. In corporate development, the test plan comes from a demand document, and in the game development process, the source of test programs is a plan. The planning book contains game location, style, storyline, requirement, and so on. In planning review, our senior testers can participate, get a detailed game planning book, learned from the composition, playability, balance (economic and ability), and form (stand-alone or online game), and Our main thing we test is to develop a detailed test plan through planning books, mainly divided into two aspects, which is the test plan of the game program itself, such as task system, chat, team, map, etc. The function test plan, the second is the game-playable test plan, such as whether the economic balance standard meets the requirements, each martial skill balance test parameter and method, the game style test, the third is the plan for performance testing, such as the client's requirements, The web version of the performance requirements for the server. At the same time, the test plan also stated that basic test methods were designed, and the needs of automation tools to be designed were designed for later tests to make a good foundation. At the same time, due to the participation of the test staff, the senior game tester and product manager have a deep understanding of the game, will propose their own views, including playability, user group, performance requirements, etc. and forming products. The risk assessment analysis report, but this report is different from its own risk analysis report, mainly from the perspective of the bystanders to the quality of the game itself, thus playing the role of controlling the plan.
?
Game design and test
?????? Design phase is the best time to do test case design. Many organizations either do not do test planning and test design at all, or quickly complete the test plan and design before the test is started. In this case, the test only verifies the correctness of the program, rather than verifying what the entire system should implement. And our test will be clear, because our test plan is clear, you need to test those game systems, but we also need to understand the composition of the system, and design phase is the process of designing system, all important systems It is a detailed description using the UML state diagram, such as the user login.
?
Figure 2 User login
?
A basic quality of a senior tester in our team is a test case, timing chart, and state diagram, timing diagram, and state diagram to design an important system, and the quality of important systems is fully tested. The quality of the program can be fully guaranteed. For example, a timing diagram of a user login game system. From here we can understand how the player verifies and logs into the system, in this process, interact with those objects, for example, we are interactive between three systems, the client (player part), gateway, account A timing change relationship between services, in order to be able to test this process, we must design a test case that can overwrite the entire process, and consider the possible illegal conditions, because this timing diagram is just considering the user's normal landing success. The situation does not consider many possible conditions such as password errors, communication failures, and the complete test case libraries, thus making full preparation for systematic testing of landing systems. At the same time, through this picture, performance analysts can also analyze possible performance bottlenecks, such as the bottlenecks that may have, if the total gateway can reach how many users, if not, can it be distributed or It is supported to support load balancing, the proportional allocation of network bandwidth between the three can carry a connection request for multiple gateways, and the maximum connection request can be achieved, and the performance test is designed for performance testing, and proposed The needs of automated tests, such as the simulating player login pressure tool, and the like. At the same time when designing reviews, testers 'intervention can fully express their own opinions on the current system architecture. Since the testers' eyes are the most demanding, there are many years of testing experience, it can be more early to find the designs Problem, such as whether the player's data is lost during the player's conversion server, in the past design, due to the loss of business support and data, and these risks can be avoided early. What is mentioned above is the test design of the game program itself. For the test of the game, it can be obtained from planning. Since the previous planning phase is only a description of the game plot, it is not designed for a specific plot. When entering the design phase, a game plot logic has been completely formed. Planning can give a detailed design manual of the plot, called a task manual, and we can design a task test case, such as a certain mission Composition, we can design a complete task test case to ensure that the test may maximize override to all task logic. If it is a simple task, you can also propose automation requirements, and the robot is automatically completed.
Game test and development
?????? Development and testing have always believed that it is not parallel to do it. It must first develop afterwards, but the development process of software requires testing early to intervene, but here this contradiction has been well solved. . We use daily compilation, combine test implementation and development, and in the development phase to encode - test - encoded - test methods. In other words, once the program segment is written, it will be tested immediately. In normal case, the test is conducted is a unit test, but a program clip also needs related integrated tests, and sometimes some special tests are needed. Especially about interface testing, like game programs and task corners, the combination of pictures, everyone thinks need to be tested in advance, through daily, you can engage the already written program fragment, form part of the integrated test, thus effective The principle of interface priority testing. At the same time, because software testing and development are parallel, it is implemented as a policy of software defect priority modification, so few short-term failures cannot be modified, and because of the preparation of the design and automation tools of the previous test case, we do not It is necessary to invest too much manpower to ensure the quality of the product quality, especially the quality of important systems. Since our game program is constantly improving daily, the integrated test is also in progress. When developing into the final stage, the integrated test is also completed. Here is a principle, that is, what I said before, the subject method and structure of the test should be completed in the game design phase, and supplemented in the development phase (such as corresponding changes in the game development, or a transition The address changes, this requires real-time updates). This method will have an important influence on code-based test (development phase and integration phase), but no matter in that stage, if you do a point and design more, it will greatly improve test efficiency, improve test results. At the same time, it is also conducive to the analysis of the reuse and test data of the test case, so our test plan is formed when planning, and has formed a good foundation for later testing. Integrated test phase
Integration tests are testing throughout the system. Due to the parallelism of the previous test and development, the integration test has been basically completed, and only the system test case designed in the design phase is OK at this time. We mainly focus on compatibility test in integrated testing, due to the particularity of the game test, the requirements for compatibility are particularly high, so we have used the exterior and internal part of the same, and we have our own platform laboratory. Building a mainstream hardware test environment, and we also have a compatibility analysis of our game software through some professional compatibility testing, so that our game software can run on more machines.
Game playability test
Game playability test is also a very important piece, mainly including four aspects:
1. ????????? The game world is built, including chat features, trading systems, teams, etc., allow players to interact in the game world.
2. ????????? The drive of the game world events mainly refers to the task.
3. ????????? "The competition and balance between the game world.
4. ????????? The game world culture is implied, the style of the game is reflected.
This kind of test is mainly reflected in the game-playability, although we have a certain assessment of playability, but this is an overall, but some specific analysis, such as the adjustment of the PK parameters. Some of the increased playability of the skills, such as the increase in skillful playback requires professional players to analyze it. Here we are mainly conducted by three ways:
1. ???????? The internal test personnel, they are all selected professional players analyzers, have a deep understanding of the game, and analyzes the above four points when testing.
2. ???????? Using external game media professionals to analyze and introduce the game, it can achieve the effect of promotion, but also to test the test, usually this is better. 3. ???????? Use a certain number of players, testing the peripheral system, they are ordinary players, but it is our most important goal, the main source is the students in large schools, etc. Mainly test the playability and ease of use of the game, and found some peripheral bugs.
4. ???????? When the game entered the final stage, he also had internal test, public beta, a bit like the beta version of the application software, let more people participate in the test, test the operation of a large number of players. .
The playability test is the most important piece of the game, only the player's recognition, we may succeed.
Performance testing and optimization
?????? Finally, the performance optimization is to be optimized. In the era of stand-alone version, performance requirements are not very high, but in the era of online version, it is two completely different concepts, mainly including the following Several aspects: Applies to the client performance test, and the performance testing on the network and the application of the server performance. Typically, in three ways and effective, reasonable combinations can achieve comprehensive analysis and bottleneck predictions for system performance. However, there is such a principle during the test, that is, because the test is performed when the integrated test is completed or completed, the function point of the test can be tested, and you first optimize the database or the network itself. Only in this way can avoid the risk of the transformation. At the same time, test and optimization is a step-by-step process, which requires a lot of work, such as performance requirements, test tools, etc., but these are completed in the previous period. Here I only do principled descriptions.
?????? The principle of optimization of the database is mainly such that the index is optimized, because the optimization of the index does not need any changes to the table structure, and it is the easiest way, but also does not need to change the program. Several performance, but to note that the index is not universal, if an unlimited increase will have a big impact on the increment and deletion. Second is an optimization of the table, view, and stored procedures. However, you need to know the optimized goals before the analysis, those SQLs are the most executed, so we must use some SQL tracking analysis tools, such as SQLProfile, SQLEXPERT, and other tools, it will quickly locate problems.
?????? About the optimization of the network, what I said is not optimized for the network itself, but an optimization of the network communication of the game itself, so it is combined with the optimization of the program, first of all, Discover problems, what is the application of more network traffic through Monitor and SNIFF, and because the user is huge because the online game is huge, this is also a problem. For the performance optimization of the program, the most important thing is to find the longest running time, only optimize it, performance has a large increase, and I don't have a detailed description.
Overview
?????? game test is a new field, it has the characteristics of general testing, and its own characteristics, there are many unknown roads to go, every day, I hope to bring some help, at the same time Thank you all your colleagues that support my colleague.
??????
??????
?