|
by Bharath Benoit
March, 2009
Have you ever wondered why software testing is renowned to have its position relegated to one phase of the software development life cycle (SDLC)?
In most cases it’s towards the end of the SDLC. Generally this holds true for most organizations.
Just as the world begins to evolve at a rapid rate, new and improved methodologies are changing and so it is this notion that software testing should be included in all phases.
It is not just merely me as a Test Manager making a stance for Software testing but it is about evolving with the times and changing our habitual patterning. Let's take a look at what the advantages are and how this approach could improve your software development.
It reminds me of a joke that I read once and it goes something like this:
- Programmer produces code he believes is bug-free.
- Product is tested. 20 bugs are found.
- Programmer fixes 10 of the bugs and explains to the testing department that the other 10 aren't really bugs.
- Testing department finds that five of the fixes didn't work and discovers 15 new bugs.
- Repeat three times steps 3 and 4.
- Due to marketing pressure and an extremely premature product announcement based on overly-optimistic programming schedule, the product is released.
- Users find 137 new bugs.
- Original programmer, having cashed his royalty check, is nowhere to be found.
- Newly-assembled programming team fixes almost all of the 137 bugs, but introduces 456 new ones.
- Original programmer sends underpaid testing department a postcard from Fiji. Entire testing department quits.
- Company is bought in a hostile takeover by competitor using profits from their latest release, which had 783 bugs.
- New CEO is brought in by board of directors. He hires a programmer to redo program from scratch.
- Programmer produces code he believes is bug-free....
Feasibility phase
Drawing on from what was explained above whereby testing in the initial stages is an afterthought then even before the commencement of the project termed as the feasibility phase, it is imperative that a Software Test Manager or Senior Software Test Lead be included in the feasibility phase of a project. What are the advantages I hear you say?
The advantage of having a Software Test Manager involved in early product planning is he/she can forecast time, materials and resources and provide important inputs that are not covered in the specification. Infact these are aspects that should be addressed and designed at early stages rather than later. Do many organizations even consider things like load and performance requirements or how about customer experience performance requirements, ever heard of usability, accessibility and other aspects that are not part of the regular functionalities?
An article that I read by Karen N. Johnson (she’s an independent software test consultant) states that “Product feasibility needs to include testing costs such as the time taken for testing, materials, equipment and resources as part of the overall costs. Early test estimates coupled with the other project costs are factors in deciding to proceed with the product.”
This reminds me of an analogy. There are a lot we can learn in our day to day activities of our busy lives. As the saying goes, our very thought produces the right or wrong actions.
Imagine that a new sport car is designed and only after the frame, engine are built the steering committee discover that they missed few aspects at the early stage such as the definition of threshold of weight load allowed in order for the car to reach 0-100 kph in 7 seconds. In no way am I insinuating that the car industry had the same defect rate as the software industry (If such was the case then I would have definitely invested in the motor industryRACV shares) but what I’m saying is that there is a certain amount of feasibility study that goes on within us.
We most certainly undertake early estimates of condition of the vehicle in order to ensure that it meets our internal checklist. Only after this assessment is made do we proceed to purchase the car or drive the car.
Advantage: Early test estimates help determine overall product feasibility
Analysis phase
Having drawn from personal experience and also worked on several major accounts in the space of analysis just like the feasibility phase, initial analysis by testers view requirements with a skeptical eye and can add value by providing feedback. Testers can challenge requirements by asking good questions. They can identify requirements that might not be testable. Thinking outside the square as I like to call it.
Another advantage in having testers involved during analysis and requirements gathering is it allows their test ideas time to grow. Just like developers coming up with innovative ideas and code to make the hardest functionality seem easy, testers also have uncanny knack of thinking through test ideas, host brainstorming sessions, plan test data, plan the test environment and test equipment.
Advantage: Identify requirements that might not be testable
Development phase
In this phase it appears as if the testing team takes a rest. Quite the opposite actually. The benefit of having access to a product early, even before the entire product is built, is that testers can begin to investigate the product. A pilot test if you like or in the case of the extreme programming phenomenon where the tester becomes a developer and starts devising unit level testing code around the core code in order to eliminate further bugs down the track.
Exploratory testing can help testers:
- understand the product
- What can they learn about the product?
- How does their early experience with the product shape their testing?
As Karen states “For testing in a regulated environment where formal test scripts are required, early access to the product allows testers to finalise test scripts.
If performance testing will be needed, early performance testing can begin with components while the code is in draft stages.”
Advantage: Early product experience helps finalize test strategies
About the Author:
Bharath has well over 10 years experience in delivering Testing service to the IT industries such as Telecommunications, Government, Transportation and Retail.
He has a proven track record in delivering and consulting in all testing aspects such as: Test Management, Test Plan and Design Test Execution of functional, Automated and Performance testing as well as conducting Quality assessments and audits.
Bharath has been part of Tescom Australia management team and contributed to the development of testing practices and Methodologies and implementing them successfully with tens of Tescom Australia clients.
|