Welcome to Pando Infinity
In software testing, there are a total of 7 principles. Understanding them is very important because it saves time and effort in finding hidden bugs in applications. Let’s find out what software testing is and its 7 principles.
Software testing is the process of evaluating and verifying the quality of software. As a result, we can minimize the number of errors as well as the operational risk of the product. During the testing process, the features and aspects of the software will be evaluated and detected. The tester can perform a manual test or test automation.
Software testing includes a variety of testing activities and techniques. In the preparation stage, you must plan, perform analysis, create a test case (test case),… then run the test process, report progress, and evaluate the product quality. In terms of testing techniques, dynamic testing techniques need to be run when testing. These include regression testing, functional testing, system testing, etc. Conversely, static testing techniques do not run code. It can be said that software testing is a combination of validation and verification. Verification is the process of checking that the software meets the technical requirements. Meanwhile, validation verifies the product’s conformity to the customer’s business requirements.
Each project will have differences in testing objectives depending on many different factors. These include software, test items, testing levels, and the development lifecycle of the software. However, the important purpose of software testing is mainly the following points:
Different software testing execution approaches are used to find defects. Testing, however, cannot conclusively demonstrate that a system is free of flaws after identifying them. Even after intensive testing, it is frequently discovered that software still contains flaws. A number of software flaws are to be reduced, according to this principle. Testing shouldn’t be viewed as evidence that the software is defect-free because there is always a possibility that there are undiscovered flaws.
Each test case is a different combination of input and precondition. With software with complex architecture, the number of test cases can be thousands or more. Because they are time and resource-consuming, the tester should not and cannot test them in their entirety. Instead, the tester should analyze the risk, priority and testing techniques of the test case. The next step is to limit the number of test cases to accurately estimate the test scale.
During the software development lifecycle, testing should be started as soon as possible. As a result, we will soon find and patch bugs, reducing the burden of time and money. Early testing is also known as shift-left Testing. This name refers to the direction to the left of the test on the project timeline.
In fact, some modules often contain many errors that appear during testing before release. Some other modules are also responsible for most errors that occur when operating the product. These modules are considered to be fault clusters. When a software item is found to be defective, the tester should test the relevant parts. In addition, the tester should also test other items near it so that more errors can be found. However, the tester must not ignore the rest of the product or other potential faults. In addition, the risk analysis is also based on the number of clusters of errors that you predict or find.
Like pesticides, the test cases will not find new faults when they have been used too many times. This is the “pesticide paradox” – when pesticides fail to kill pests. To detect new errors, the tester must regularly update the old test case and write a new test case. However, sometimes this paradox can provide beneficial results for testing.
Each test context will have corresponding test procedures and techniques. Therefore, the tester must consider the context when testing to decide exactly how to perform the test. According to this principle, if you are testing web applications and mobile applications using the same testing strategy, then it is wrong. The strategy for testing should be different and depends on the application itself. The strategy for testing web applications must be different from Android mobile applications.
Many people think that if they have been tested, they must use all possible test cases so as not to miss errors. The first two principles proved that a tester cannot and should not do that. Furthermore, testing will be meaningless if the software cannot be operated as required. The success of the project depends on many different criteria, not patches. Although there is no fault, if the product is not suitable for the customer, it is a failure.
Testing is not merely a single activity but a series of related and complementary and complex activities. However, following the above 7 principles will help us have a more general view of testing as well as help us evaluate the effectiveness of the testing activities performed.