P A N D O I N F I N I T Y

Welcome to Pando Infinity

Software Testing and 7 fundamental principles

19 July, 2022 Company | Web/App
software testing

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. 

What is software testing?

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. 

Purpose of software testing

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:

  • Preventing errors by evaluating documents and items of the product.
  • Checking whether the final product has met all the requirements.
  • Ensuring the software has been built according to the design, can operate as expected.
  • Increased product reliability and quality.
  • Finding faults to minimize the risk of product quality.
  • Providing sufficient information for decision-making on the project by stakeholders.
  • Complying with contracts, laws and regulations on requirements and standards for software testing.
  • Verifying that the final product meets the requirements and standards of the software.
alpha testing beta testing process

7 fundamental principles of software testing

Testing only helps to detect errors

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.

Testing must include screening

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. 

Early testing saves time and budget

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. 

Tester should focus on finding error phrases

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.

Tester needs to prevent the “pesticide paradox”

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. 

Tester must test the right technique at the right time

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.

Misconceptions about “free from errors”

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. 

Conclusion

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.

2 Comments

Leave a Comment

Ready to share your "next big thing" idea?

Set a calendly meeting with our top-notch Blockchain Builder/Advisor from today.

Pando Infinity is a software development company specializing in the blockchain and web3 industry

Follow Us

Email : contact@pandoinfinity.com
Telegram : @nomadng
Address : Mac Plaza, 10 Tran Phu, Ha Dong, Ha Noi