Why Software Testing is necessary in the first place?👀
Tags: istqb, softwaretesting, automationtesting, istqbfoundation
Published: 2023-01-09 16:05:52

Now, why is software testing is needed in the first place and how it is going to contributed to the software success?

👆🏻First and foremost, **defects in the software might be able to identify by the software tester** , and removal of requirements defects reduces the risk of incorrect and un-testable features being developed. Software testers will usually work closely with the system designers while the system is being designed can increase each party's understanding of the design and how to test it.

Tester will be able to verify and validate the software prior to release can detect failures that might have been missed and support the process of removing the defects that caused the failures.

This increases the likelihood that the software will meet stakeholders / Product Owner (In Scrum) needs and requirements.

Bear in mind that **"Software testing is not the same as Quality Assurance, but they are related."**

`Quality Assurance is focus on adhere the proper processes in order to provide confidence that the appropriate level of quality is achieved.`

`Software Testing is part of the overall software development and maintenance process.`

In simple words, quality is achieved by proper software testing or the overall execution process.

## Errors, Defects, Bugs

According to ISTQB glossary, the terms "Errors, defects and bug are tied to different meaning.

**Error** : A mistake created by a person (Tight timeline, Human fallibility, Inexperienced project participants, Miscommunication between project member, Complexity of the code, misunderstanding about the system requirement, unfamiliar with the new technologies.

**Defects**: Issue (bug) caused in code because of the error.

**Bug** : Crash resulting in running code with a defect within it

## The Seven Principles of Testing

✅ 1. Testing shows the presence of defects, not their absence.

This means that testing can discover defects are in the software but not that a system is defect-free.

✅ 2.  Exhaustive Testing is impossible.

Testing everything is absolutely impossible. Rather than testing exhaustively, test techniques and priorities should be used to focus the testing effort.

✅ 3. Early testing can save money and time.

Both static and dynamic test activities could started as early as possible in the software development life cycle to find defects as soon as possible.

✅ 4. Defects cluster together.

A small number of modules usually contain most of the defects discovered during pre-release testing or is responsible for most of the operational failures.

Predicted defect clusters, and the actual observed defect clusters in test are an important to import into a risk analysis used to focus the testing effort.

✅ 5. Beware the pesticide paradox

If the same tests are repeated over and over again, eventually these tests no longer able to find any new defects. Existing tests and test data may need changing, and new tests may need to be written in order to detect new defects.

In some cases, such as automated regression testing, the pesticide paradox has a beneficial outcome ( to making sure core function are working perfectly), which is a relatively low number of regression defects.

✅ 6. Testing is done differently in different context.

For example, safety critical industry control software is tested completely differently from an e-commerce mobile app. As a further example, testing in an Agile project is also done differently than testing in a Waterfall software development lifecycle project.
 
✅ 7. Absence of errors is a fallacy. 

Some organizations expect the testers can run all possible tests and find all possible defects, but principles two and one respectively, tell us that this is impossible. Further, it is a fallacy to expect that just finding and fixing a large number of defects will ensure the success of a system. 

To sound more interesting, for example, thoroughly testing all specified requirements and fixing all defects could still produce a system that is difficult to use, that does not fulfill the user's needs and expectations or that it is inferior compared to other competing systems.


✅ The seven principles of testing cover a wide range of topics. And as part of the ISTQB, it's important to remember these, and their meanings.
❤️



Related Articles:
    [1. Cloud Computing , let’s talk about it [Part 2]](https://dev.to/alanliew88/cloud-computing-lets-talk-about-it-part-2-2mgj)
    [2. AWS ! the terms you must know 🤫](https://dev.to/alanliew88/aws-the-terms-you-must-know-2k8p)
    [3. ISTQB 🧙🏻‍♀️The software testing Myth, do you need that?](https://dev.to/alanliew88/istqb-the-software-testing-myth-do-you-need-that-1ajj)
❤️


Connect with me in [Linkedin](https://www.linkedin.com/in/alan-liew/) !