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.
  • 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.
  • 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.

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.

  1. Define the purpose of the test.
  2. Identify the functions.
  3. Extract test viewpoints. For example, checking values submitted from a form.
  4. Assign the test viewpoints to functions.
  • Normal cases
  • Abnormal cases
  • Combined cases
  • etc.
  1. Decide the test technique.

References