Testing is only an integral part of debugging - the process of fine-tuning the software after it is written to an operational state. This process includes two main procedures: detecting errors (testing) and finding and eliminating their causes. However, even taking into account all the possible interconnections of these works (for example, searching for the causes of errors requires special additional testing), it must be emphasized that testing is a fairly autonomous, independent stage of the software life cycle.
Testing permeates the entire software life cycle, from design to the indefinitely long phase of operation. These works are directly related to the tasks of managing requirements and changes, because the purpose of testing is just the opportunity to verify that the programs meet the stated requirements. Using QA services, you’ll be able to check whether certain software product meets the necessary standards.
There are many testing technologies. Conventionally, they can be attributed to static or dynamic. It is necessary to understand what dynamic testing is and what static testing is. Let’s have a look at the the technologies they use.
Static Testing Features
Static testing is a process that is usually associated with software analysis. Static testing is used to verify almost any development artifact: component software code, requirements, system specifications, functional specifications, design documents and architecture of software systems and their components, etc. Using static software testing methods is one of the most effective methods for detecting defects in the early stages of software development. Indeed, static testing is the only way to test without running application code.
Dynamic testing is the testing process performed on a working system or subsystem. It cannot be implemented without running the application program code. To be more precise, dynamic testing consists of:
- launching a system or subsystem;
- request of the necessary functional elements or modules;
- comparisons through the graphical user interface of system behavior with the expected result of the behavior.
Black-Box and White-Box Testing
Testing technologies are used when applying certain test methods. Among the testing methods, two of the most common are usually distinguished:
- method of "black box" ("black-box" testing);
- method of "white box" ("white-box" or "glass-box" testing).
The difference between testing the “white box” and the “black box” takes place at any level. As it might seem at first glance, testing internal components is testing the “white box”. At the same time, from the point of view of the developer, the component itself can be tested both by the “black” and “white” box methods.