Definition 1.
Software testing is the process of using manual or automatic means to run or test a software system, its purpose is to check whether it meets the specified requirements or to find out the difference between the expected result and the actual result.
Before software is put into use, it must go through a series of rigorous tests to ensure delivery quality. For software quality, QC, QA and QM are three common and confusing concepts.
A. C: Quality Control personnel are responsible for ensuring that the Quality meets the requirements through validated methods
B. Qa: Quality Assurance Personnel are responsible for ensuring that the required Quality is met through A process approach
Quality Management personnel, generally responsible for Quality Management, create a good environment and conditions for QA and QC work through a series of means such as process formulation and resource coordination
2. The following figure can explain the differences among QC, QA and QM more clearly:
From QC to QA and then to QM is a gradual process of reform, reflecting the development of quality management theory.
In our daily work, we need to clarify the relationship between QA and software testing. QA is quality assurance, and software testing is a means of quality assurance. QA includes not only software testing, but also standardized management measures in terms of processes and products. In most companies, QA is equivalent to software testing. This concept is still in the QC stage, which is aimed at the inspection of coding results, ignoring the requirements analysis and quality verification in the system design stage.
3. Test the model
With the development of software testing theory and technology, testers have summed up several testing models, such as V model and W model, through a lot of practice. These models abstract the testing activities and are closely combined with the development work, which is an important reference for the testing process management.
3.1 V model
Unit test, mainly by the developers themselves to write code for self-test or cross-test each other, to check whether the code conforms to the code specification, whether there are logical errors.
Integration testing, which assembles unit-tested modules into complete programs. Tasks include developing integration test strategies, determining integration test steps, designing integration test cases, and then adding modules one by one for testing. Integration testing is the responsibility of the tester and should be designed after the outline design is complete and executed after the unit testing is complete.
System testing is to verify whether the functions determined by requirements analysis are complete and correctly implemented. At the same time, non-functional requirements such as installation, deployment, adaptability, security and interface are tested. System testing is also the responsibility of testers and should be designed after requirements analysis is completed and implemented after integration testing is completed.
A performance test is used to check whether the system meets specified performance requirements. Performance testing usually selects typical functions to check whether the system is stable when a large number of users are using them simultaneously. The performance test is carried out by the tester after the system test is completed, or the performance test of important modules can be carried out first throughout the whole test cycle, in order to find the performance bottleneck of the system as soon as possible and solve it in advance.
User Acceptance Test (UAT) aims to verify the matching of the system and the requirements, as well as the friendliness of the interface and time response speed. The acceptance test is done by the actual users and the testers cooperate.
Each test has its own purpose and specificity. Unit test focuses on the specification and logic of the program, integration test focuses on the connection between modules, system test focuses on the realization of system functions, performance test verifies the stability and efficiency of the system, and acceptance test verifies whether the system achieves business requirements, which are irreplaceable between each other.
The defect of V model is that the testing process is only regarded as a stage after coding, and the verification of requirement analysis and system design is ignored. Therefore, the defects in the requirement stage may not be found until the later acceptance test, and it will cost a lot of manpower and material resources to remedy them at that time.
3.2 W model
Compared with V model, W model carries out quality verification activities synchronously in each stage of software development. W model consists of two V models, representing the development process and testing process respectively.
W model believes that testing should be accompanied by the whole software development cycle, and the object of testing is not only the coded program, but also the deliverables in the requirements and design stage.
4. Test process
The general testing process consists of planning, designing, implementing, executing, and completing several steps:
Test plan, test work is the first to develop a test plan, need to determine the test objectives and strategies, estimate the test cases, test implementation of the workload, determine the human resources and testing environment resources needed. This is written in the test plan, which is reviewed before it can be executed.
Test design, the first step after the development of test plan is test design, need to determine the test requirements, design test cases, test cases review, etc.
Test implementation, after the completion of the design is the process of test implementation, the task includes building a test environment, writing test scripts, writing drivers and preparing test data. Try to test parts of the program as needed, then modify test cases, drivers, etc.
Test execution: assign test tasks to test executor according to plan, test executor inputs test data and records test results according to test cases. Defects need to be recorded and tracked after problems are discovered and verified after defects are modified. The test environment should also be managed and monitored during execution.
After the test is completed, the main work should be completed to analyze and summarize the test situation, confirm whether the target has been achieved, and give test conclusions and suggestions. The specific work includes evaluating test activities, analyzing test results, writing test reports, and finally reviewing the overall situation of the test and forming conclusions.
5. Main roles and responsibilities of testing
Testing is not the work of a test team, but requires the participation of all colleagues in the whole project. The main roles and responsibilities involved in testing are as follows:
The project manager
Work with test team to set test quality target and track the achievement of target; Overall management of testing progress and defect modification work progress; Provide documentation required for testing activities; Participate in the review of test plans, test cases and test reports
Test organizer
Make test plans, organize and implement test activities, including organizing, monitoring and managing test activities to ensure the achievement of test quality objectives. Tasks include:
-
Organize to build test environment, prepare test data and write test cases;
-
Organize testers to write test scripts (if automated);
-
Organize the testers to establish the implementation process and conduct joint adjustment;
-
Organize and maintain test cases and test scripts;
-
Follow up defect submission and validation.
Responsible for writing test reports, participate in the review of test plans, test cases and test reports
Test designer
Analyze test requirements and design test cases;
Write test scripts, establish and coordinate test execution flow;
Participate in the review of test plans, test cases and test reports;
Responsible for setting up test environment
Test executor
Responsible for test case execution, record test results and defects;
Participate in the review of test plans, test cases and test reports;
Responsible for retesting and validation of defects after modification
Defect modifier
Responsible for correcting defects found in test;
Participate in the review of test plans, test cases and test reports
Defect distributor
Responsible for review and distribution of test defects;
Locate and solve the problems found in the test;
Participate in the review of test plans, test cases and test reports
Quality assurance
Organize the review of test plans, test cases and test reports;
Responsible for auditing the testing process to ensure that the testing is carried out according to specifications and procedures
Configuration Administrator
Responsible for the integration and release of the version during the testing process;
Responsible for the configuration management of various deliverables in the test;
Participate in the review of test plans, test cases and test reports
6. Conclusion
No winter will pass, no spring will come, the past 2020 is an extraordinary year for people around the world, everyone is strong and brave in the fight against the epidemic, here we clap our hands together, 2021 is coming as promised, make good goals to continue to grow.