All articles

Manual, Static & Dynamic Testing

We continue to study the subject of software testing and everything that is associated with it. Today we will understand what manual, static and dynamic testing is.

Manual Testing

Manual testing is the process of finding defects in the program, when the tester checks the health of all components of the program, as if it were a user. Often, for the accuracy of the test, the tester uses a pre-prepared test plan that identifies the most important aspects of the program.

Manual testing is a key stage in software development. The tester may not adhere strictly to the testing plan, but deviate from it for more complete testing, which is close to the use of the program by the ordinary user.

Large projects adhere to strict testing methodology in order to detect the maximum number of defects. The system approach to testing includes several stages:

  1. Selection of testing methodology, purchase of necessary equipment (computers, software), acceptance of people for the position of testers;
  2. Preparation of tests with description of implementation and expected result;
  3. Passing test suites to testers who manually perform tests and record the results;
  4. Transfer of test results to developers in a detailed report describing all identified problems for discussion and correction of defects.

Static and dynamic approaches can be used for testing. A dynamic approach involves running the software. Statistical testing involves checking the syntax and other features of the program code.

Testing can be functional and non-functional. Functional testing is a test of the software workspace. Non-functional testing is a test of the performance, compatibility and security of the system under test. We already talked about them in previous articles.

Static and Dynamic Testing

According to the criteria for running the program (whether the program code is executed), two more types of testing are identified: static and dynamic.

  1. Static testing is a type of testing that assumes that the program code will not be executed during testing. In this case, testing itself can be either manual or automated.

Static testing begins at the early stages of the software lifecycle and is, accordingly, part of the verification process. For this type of testing, in some cases, you do not even need a computer – for example, when checking requirements.

Most of the static techniques can be used to “test” any forms of documentation, including code proofing, inspection of project documentation, functional specifications and requirements.

Even static testing can be automated – for example, you can use automatic means to check the syntax of the code.

Types of static testing:

– checking the source code of the program;

– requirements check.

  1. Dynamic testing is a type of testing that involves running the program code. Thus, the behavior of the program during its operation is analyzed.

To perform dynamic testing, it is necessary that the code being tested has been written, compiled and run. At the same time, the external parameters of the program can be checked: processor load, memory usage, response time, etc. – that is, its productivity.

Dynamic testing is part of the software validation process.

In addition, dynamic testing can include different subspecies, each of which depends on:

  • Access to the code (testing with black, white and gray boxes).
  • Level of testing (modular integration, system, and acceptance testing).
  • Application areas (functional, load, safety testing, etc.).