Software testing isn’t just about finding bugs, or surprisingly about giving developers headaches (those poor developers). As we’ve mentioned before, there’s much more to testing than uncovering those creepy-crawlies.
In short, here are the objectives of testing:
1. Identification: Identify defects in the software.
canada goose down mittens for women https://www.geeseparka.com canada goose authentic outlet 2 cialis apothekenpreis. Confidence: Enable stakeholders to gain confidence in the system’s level of quality.
3. Decision-making: Provide information for decision-making.
4. Prevention: Prevent future bugs by improving the development process and standards.
These “whys” of software testing can be remembered with the acronym ICDP (Identification, Confidence, Decision-making, Prevention). The other three are fairly self-explanatory, but decision-making merits a bit more discussion.
So how can software testing help with decision-making?
Think about a software project that almost everyone has considered: building a website. You want something nice, so you hire a team of professionals to make one for you. When you get to testing the new site, everything looks great… but it takes 30 seconds to load. The results of the performance test now prompt you to do some decision-making. In this case, you decide to buy a dedicated server to host your website.
Take a popular social media site for example. They got as far as beta testing with their face-search feature. The reaction from initial users then provided the feedback necessary for them to pull the feature. Beta testing here lead directly to a decision to drop the new feature.
After those examples, hopefully you have a pretty good idea of how software testing contributes to decision-making, the “D” of ICDP. And if you’ve got your head wrapped around ICDP, then you have a pretty good idea of the “why” of software testing. In the next chapter we’ll look at the “what”.
When most people think about software testing, they’ll think of running tests on the software code. While that’s part of the process, we need more to get the whole picture. Software testing activities also include:
* Planning the approach to software testing
* Manually reviewing project documents like specifications and code
* Using automated tools to scan for defects
* Setting up test conditions like sample data, Internet access, etc.
* Designing and coding test cases that try out particular features of the system
* Verifying results
* Evaluating results to determine whether the project can progress to the next phase, should stay where it is, or whether it even needs to go back a step or two
* Reporting test results about the software under scrutiny, and about the testing process itself (such as feedback on the appropriateness of testing, recommendations for future tests, etc.)
* Housekeeping activities like sign-offs that are part of the test phase finalization
You may have noticed that debugging is not on the list. Debugging is not actually a software testing activity (although FINDING bugs and their causes is); it’s a development activity. In a perfect world, testers would find the bugs and developers would fix them as part of the normal process for addressing defects. Software testers just need to figure out what, exactly, needs to be fixed – which is often quite a tricky problem in itself.
With that we conclude our overview of the “what” of software testing.
This article is Chapter 2 from “What is Software Testing?”, the Software Testing and ISTQB Foundation companion guide from iLoveTesting.com