Software Testing Summary
Testing is the process with the intention of finding defects in your system. Integrate right test in right development stage can help you to find the problem earlier and improve your system quality.
Good Testing Practice
Define the expected result clearly in each test
You should well understand the logic and define what’s the result of the test case in normal case.
Avoid unreproducible testing
It’s hard to investigate the defect when the test case failed if the test is unreproducible.
Write test cases for both valid and invalid input conditions
Testing with invalid input can help you to exam your error handling logic. Users always act unexpected.
Thoroughly inspect the results
The test result may return multiple values, make sure the whole result is same as your expectation.
Choose right people to do the test
Different test has different purpose, find the best people to do the test.
Consider testability when you develop the system
If you system is hard to test, it will cost you more time to find the defects. Then, it’s hard to grantee the system quality.
There are many kinds of test that you can implement, for example, compatibility testing, smoke testing, regression testing, etc. In our project, we are mainly considering following 4 kinds of test.
Unit Test
Isolate each part of the program and test that the individual parts are correct. The test scope includes
- Algorithms and logic
- Data structures (global and local)
- Interfaces
- Boundary conditions
- Error handling.
Integration Test
Individual software modules are combined and tested as a group to make sure the interaction is correct. It’s very important if you are going with micro-service architecture.
Regression Test
Ensure that previously developed and tested software still performs well after some changes. As regression test suites tend to grow with each new function and found defect, test automation is frequently involved.
Accepting Test
Determine if the software meets all of the requirements. This test should be done both internally and externally.
- Internal Acceptance Testing: Test by Product Management, Sales and / or Customer Support.
- External Acceptance Testing: Test by the end users (either existing or potential) of the software.
Once the tests be implemented, you should make sure the tests will be executed continuously. So, it will be a good idea to integrate your tests with the CI framework you are using.