What Is Software Testing
Software Testing is the act of examining the artifacts and the behavior of the software under test by validation and verification.
FAQ
Why is Software Testing an “examination” and not an “investigation”?
It’s because we examine software under test by validation and verification. It is better not to call it as an investigation because the word investigation gives a negative connotation as though there is something inherently wrong in the software under test (which need not be the case). Usually investigations happen only when something has gone wrong (for example, ‘Sherlock Holmes was investigating the crime’).
Is Software Testing just “black-box” testing?
Software Testing is not just about testing the developed code. It’s about validating and verifying all the artifacts like requirements, functional specifications, design (Functionality, Performance, Security, User Interface, Accessibility, etc.), design patterns and other aspects of code, the deployment and release infrastructure & their associated configurations and scripts, software’s behavior, monitoring and observing the software in production, anything and everything else involved in the software development process.
Why is Software Testing done by “validation” and “verification”?
Validation is examining if the software is doing the right things. Verification is examining if the software is doing those things right. Both are important and need be done.
Why is test automation not mentioned anywhere in the definition?
Automation aids in the verification by checks. Automation can assist human testing and supervision of Testing. Testers can use automation as required to find results and/or the state of the system, but should not consider automation alone as Testing.
How is Software Quality and assurance different from Software Testing? What about Quality Engineering?
Software Quality is about achieving customer delight (or) customer satisfaction based on the parameters defined by the customer or the target audience. No one can ‘assure’ Software Quality in all possible environments, so ‘Quality Assurance’ is a misnomer. Quality is an intangible thing so no one can ‘engineer’ Quality, so ‘Quality Engineering’ is a misnomer too. In both the cases of ‘Quality Assurance’ and ‘Quality Engineering’, it is safe to say that the Testing efforts would strive to achieve customer delight or customer satisfaction, and Software Quality could be an outcome of those efforts. But, Software Quality is a whole-team responsibility, not just Testing team’s responsibility.
What are Software Testing basics?
The best place to start with to understand the definition of Software Testing mentioned above. Each and every word of the definition carries weight in understanding Testing.
What are the types of Software Testing?
The types of Testing closely mirror the aspect that is being tested. For example, a testing strategy could talk about various types of Testing such as functional testing, performance testing, security testing, interoperability testing, solution testing, and so on. Depending on the scenario that one is working on, they need to pick the aspects that are applicable to that scenario. There are several websites that list the types of Testing. We are planning to come up with a list too for this website in the near future.
Give me a Software Testing example?
As an approach to practice Testing, take any website, e.g. https://www.google.com and check if everything in that website is working as expected in your opinion. This is the first step towards coming up with a set of expectations based on your understanding how the software should behave. Note that in this case, there are no pre-determined set of expectations and you have to come up with your own, which is a natural way of practicing Testing. You can record your expectations, which are called ‘test cases’ in a test plan, which could be in a list in a text editor, a Mind Map diagram, or any form that facilitates referring back while you are doing your tests.
Is there a Software Testing tutorial?
Software Testing is quite an exhaustive topic that it would be difficult to come up with a single tutorial to cover it, especially during these days of change in development methodologies and processes, and infrastructure and deployment scenarios. However, there has been some effort to bring about videos as tutorials. In the future, there is a plan to come up with a tutorial in Software Testing and Quality Talks YouTube channel.
Is there a Software Testing course?
There are several Software Testing courses available in the market. As Testing is quite exhaustive, and the approach taken to Testing heavily depends on the context, one has to be choosy in picking the course that addresses their learning needs in Testing.
Where can I find Software Testing jobs?
Software Testing is just like any other career position, so you can find the open positions in job portals, community websites, company websites, Slack channels, etc.
Hope you found “Software Testing Defined” and its FAQ useful. It is good to have Software Testing defined without any misinterpretations.