Software Testing
Coding and testing are collectively implemented.
Usually after each module is written, the program does the necessary testing, which is called unit testing. The template is written and tested by the same person.
Other comprehensive tests will then be performed by a dedicated tester, the software testing engineer.
The workload of software testing often accounts for more than 40% of the total software development effort.
Coding
The following requirements are available for encoding:
1) documentation inside the program
2) Data Description
3) Statement Construction
4) Input/output
5) Efficiency: program run time, memory efficiency, input and output efficiency
Fundamentals of Software testing
I. Objectives of software Testing
1) test is the process of executing the program in order to discover errors in the program
2) Good test scenarios are highly likely to find errors that have not been detected so far
3) A successful test is a test that finds errors that have not been found so far
Note: The test can only look for errors in the program, not the test without errors.
Second, the software testing guidelines
1) All tests should be traceable to the user's needs
2) The test plan should be developed far before the test begins.
3) Apply the Pareto principle (80% of the errors found in the test is probably caused by the 20% module in the program) to the software test
4) should start with a "small scale" test and step into a "large scale" test
5) exhaustive test is impossible.
6) A third party should be engaged in the testing work
Third, the test method
White box test and black box test, first white box test, then black box test. (will be supplemented later)
Iv. Test Steps
1) module test (also known as Unit test)
2) Sub-system testing (putting the unit-tested modules together to form a subsystem)
3) System Testing (test subsystem is assembled into a complete system for testing)
4) Acceptance test (the software system as a single whole, it is the active participation of the user, the acceptance test is also known as the confirmation test)
5) Parallel operation (the new and old system running at the same time to compare, the purpose is: 1, you can run the new system in the quasi-production process without risk; 2) The user can have a familiar with the new system, 3, can verify the user's Guide and manuals and other documents, 4, can be in the quasi-production mode of the new system Performance metrics can be verified with test results)
V. Information flow in the testing phase
The information entered is made up of two main categories:
1) software configuration, including requirement specification, design specification and source program specification list, etc.
2) test configurations, including test plans and test scenarios, so-called test scenarios are not just the input data (called test cases) used in testing, but also the capabilities that each set of input data is scheduled to verify, and the correct output that each group of data expects to achieve
(The test configuration is a subset of the software configuration, that is, the final software configuration should include the actual results of the test configuration and testing and the records of the test)
Unit Test
First, the test focus
1) Module interface
Include: the number of parameters, order, attribute or unit system and the argument is consistent, whether to modify the input only arguments; Global variables are defined and used consistently in each module
2) Local data structure
Often errors in local data description, initialization, default values, etc.
3) Important Execution pathways
4) Error Handling path
The error is often: 1 The description of the error is difficult to understand; 2 The error noted differs from the actual error encountered, 3 the error condition has caused system intervention before the error is processed, 4 the error is not handled correctly, and the information describing the error is insufficient to help determine the location that caused the error
5) Boundary conditions
Second, code review
Third, computer testing
Develop driver software and/or stub software for each unit test
Integration Testing
First, top-down integration
Second, bottom-up integration
Thirdly, the top-down method is combined with the bottom-up method used in the lower layer of software structure.
Iv. Regression Testing
Confirm Test
Validation testing is also known as acceptance testing, and its purpose is to verify the effectiveness of the software.
Validation (verification) is a series of activities that ensure that the software correctly implements a particular requirement.
Confirmation (validation) is a series of activities that ensure that the software does meet the needs of the user.
Definition of software effectiveness: Software is effective if the functionality and performance of the software are as reasonable as the user expects.
One, the two possible results of software testing:
1) function and performance consistent with user requirements, the software is acceptable.
2) There is a gap between function and performance and user requirements.
Second, software configuration review
Iii. Alpha and beta testing
The alpha test is performed by the user at the developer's site and is tested by the developer under the guidance of the user. The developer is responsible for documenting the errors found and problems encountered during use. This means that the alpha test is performed in a controlled environment.
Beta testing is performed by the end user of the software in one or more customer sites. Developers are not usually present, which means they are not controlled environments. The user records any issues (real or imagined) that are encountered during the beta test and periodically reports them to the developer.
That is to say, as a computer/software user, we usually touch the most beta version of the software, and the alpha version of the software in addition to their own development/testing of the basic will not be encountered.
White Box Testing technology
First, the logical coverage
1) Statement Overlay
2) Decision coverage
3) Condition coverage
4) decision/condition coverage
5) Conditional combination override
6) Point Overlay
7) Edge Overlay
8) Path Overlay
Second, the control structure test
1) Basic Path test
The main is: 1 according to the process design results to draw the corresponding flow graph; 2 The complexity of the annular complexity of the flow graph, the logical complex of the quantitative measurement procedure of the ring complexity; 3 determines the basic set of linear independence; 4 design enforces test cases for each path in the base collection
Loop complexity calculation method: V (G) =p+1,p is the number of decision (if etc) nodes in the flow graph.
2) Condition test
3) Cyclic testing
This includes: simple loops, nested loops, threaded loops (that is, two loops side by side, not including relationships, nested loops when the relationship is included)
black box Test
One, black box test to solve the problem:
1) function is not correct or missing function
2) Interface Error
3) Data structure error or external database access error
4) Performance Error
5) initialization and termination errors
Second, the design of black box test should consider the problem:
1) How to test the effectiveness of the function?
2) What types of inputs make up a good test case?
3) is the system particularly sensitive to specific input values?
4) How to delimit the boundary of the data class?
5) What data rates and data volumes can the system withstand?
6) What impact will the specific combination of data have on the system operation?
Third, equivalence division
The input fields are divided into several data classes, and the test cases are exported accordingly.
Iv. Review of boundary values
V. False speculation
Debug
First, the way to debug
1) Reckless method
2) Backtracking method
3) Cause exclusion method
Software Reliability
Software reliability is the probability that a program runs successfully within a given time interval, as specified in the specification.
The meaning of the error is the software error (BUG) caused by the developer
The meaning of the fault is the incorrect behavior of the software caused by the error
First, the method of estimating average trouble-free time
1) Symbols
ET --The total number of errors in the program before testing
IT -Program Length (total number of machine instructions)
Tau --testing (including commissioning) time
Ed (Tau ) --from 0 to Tau Number of errors found during
E c (Tau ) --from 0 to Tau Number of errors corrected during the period
2) Estimated number of errors
Implant error and separate test method
Software test related summary records