Test Overview
Types of Tests
Unit Test
A unit test is a program test performed at the class or function level. It mainly checks whether units behave as designed and whether their logical structure is appropriate.
- Functional confirmation test
- A test that checks whether a module behaves according to its design or specification.
- Control flow test
- A test that checks whether commands, branches, and similar elements work according to the program’s logical structure.
- Data flow test
- A test that checks whether data or variables are executed in the order of definition, use, and disposal.
Integration Testing
Integration testing combines and runs programs that have been verified by unit tests.
- State transition test
- A test that checks behavior based on a state transition diagram.
Functional Testing
Functional testing tests integrated programs as a single feature.
- Functional confirmation test
System Testing
System testing verifies whether a program made by combining individual programs or features behaves according to the specification.
-
Confirmation testing
- Regression testing
- A test that checks whether changed parts work correctly after a program feature has been modified or changed.
- Degrade testing
- A test that checks whether existing behavior continues to work after a program feature is added or changed.
- Regression testing
-
Evaluation testing
- Security Test
- A test that checks whether the system can respond to malicious external attacks and whether vulnerabilities exist.
- Usability Test
- A test that checks whether the system is visually easy to read and easy for users to operate, learn, and understand.
- Fault tolerance test
- A test that checks whether specified functions are maintained when a failure occurs.
- Security Test
-
Load testing
- Performance Test
- A test that checks whether processing capacity satisfies the specification.
- A test that measures how much performance a system element shows under a specific condition.
- Long-run test
- A test that checks whether processing capacity or uptime remains healthy during long continuous operation.
- Load Test
- A test that checks whether the system can keep operating even under extremely heavy load.
- A test that applies a specific load for a limited time and checks whether a web application has any problems.
- Endurance Test
- A test similar to a load test, performed by applying load over a long period. It is also called an aging test.
- Stress Test
- A test that gradually increases load to find the load threshold.
- Peak Test
- A test that applies an unsustainable load for a short moment and checks whether the web application keeps running, works correctly, and recovers.
- Performance Test
User Testing
- Acceptance testing
- A test that checks whether the target system satisfies user requirements.
- Operational testing
- A test that checks whether the system works normally in the real operating environment.
- Alpha testing
- A test in which people other than developers operate the system and check for defects.
- Beta testing
- A test in which general users other than developers operate a product before development is complete or before release and check for defects.
Test Techniques
White-Box Testing
White-box testing means testing while understanding and consciously considering the contents of the system. It is mainly used in unit testing and is classified into the following tests.
- Control flow test
- Data flow test
When performing white-box testing, the logical structure, such as the processing flow and execution order, must be visualized. One way to do this is with a flowchart.
Test Coverage
Test coverage indicates how sufficient testing is when discussing tests for a system or software. In other words, it expresses as a ratio how much the executed tests cover the test target.
Representative code coverage types are as follows.
- Statement Coverage
- This is also called line coverage. It is satisfied when each line of code is executed at least once.
- Decision Coverage
- This is also called branch coverage. It is satisfied when every conditional expression has both true and false outcomes.
- Condition Coverage
- Here, conditions mean all conditional expressions. This checks whether each internal condition satisfies both true and false cases.
Other forms of code coverage also exist.
- Condition/Decision Coverage
- Modified Condition/Decision Coverage
- Multiple Condition Coverage
- All Path Coverage
Black-Box Testing
Black-box testing is a method of inspecting behavior without knowing the internal structure or operating principles of the software.
After unit testing with white-box testing is complete, testing proceeds without considering the internal structure of the system.
It is mainly classified as functional testing and system testing.
In black-box testing, tests are performed in the following order.
- Define the purpose of the test.
- Identify the functions.
- Extract test viewpoints. For example, checking values submitted from a form.
- Assign the test viewpoints to functions.
- Normal cases
- Abnormal cases
- Combined cases
- etc.
- Decide the test technique.