A Software Testing Primer

The Need for Testing
Software development involves ambiguity, assumptions and flawed human communication. Each change made to a piece of software, each new piece of functionality, each attempt to fix a defect, introduces the possibility of error. With each error, the risk that the software will not fulfil its intended purpose increases.

Testing reduces that risk.
We can use QA processes to attempt to prevent defects from entering software but the only thing we can do to reduce the number of errors already present is to test it. By following a cycle of testing and rectification we can identify issues and resolve them.
Testing also helps us quantify the risk in an untried piece of software.
After modifications have been made, a piece of software can be run in a controlled environment and its behaviour observed. This provides evidence which informs the decision to move to the next phase of the project or to attempt to rectify the problem.
And finally in some (dare I say enlightened?) software development efforts, testing can actually be used to drive development. By following statistical models of software development and methods such as usability testing, software development can move from an unfocused artistic endeavour to a structured discipline.

Different Models of Software Development
The Waterfall Model
Making something can be thought of as a linear sequence of events. You start at A, you do B and then go to C and eventually end up at Z. This is extremely simplistic but it does allow you to visualise the series of events in the simplest way and it emphasises the importance of delivery with steps being taken towards a conclusion.
Below is the “Waterfall Model” which shows typical development tasks flowing into each other. Early in the history of software development it was adapted from engineering models to be a blueprint for software development.

The five steps outlined are :
• Analyse the requirements of the project and decide what it is supposed to do
• Design a solution to meet these requirements
• Implement the design into a working product
• Verify the finished product against the design (and requirements)
• Maintain the project as necessary

Download the Primer


             

Related Posts

Leave a Reply

  

rss feeds   follow on twitter   add to facebook   add to google   add to linkedin   add to stumbleupon