1.

What are the principles that need to be followed while performing API Testing?

Answer»

There are 7 principles in API testing design. They are:

  • Optimal Testing: Since it is not possible to test anything exhaustively, there needs to be at least some optimal amount of testing depending on the risk assessment PERFORMED on the application.
  • Defect Clustering: This represents the clustering of modules containing most DEFECTS. As a GENERAL rule, almost 80% of the defects are found in 20% of the application modules. These risky modules can be identified by following this approach.
    • However this principle has a problem. We might have to perform API testing repeatedly on the application which might be obstructive to finding new bugs.
  • Pesticide Paradox: This paradox states that if the testers use the same test cases repeatedly, then they would not be capable of finding new bugs over a period of time. Hence, the testers NEED to be fully equipped by reviewing and revising the test cases regularly. New test cases are more effective in finding new bugs. However, no amount of testing can ensure that the product is 100% bug-free.
  • Presence of defects: Another principle of testing is that the aim of testing should be the presence of bugs and not the ABSENCE of defects. The goal of testing is to reduce the probability of finding undiscovered bugs. In case 0 defects are found, yet we cannot fully claim that our software is 100% bug-free.
  • Error absence fallacy: There can be an increased possibility of software being unusable even if it is 99% bug-free which can be wrong. The main focus of software testing is to ensure that the software addresses the business requirements correctly. This principle states that even if we identify and fix the defects if the software does not fulfil the business requirements, then the system is unusable.
  • Early Testing: This principle states that it is easier to fix bugs early in the software development lifecycle. Hence, it is recommended to start testing the application as early as possible.
  • Context Dependent Testing: The way we test an application depending on the type of the system. We use different techniques, methodologies and test cases to test the applications depending on the type. For example, the way we test e-commerce applications is different from the way we test online streaming applications.


Discussion

No Comment Found