This article is a newcomer to software testing, from preparation before testing, test demand collection, test case design, test case implementation, and test results to analyze several aspects. In view of the state of domestic software development, test irregular status, this paper provides a number of software testing points for software testing. [Key words] software test, test case, test demand, test results Incident, a few years ago, after graduating from school, the first job is software testing. At that time, most domestic software companies have no concepts of software testing. In addition to the "computer software test technology" prepared by Zheng Renjie, in the bookstore, there is almost no other software test related books, software tests are only in software engineering materials. As a chapter, I don't know anything about software testing. However, before officially embarrassed a job, the company provides a two-week system software test technology special training, which has great guiding significance for the next software testing. Now, I will continue to engage in software testing training and consulting services. In this process, I have witnessed a lot of software testing newcomers. They have initiated software testing industries. I have no systematic training, I don't know anything about software testing. I don't know what this test is, I don't know how to start testing. The following is actions to give a number of solutions. Test preparation work In the test work, the software test engineer should engage in the purpose of the software testing. If you give this question to the project manager, he often answers like this: "All bugs in our products are found, this is your work." As a software test, how can I find all the bugs? How to start testing? Even if you face a small software project, the problem that needs to be considered is also square, including hardware environments, operating systems, software configuration environments, product-related business processes, user concurrency capacity, and more. Where do you start? Learn to experienced testers If you enter a standardized software company, there are independent software testing departments, standard software test processes, software test technology has certain accumulation, then congratulations! You can ask the test manager to delegate an experienced tester as your business tutor, listed in the software test technology related book catalog, software test process related document directories, product services related document directory, under the guidance of business tutors Gradually familiarize yourself with the work of software testing. In fact, in many ways of working standardized software, the above-mentioned masters have been cured into the process. If you enter a software test, a blank software company, then congratulations! You can create a software testing business here, of course, the premise is that the boss does recognize the importance of software testing, and it is really necessary to improve the quality of the product. At this time, you can find software test resources on the domestic software test forums and related websites. In this case, self-study ability and the understanding of technology are crucial. Reading software tests Related books Now, Chinese version of software test books are increasing, some are written by Chinese, some are translating foreign classics. You can find software test-related books to www.chinapub.com or www.cnforyou.com. At present, there are many classics from the software test books introduced abroad, but after translation into Chinese, the translation quality has a great impact on the reading effect.
The problem report in the defect trace library If your company already has a software defect tracking library, no matter how commercial tools such as ClearQuest, TestDirecter, it is not necessary to use the Bugzilla, Mantis and other open source tools. The defect report order in the defect tracking library is valuable. The problem report in the defect tracking library is a centralized reflection of software test engineers, and is also a centralized reflection of software product issues. In general, several of the most critical portions in the defect report include: the first part is an environment that discovers defects, including software environment, hardware environment, etc .; the second part is the basic description of defects; the third part is the developer's defective Solution. Through the three parts of the above defect report, you have absorbed the work experience of other software testers and master the basic problems of software products. This is a good way to quickly improve software test experience. Historical Test cases of reading related products If your company has a test case management system, then software test cases that go through related products are a shortcut to quickly improve test case design levels. There is also a skill. Test case writing generally includes test case items and test cases refined according to test case items, which are illustrated below. "Test user login function" is a test item, the purpose of the test item is to test if the user login function is correct, whether it is possible to complete the normal login function, whether it is possible to do abnormal username and password. Therefore, according to this use case, several test cases can be designed, in most cases, test case items and test cases are a pair of relationships. By reading the test case project, you can master which functions should start the future test work; by reading the software test case, you can learn how to carry out the design of software test cases based on the test function, including how to determine the test case. Input, the operation step of the test case and the output result of the test case, etc. In short, the excellent software test case designed to take other software testers is a good way to improve the design level of your own use case. Learning product-related business knowledge software testers must not only master software testing technology related knowledge, but also learn about product related business knowledge. This is very understood, if you engage in finance software testing, you must learn financial knowledge; if you engage in communication product testing, the relevant newsletter knowledge is also necessary; if you engage in bank software testing, the bank's business process is not Lack of knowledge points. Therefore, while learning software testing techniques, don't ignore the learning of product related business knowledge. If you are a software test technology expert, but you can only test the pure software defect, and facing the defects related to product business in front of you, it is likely to be invisible, so The effect of software test will be greatly reduced. Identifying test requirements Identification test demand is the first step in software testing. If the developer can provide a complete demand document and interface document, it is good. Test cases can be designed based on the input, processing procedures, and output of each function item described in the Demand Document. If the developer does not provide a software demand document, how is it? The following is given below: Active access to demand developers will not better consider software testing. If they do not have the development process, they are usually unwilling to provide any development documents, even if there is mandatory, demand documents It is not necessary to truly guide the software system testing. Therefore, testers need to play subjective initiative, maintain communication with relevant software development project managers and software developers, and understand what the main functionality of software implementation is, and records the collected information.
In general, developers will also save some simple process documents even if they do not provide relevant demand documents, and actively ask developers to ask for reference. In addition, it is possible to communicate with the company's technical support personnel. Technical support personnel are the most close to the user, so by communication can obtain the user's use of the first hand, it will be closer to the user in the process of testing. What are the needs of the relevant information? How to communicate with developers? In fact, as long as you grasp a few key points of the needs analysis, you can solve the problem: input, processing, output, output, performance requirements, operational environments, the following analysis: Software Enter: All possible inputs related to this requirement, From these aspects, enter the source, the number of input parameters, the measurement of the input parameter, the input parameter time requirements, the accuracy of the input parameters, and the efficient input range of the input parameters. In the test case design, this part of the content is the basis for the test case input. Processing process: Describe all operations performed on the input data and how to obtain the output. The tester understands the process of processing, and when it is discovered during the test, it is helpful for the root of the positioning problem. Software Output: Describe the output result of each requirement, including the output location (such as computer display, printer, file), output parameter, output parameter metric, output parameter timing, output parameter accuracy, output parameters Output range, error message. In the test case design, this part of the content is the expected output of the test case. Performance requirements: Performance requirements associated with this demand, such as "After inserting the ATM withdrawal card, the graphical interface" of the prompt user withdrawal is popped upon 3 seconds. " 3 seconds this limit is the basic performance requirements for demand. Operating environment: The environment required for software, including the requirements of the hardware platform, the operating system requirements, the requirements of the database, and other related support software requirements. If the priority of the priority of the confirmation needs is necessary, if the test personnel can consider priority test priority requirements, if the progress is allowed, if the progress is allowed, the priority is low in the test priority. Item, if the progress is not allowed, then give up the test priority to low demand items. If the software company has a standard process support, the developer should determine the priority of the demand in the document when providing the software requirements documentation. However, if the developer even the basic software demand document is not available, how can we expect them to determine the priority of software requirements? If so, the priority of the demand can only be done by the tester. The mail group tester in the Joining Development Team needs to be tested products, but the product is often changing in the development process. If the software development team has a change control process, the tester will change the product. If there is no change control, it is necessary to use other earthwork. If there is an automated office system in the company, it may be the Lotus Notes system, perhaps the E-mail system, the tester should join the developer's mail group. When the developer discusses questions through an email, the test personnel can be aware of the development of the developer if necessary, can participate in the technical conference of the developer if necessary. Even if there is a software change control process in the company, it is also a good habit to joining the mail group. With developers to neighboring testers and developers. My test group once and the development group were in the adjacent writing interverses, the relationship between developers and testers was very harmonious, throwing them into colleagues, everyone is still a good friend.
Regardless of the activities of developers, testers can get information in the first time. Whether engaged in software testing, it is also engaged in other jobs, and has a good personal relationship with colleagues in the work of upstream and downstream links. There are department walls in the general company, and good interpersonal relationship is one of the means of playing the wall. It is necessary to recommend testers and developers to the leadership.
After the test case design test is collected, it starts test design. What is the test case? The test case is a document, describing input, action, or time and a desired result, its purpose is to determine if an application is working properly. Design test cases need to consider the following questions: The basic elements of the basic format software test case of test cases include test case numbers, test titles, important levels, test inputs, operation steps, expected results, hereby introduced. Sample number: The number of the test case has a certain rule, such as the number of the system test case, which defines the rule: Project1-ST-001, the naming rule is the project name test phase type (system test phase) number. Define test case numbers to facilitate finding test cases to facilitate tracking of test cases. Test Title: Description of test cases, test case titles should clearly express the use of test cases. For example, when testing an error password when the user logs in, the software response is used. Important level: Define the priority level of test cases, which can be divided into two levels of "high" and "low". In general, if the priority of the software needs is "high", the test case priority for this requirement is also "high"; vice versa, test input: Provide various input conditions in test execution. Determine the input of the test case based on the input conditions in the demand. The input of the test case has great dependence on the input of the software requirements. If there is no good definition of the input of the demand in the software requirements, then a large obstacle is encountered in the test case design. Procedure: Provide steps to test the test execution process. For complex test cases, the input of test cases requires several steps, which are listed in detail in operation steps. Expected Result: Provides the expected results of the test implementation, the expected result should be derived based on the output in the software requirements. If during the actual test, the actual test results are inconsistent with the expected results, then the test does not pass; it is detected. The design of software test cases mainly considers the above six domains, combined with the corresponding software requirements documentation, on the basis of mastering a certain test case design method, can design a comparison, and reasonable test cases. Specific test case design methods can see related test books, white box test methods and black box test methods have detailed introduction in most software test books, and will not be described here. Test cases for reuse the same type of project If I see far, it is because I stand on the giant's shoulder - Newton. In general, each software company's project can be divided into a fixed major class. You can divide, such as ERP software, product data management software, communication software, geographic information system software, etc., can be divided according to software structure, such as software, C / S architecture software, embedded software and many more. There will be a lot of reference for test cases of the same category software. If there is a similar software system in the company, don't forget to take the relevant test cases. If the system is very close, it can be applied to the currently tested software through simple modification of test cases. "Bringing theism" can greatly open the test case design idea, and can save a lot of test case design time. Different software types are divided into different rules using existing software Checklist on one section above. Each type of software has a certain test specification. For example, a web software system will have a range of paradigms during the system test, such as a lot of test points for cookies.
When designing test cases, you may wish to search for related Checklist, but there are few information from this area at home and abroad, even if it is, it is not a special system. You can first find a rough checklist, then keep it in designing the test case, as the basis for the next test case design. After the evaluation of the test case of the test case, it is best to increase the review process. The peer review is a KPA of CMM3, if the company has not passed the CMM3 level, it is not appropriate to carry out a peer review. The test case should be reviewed by the product-related software tester and software developer review, submit an evaluation opinion, and then update the test case based on the review comments. If you carefully operate this link, many of the problems in the test case will be exposed, such as use case design errors, use case designs omission, use case design redundancy, use case design is not sufficient; if the peer review is insufficient, then the process of testing In the above, the above-mentioned item should be related to the test case discovery in the review phase, which will bring a lot of trouble to the test, and even lead to the test execution. Defining the execution order of the test case In the test case execution process, you will find that each test case has a special requirement for the test environment, or has a special impact on the test environment. Therefore, define the execution order of the test case, which has very much impact on the execution efficiency of the test. For example, some abnormal test cases cause the server to restart frequently, each restart of the server consumes a lot of time, causing this part of the test case execution to consume a lot of time. Then, when the test case is performed, it should be considered to put this part of the test example in the final execution. If the test progress is very tight, if you prefer this part of the exception test case, the test execution time is over. In most, the progress of the test case execution is still slow, which will affect the mood of the tester, which in turn leads to a hurry to test the following test cases, so that the test case will not be avoided, and the misunderstanding is inevitable, seriously affected. Software test effect and progress. Thus, it is necessary to reasonably define the execution order of the test case. After the test case execution test case is designed, the next job is the test execution, and the test execution should pay attention to the following issues: Building a software test environment, performing the test case test case execution, the construction test environment is the first step. In general, after the software product is submitted, the developer should submit a product installation instruction. In detail in the guide, the software product operation is specified in the software product operation, such as the operating system system is Windows 2000 Pack4 version, the database is SQL Server 2000, etc., in addition, detailed installation instructions for test software products should be given, including installation steps, configuration methods for related profiles, and more. For complex software products, especially software projects, if there is no need to install the instructions as a reference, various problems will be encountered during the construction of the test environment. If the developer refuses to provide relevant installation instructions, the test staff can ask developers to assist in the development personnel. At this time, it is necessary to record the developer to solve the problem, avoid the same problem, ask for development The personnel will cause the developer's dislike, which also reduces the degree of recognition of the developer's tester. After the test execution process should pay attention to the test environment, execute the test case one by one according to the defined test case.
Need to pay attention to the following questions in the test execution: Overall observation test case Execution: During test execution, when the actual output result of the test is consistent with the expected output results in the test case, it is considered that the test case is executed. ? The answer is negative, even if the actual test results are consistent with the expected results of the test, you must view the operating log of the software product, the system running log, system resource usage, to determine if the test case is executed successfully. The output of the full-scale observation software product can find a lot of hidden issues. Previously, when I test the embedded system software, after performing a test case, the actual output of the test case was exactly the same as the expected output, but at the time of querying the CPU occupancy rate, it was found that the CPU usage was as high as 90%, and later analyzed, When the software is running, a number of 1ms of timers are launched, a large amount of consumed CPU resource, and later adjust the timer to 10ms, the CPU's occupancy is reduced to 7%. If the observation point is single, this seriously consuming resource problem has no discovery. Strengthen test procedure record: During test execution, be sure to strengthen test process records. If the test execution step is related to the test case, it must be recorded as the basis for updating the test case in the future; if the software product provides logging, such as software running logs, user operation logs, must be per test Record the relevant log files after execution, as the test process record, once the problem is found, the developer can record the convenient positioning problem through these test records. It does not need to re-build the test environment for the development personnel without the test environment. Timely confirming the problem: During the test implementation, if the software's defects have been discovered, you can submit a question report. If the suspicious problem is found, it will not be able to locate whether it is a software defect, then be sure to keep the scene, and then know the relevant developers to the on-site positioning problem. If the developer confirms if it is a software defect in a short time, the tester is given; if the development personnel need to spend a long time, the tester must do not delay your valuable test execution time, let the developer record Reproduction test environment configuration, then return to your own development environment, continue to position problems. Communicate with developers: During test implementation, when you submit a problem report, you may be done by developers, refuse to modify. At this time, I can only make reasonable, act, and persuasive. First, to define the standard principles of software defects, this principle should be recognized by developers and testers. If there is no joint recognition, then developers and testers will inevitably. In addition, the tester intends to convince the developer before considering you to convince yourself. If you guarantee that you can convince yourself, you will start with developers. Timely update test case test execution, you should pay attention to timely update test cases. Over the test implementation, some test cases were missing, and it should be supplemented at this time; often discovered that some test cases could not operate in the specific implementation process, at this time, this part of the use case should be deleted. Several redundant test examples can be replaced by a test case, then delete redundant test cases. In summary, it is a good habit to update the test case in time during the process of testing. Don't intend to update test cases after the test execution, if so, you often miss the test cases that should be updated.