rnew icon6Grab Deal : Flat 30% off on live classes + 2 free self-paced courses! - SCHEDULE CALL rnew icon7

Principles of Software Testing

The Seven Principles of Testing

1. Testing Shows the Presence of Defects, not their Absence

Software are tested to find issues in order to fix the issues before the y are released to production, this gives the assurance software/systems are working. Testing activity however it doesn't confirm 100% defect free systems.  Testing helps to reduce number of defects going to production  improving the quality of software , testing helps  to find undiscovered defects in the system.  This is known fact and should be communicated to client.

It is significance to know however that while testing shows the existence of bugs and not their absence,  testing assures software is working as expected  Test strategy, test cases , test plans test reports and release plans help right approach of testing is followed . Additionally, tracking the deployed software after its in production is crucial for any later defects that could arise when used by end user. For Eg: New launch of website could bring lot of users to log in increase load in the system so load testing can be considered for load balance.

2. Exhaustive Testing is Impossible

Its impossible to test everything in a system doesn't matter if consider all possibilities of inputs and outputs , this could only result in time and effort. Best way is to look at the risk and known possible vital areas prone to defects. Increasing the test coverage to most important features and functions by planning well.So that not every line of code needs to be tested.

3. Early Testing Saves Time and Money

In software life cycle testing early is very important. Even before coding is started during requirement stage itself if testing activities is started this could stop the flow of defect by ensuring there is no flaw or missing requirements, this could later lead to reduce any rework and save time rather than doing at end of the life cycle where that could result into multiple defect and reworks.

Even in Agile principle testing early is fundamental principle, testing is limited to a stage rather a activity which goes through however in waterfall model testing is carried at end of lifecycle. When testing is carried at early stages it results in quick feedback. Most of information could be passed on when testing activity is started in earlier phase

Essentially, testing early can also help to prevent defects in the first place!

4. Defects Cluster Together

Defect Clustering  means that a small module or functionality contains most of the bugs that could lead to most operational failures.

The Pareto Principle’s 80-20 Rule , which states  80% of issues comes from 20% of modules and remaining 20% of issues from remaining 80% of modules. 

This is especially the case with large and complex systems, but defect density can change for a different  reasons. Issues are not evenly distributed throughout the system, and the more complicated a system, or the more third-party dependencies there are, it will result in more  defects. 

Knowing this adds  value to  testing; if we able  find one defect in this module/area there is a strong chance of discovering many more defects in this area. Identifying the more complex modules that have more dependencies or are changing the most, for example, can help you focus on testing on these risk areas.

5. Beware of The Pesticide Paradox

When same pesticide repeatedly used on crops the insects tend to adapt to these pesticides developing immunity and therefore these pesticide becomes ineffective. In similar manner when perform same set of tests or run same test cases on the software they will confirm software is working but to make it more effective its good to revisit these tests modify the scenarios to help prevent pesticide paradox, may be using different technique.

6. Testing is Context Dependent

Testing activity is ALL about the context. The methods and types of testing carried is  completely depend on the context of the  systems – for example, an banking website can require different types of testing and approaches to an API application, or a medical application.  testing carried out will always affect way of approach.

7. Absence-of-Errors is a Fallacy

If your software or system doesn't behave as it should (or does not fulfill end users’ requirement ) then it does not matter how many defects are found and fixed – still it cannot be used. So in this sense, it is irrelevant how issue- or error-free your system is; if the usage is so poor end users are unable to navigate , or/and it does not match user requirements then it has failed, even with less bugs.

It is important, therefore, to  test  that are related to the system’s requirements. We should also be testing our software with users – this can be done during early prototypes (at the usability testing phase), to collect feedback that can be used to ensure and improve quality/usability. 

cta7 icon

QA Software Testing Training

  • Personalized Free Consultation
  • Access to Our Learning Management System
  • Access to Our Course Curriculum
  • Be a Part of Our Free Demo Class

In summary

These principles help testing become more focused and efficient, additionally improve the quality of overall testing strategy. One principle implementation can result in another principle coming and falling into the system. One example could early testing could result in absence of errors , if testing activity its started at requirement phase that will help software will match the clients requirements.

Trending Courses

Cyber Security icon

Cyber Security

  • Introduction to cybersecurity
  • Cryptography and Secure Communication 
  • Cloud Computing Architectural Framework
  • Security Architectures and Models
Cyber Security icon1

Upcoming Class

13 days 31 May 2024

QA icon

QA

  • Introduction and Software Testing
  • Software Test Life Cycle
  • Automation Testing and API Testing
  • Selenium framework development using Testing
QA icon1

Upcoming Class

6 days 24 May 2024

Salesforce icon

Salesforce

  • Salesforce Configuration Introduction
  • Security & Automation Process
  • Sales & Service Cloud
  • Apex Programming, SOQL & SOSL
Salesforce icon1

Upcoming Class

-0 day 18 May 2024

Business Analyst icon

Business Analyst

  • BA & Stakeholders Overview
  • BPMN, Requirement Elicitation
  • BA Tools & Design Documents
  • Enterprise Analysis, Agile & Scrum
Business Analyst icon1

Upcoming Class

7 days 25 May 2024

MS SQL Server icon

MS SQL Server

  • Introduction & Database Query
  • Programming, Indexes & System Functions
  • SSIS Package Development Procedures
  • SSRS Report Design
MS SQL Server icon1

Upcoming Class

-0 day 18 May 2024

Data Science icon

Data Science

  • Data Science Introduction
  • Hadoop and Spark Overview
  • Python & Intro to R Programming
  • Machine Learning
Data Science icon1

Upcoming Class

-0 day 18 May 2024

DevOps icon

DevOps

  • Intro to DevOps
  • GIT and Maven
  • Jenkins & Ansible
  • Docker and Cloud Computing
DevOps icon1

Upcoming Class

6 days 24 May 2024

Hadoop icon

Hadoop

  • Architecture, HDFS & MapReduce
  • Unix Shell & Apache Pig Installation
  • HIVE Installation & User-Defined Functions
  • SQOOP & Hbase Installation
Hadoop icon1

Upcoming Class

6 days 24 May 2024

Python icon

Python

  • Features of Python
  • Python Editors and IDEs
  • Data types and Variables
  • Python File Operation
Python icon1

Upcoming Class

7 days 25 May 2024

Artificial Intelligence icon

Artificial Intelligence

  • Components of AI
  • Categories of Machine Learning
  • Recurrent Neural Networks
  • Recurrent Neural Networks
Artificial Intelligence icon1

Upcoming Class

-0 day 18 May 2024

Machine Learning icon

Machine Learning

  • Introduction to Machine Learning & Python
  • Machine Learning: Supervised Learning
  • Machine Learning: Unsupervised Learning
Machine Learning icon1

Upcoming Class

13 days 31 May 2024

 Tableau icon

Tableau

  • Introduction to Tableau Desktop
  • Data Transformation Methods
  • Configuring tableau server
  • Integration with R & Hadoop
 Tableau icon1

Upcoming Class

6 days 24 May 2024