Return to site

Software Testing

Is software Testing making a confusion? Here we are to take away all your confusion

Software testing is the process used to measure the information related to the quality of the product or service under test. In this process, we are doing a measurement of quality & typically try to find the completeness, correctness, security of product or service under test.

broken image

Principles of Software Testing

As software development techniques have advanced during the last decades, some basic principles of testing have also been established. These principles can be seen as a basic guideline for both, Software Testing and coding.

broken image
  1. Testing Shows Presence of Defects: Testing an application can only reveal that one or more defects exist in the application. Even after testing the application or product thoroughly we cannot say that the product is 100% defect free. Therefore, it is important to design Test Cases which find as many defects as possible.
  2. It is not possible to test all possible combinations of data and Test Scenarios as it will take to much time. For this reason, risk and priorities are used to concentrate on the most important aspects to test. 
  3. In the Software Development Life Cycle testing activities should start early and focus on defined objectives. As soon as the initial products, such as requirement or design documents are available, we can start testing. By starting testing early, the test can be prepared for each level of the development life-cycle. It is much cheaper to change an incorrect requirement than having to change a functionality in a large system that is not working as requested or as designed!
  4. Defect Clustering: During testing, it can be observed that most of the reported defects are related to a small number of modules within a system. By identifying and focusing on these clusters, testers can efficiently test the sensitive areas while concurrently testing the remaining “non-sensitive” areas.
  5. Pesticide Paradox: If we keep running the same set of tests over and over again, chances are no more new defects will be discovered by those test cases. “Pesticide Paradox” means that it is very important to review the test cases regularly. New and different tests need to be written to cover different parts of the software or system to find more defects.
  6. Testing is Context Depending: The same tests should not be applied across the board because different software products have varying requirements, functions, and purposes. Different methodologies, techniques, and types of testing are related to the type and nature of the application.

The absence of Errors Fallacy: If the system built is unusable and does not fulfill the user’s needs and expectations then finding and fixing defects will not help. Also if testing didn’t find any defects in the software, it doesn’t mean that the software is ready to be used. It must be confirmed whether the executed tests were really designed to catch the most of the defects.

Types of Testing

  • Manual Testing
  • Automatic Testing

Manual Testing: Test cases executed manually.

Automatic Testing: Testing performed with the help of automatic tools.

Software Testing Methods

Black Box: The technique without having any knowledge of interior workings of applications.

White Box: This technique is about the detailed investigation of internal logic and structure of the code.

Grey Box: This technique is used to test the applications with having a limited knowledge of the internal workings of applications.

broken image

 Levels of Software Testing

Functional Testing: This testing is based on a software which is conducted completely on integrated systems to evaluate the systems compliances with its specified requirements.

Non-functional Testing: Non-functional testing involves testing a software from the requirements which are nonfunctional in nature but important such as performance, security, user interface, etc.