Definition 1.

Software testing is the process of running or measuring a software system, either manually or automatically, in order to verify that it meets specified requirements or to clarify the difference between expected and actual results.

Before the software is put into use, it goes through a series of rigorous tests to ensure quality delivery.

2. QC & QA & QM

For software quality, QC, QA and QM are three common and confusing concepts.

noun concept note
QC Quality Control The tester is responsible for passingvalidationTo ensure that the quality meets the requirements
QA Quality Assurance Process assurance personnel are responsible for passingprocessTo ensure that the quality meets the requirements
QM Quality Management Quality management personnel are generally responsible for quality management, and create a good environment and conditions for QA and QC work through a series of means such as process formulation and resource coordination

The following figure can more clearly explain the difference between QC, QA and QM:

From QC to QA and then to QM is a gradual change process, reflecting the development of quality management theory.

In 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 of processes and products. QA in most companies is equivalent to software testing. This concept is still in the QC stage, which is the inspection of coding results, ignoring the quality verification in the requirements analysis and system design stage.

3. Test the model

With the development of software testing theory and technology, testers have summed up a number of testing models through a lot of practice, such as the common V model and W model. These models abstract test activities and are closely combined with development work, which is an important reference for test process management.

3.1 V model

  • Unit testing, mainly by the developer to write their own code to test or cross-test each other, to check whether the code is in line with the coding specifications, whether there are logic errors.
  • Integration tests, which assemble unit-tested modules into a complete program. Tasks include formulating integration test strategy, 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 summary design is complete and executed after unit testing is complete.
  • System testing is to verify whether the functions determined by the requirements analysis are complete and correctly implemented, and also to test the non-functional requirements such as installation, deployment, adaptability, security, and interface. System testing, which is also the responsibility of testers, should be designed after requirements analysis and implemented after integration testing.
  • Performance tests to check whether the system meets specified performance requirements. Performance testing typically selects typical features to see if the system is stable when used by a large number of users simultaneously. Performance testing is performed by the tester, either after the system test is completed, or on important modules first, and throughout the test cycle, in order to find and resolve performance bottlenecks early.
  • User Acceptance Test (UAT), the purpose is to verify the matching of the system with the requirements, as well as the friendliness of the interface, time response speed, etc. The actual user is responsible for the acceptance test, with the cooperation of the tester.

Each test has its own purpose and purpose. 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 meets business requirements. They are irreplaceable.

The defect of V model is that it only takes the testing process as a stage after coding, ignoring the verification of requirements analysis and system design by testing. Therefore, the defects in the requirements stage may not be found until the acceptance test in the later stage, and then it will cost a lot of manpower and material resources to make up for them.

3.2 W model

Compared with V model, W model synchronously performs quality verification activities in each stage of software development. W model is composed of two V models, representing the development process and the test process respectively.

W model believes that testing should accompany the entire software development cycle, and the object of testing is not only the coded program, requirements and deliverables in the design phase also need to be tested and accepted.

4. Test process

The common test process includes the steps of planning, designing, implementing, executing, and completing:

  • Test plan. The first thing to do is to develop a test plan. It is necessary to determine the goal and strategy of the test, estimate the test cases, the workload of test implementation, and determine the human resources and test environment resources required. This is written in the test plan, which must be reviewed before it can be executed.
  • Test design, the first step after making test plan is test design, which needs to determine test requirements, design test cases, review test cases and so on.
  • Test implementation, after the completion of the design is the process of test implementation, the tasks include setting up the 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: test tasks are assigned to test executers according to the plan. Test executers input test data and record test results based on test cases. Defects need to be recorded and tracked after problems are found and verified after defects are modified. The test environment is also managed and monitored during execution.
  • After the completion of the test and the completion of the main work, it is necessary to analyze and summarize the test situation, confirm whether the target has been reached, and give the test conclusions and suggestions. The specific work includes evaluating the test activities, analyzing the test results, writing the test report, and finally reviewing the overall situation of the test and forming a conclusion.

5. Key roles and responsibilities of testing

Testing is not a task of the test group, but requires the participation of all colleagues in the whole project. The main roles and responsibilities involved in testing are as follows:

role Duties and responsibilities
The project manager Work with test team to set test quality goals and track the achievement of the goals.

Overall management of test progress and defect modification progress;

Provide documentation required for test activities;

Participate in the review of test plans, test cases, and test reports
Test organizer Develop test plans, organize and implement tests, including organizing, monitoring and managing test activities to ensure that test quality objectives are achieved. Tasks include:

1. Organized and built test environment, prepared test data and wrote test cases;

2. Organize testers to write test scripts (if tests can be automated);

3. Organized testers to establish the implementation process and conduct joint debugging;

4. Organize and maintain test cases and test scripts;

5. Track 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 practitioner Responsible for executing test cases, recording test results and defects;

Participate in the review of test plans, test cases and test reports;

Responsible for defect modification retest and validation
Defect modifier Responsible for correcting defects found by test;

Participate in the review of test plans, test cases, and test reports
Defect distributor Responsible for reviewing and assigning test defects;

Locate and assist to solve problems found during testing;

Participate in the review of test plans, test cases, and test reports
Quality assurance Organize and review test plans, test cases, test reports related to test;

Responsible for auditing the test process to ensure that the test is carried out according to the specification and procedure
Configuration Administrator Responsible for version integration and release during testing;

Responsible for configuration management of various deliverables in the test;

Participate in the review of test plans, test cases, and test reports

6. Conclusion

The horrible year of 2020 is over and hopefully the world will be better again in 2021. In this first blog post of 2021, it’s a chance to record three small goals for the New Year:

  • A weekly blog post
  • Read no less than 10 project management books
  • Pass the PMP exam

Cultivate the spirit of tiger and Wolf, practice elegant travel, 2021, adhere to sports, adhere to learning, in the pursuit of excellence, keep a peaceful and happy mood, and cherish!