Absrtact: As software testing is becoming more and more concerned, how to use technical means to improve the quality of software testing has become an important topic in the field of software testing. Starting from the basic concept of software testing, this paper puts forward some opinions on how to improve the quality of software testing by using software testing technology and applying it reasonably.
Keywords: Software test, test design, test quality
The quality of software products depends on the software development process, software testing as an important phase of the software survival period, the importance of more and more high. Software testing is a critical step in assuring software quality and reliability, and is the only effective way to verify that the software is capable of accomplishing the desired function. Testing is not limited to one phase of software development, it has begun to run through the software development process, the earlier the test time, the more the overall software development costs drop. A large number of statistics show that the workload of software testing often accounted for more than 40% of the total software development, in extreme cases, may even be up to three to five times times the total cost of other steps of software engineering, the goal is to improve the quality and reliability of software products as much as possible.
1, software Testing related concepts
(1) Software testing: Software testing is the process of executing a program in order to find errors. Or, software testing is to design a batch of test cases according to the specification of each stage of software development and the internal structure of the program, and use the results of these test cases to discover the process of program error.
(2) Software test Cases: test cases are actually a description of all possible goals, movements, actions, environments, and results in the course of software operation. A test case is the smallest unit of a test organization, a description of the test task for a particular software product, embodying test scenarios, methodologies, techniques, and strategies. The content includes test objectives, test environments, input data, test steps, expected results, test scripts, and so on, and eventually form documentation.
The core of software testing is to design and execute test cases. The problem of choosing a test case can be seen as a combination of large input states, searching for a combination of states that can find errors. It is therefore necessary to use abstract means to try to make the test more effective.
(3) test Case Library: A complete unit test rarely executes only one test case, and developers often need to write multiple test cases to perform a complete test of a software function, which is referred to as a set of test cases. A large number of test cases collected into the test case library, reasonable classification for the tester to choose to use, can greatly improve the discovery rate of software problems.
2, improve the quality of testing methods
2.1 Using testability Design Technology
Software testing is the only effective method currently used to verify that the software is capable of accomplishing the desired functionality. However, in the implementation of the test, due to various reasons, the test is very difficult, and even the situation can not be tested. In order to improve the testability of software, we should follow the principle of testability design in software design, improve the testability of software by changing design or code, adding special test structure to software.
(1) test-driven design. This design is to directly turn software requirements into test code. Write test code on the basis of determining the performance requirements of software testing. Write the acceptance test first, then write unit test, and continue to revise in the development process.
(2) Each operation corresponds to a method to make the method smaller. Using miniaturized method descriptions and overloading methods with default method parameters makes it easy to call these methods in your tests.
(3) Display and control separation. By moving the code outside the GUI view, a variety of GUI actions can be used as simple method calls on the model. This makes it easier to modify the functionality of the program without affecting the view, while invoking the test functionality by means of the method.
(4) Make an interface for classes that may be used as parameters. An interface is used to describe an external program component or, if necessary, to change the interface to form an empty class as a parameter passed in.
2.2 Select the appropriate test management model
The model is a formal or semi formal representation of system functions, which supports the system enumeration of input state combinations. The model based test mainly considers the function of the system, which can be considered as a kind of functional testing. The test model embodies the most essential functional relationship of the tested system. And it's easier to develop and analyze than the system itself. A testable model should provide enough information to generate test cases. So testable models must meet the following requirements:
(1) must be a completely accurate reflection of a test implementation, the model must represent all the characteristics to be checked;
(2) is the abstraction of detail;
(3) can represent all events and all actions; The ⑷ can represent the various states of the system so that the Knowable method is used to determine what state has been achieved or has not reached.
2.3 The use of reasonable testing technology
There are many software testing methods, each with its own advantages, but no one test method can cover the requirements of all tests. This needs to fully master the various methods of software testing, familiar with its advantages and disadvantages, according to the system needs carefully designed combination. We can start with the following two areas:
2.3.1 to start testing from the point of view of the code's characteristics:
(1) Unit test: According to the unit composition of the code to test.
(2) Functional testing: According to the software function or characteristics of the test.
(3) System test: Compile and connect the complete code to check whether the main function of the program can achieve the expected target.
(4) Regression test: Test the previously repaired bug to see if the bug will appear again. It is noteworthy that regression testing is not an independent phase of software testing.
This article is reproduced from the 51Testing Software test Network, view the full text: http://www.51testing.com/html/02/n-828102.html