Software Testing Fundamentals
Author: Syafiq Hadzir
Email: syafiqhadzir@live.com.my
GPG Key: EBE8 BD81 6838 1BAF
Table of Contents
- Table of Contents
- Introduction
- All Codes Are Guilty Until Proven Innocent
- What is a Defect?
- What are Severity and Priority?
- Conclusion
Introduction
Software testing is nothing but an art of quality inspection. The only key to success in software testing is to fulfil the must-have prerequisite, a solid understanding of the fundamentals. Due to its vast subject, I wish to write this as concisely as possible.
All Codes Are Guilty Until Proven Innocent
It says that every software application has defects embedded in it. However, not each of them is a threat. We all agree that one may be blind to one’s own mistakes. Therefore, it is essential to have a third-party inspection. Here is where software testing comes into play.
What is a Defect?
According to Mirriam-Webster, a defect is “an imperfection or abnormality that impairs quality, function, or utility”. In software testing, it is “a deviation from the specified or expected behaviour that is visible to end-users”. It can be either a functional defect, a non-functional defect, or a combination of both. Defects may exist either in the code or in its design. To a certain extent, it is a subjective matter. For example, a defect may be a feature to some people. However, it is a defect to others. Therefore, it is essential to recognise what is a defect and what is not.
What are Severity and Priority?
Severity defines the degree of impact that a defect has on the development or operation of a component or system. The severity can be of one of the following types (and I use all the definitions from ISTQB):-
- Critical (S1): The defect affects critical functionality or critical data. It does not have a workaround.
- Major (S2): The defect affects major functionality or major data. It has a workaround but is not obvious and is difficult.
- Minor (S3): The defect affects minor functionality or non-critical data. It has an easy workaround.
- Trivial (S4): The defect does not affect functionality or data. It does not even need a workaround. It does not impact productivity or efficiency. It is merely an inconvenience.
Conclusion
Fundamentals are the foundation to understand that software testing is not just a process, but a solution.