P. 1
Software Tesing

Software Tesing

Ratings: (0)|Views: 13 |Likes:
Published by Xanthopus

More info:

Published by: Xanthopus on Aug 23, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/23/2011

pdf

text

original

 
A Software Testing Primer
An Introduction to Software Testingby Nick Jenkins
©Nick Jenkins, 2008
http://www.nickjenkins.netThis work is licensed under the Creative Commons (Attribution-NonCommercial-ShareAlike)2.5 License.. To view a copy of this license, visit [http://creativecommons.org/licenses/by-nc-sa/2.5/]; or, (b) send a letter to “Creative Commons, 543 Howard Street, 5th Floor,SanFrancisco, California, 94105, USA”.In summary - you are free: to copy, distribute, display, and perform the work and to makederivative works. You must attribute the work by directly mentioning the author's name. Youmay not use this work for commercial purposes and if you alter, transform, or build upon thiswork, you may distribute the resulting work only under a license identical to this one. For anyreuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair useand other rights are in no way affected by the above. Please see the license for full details.
 
Table of Contents
INTRODUCTION.............................................................................................................3The Need for Testing......................................................................................................3Different Models of Software Development...............................................................4Other Models of Software Development....................................................................5Testing in the Software Development Life Cycle......................................................7CONCEPTS OF TESTING...............................................................................................8The Testing Mindset .......................................................................................................8Test Early, Test Often......................................................................................................8Regression vs. Retesting.................................................................................................9White-Box vs Black-Box testing .................................................................................9Verification and Validation...........................................................................................10FUNCTIONAL TESTING..............................................................................................11Alpha and Beta Testing.................................................................................................11White Box testing .........................................................................................................12Unit, Integration and System testing........................................................................13Acceptance Testing........................................................................................................14Test Automation............................................................................................................15NON-FUNCTIONAL TESTING...................................................................................17Testing the design..........................................................................................................17Usability Testing............................................................................................................18Performance Testing.....................................................................................................19TEST PLANNING..........................................................................................................20The Purpose of Test Planning.....................................................................................20Risk Based Testing.........................................................................................................20Software in Many Dimensions.....................................................................................21Summary..........................................................................................................................24TEST PREPARATION....................................................................................................25Test Scripting..................................................................................................................25Test Cases........................................................................................................................26TEST EXECUTION........................................................................................................28Tracking Progress..........................................................................................................28Adjusting the plan..........................................................................................................28Defect Management......................................................................................................30TEST REPORTING AND METRICS............................................................................34Software Defect Reports..............................................................................................34Root Cause Analysis......................................................................................................35Metrics.............................................................................................................................36OTHER STUFF................................................................................................................39Release Control .............................................................................................................39PURE THEORY...............................................................................................................41Complexity in Software................................................................................................41GLOSSARY .....................................................................................................................42
 
Introduction
The Need for Testing
My favourite quote on software, from Bruce Sterling's “The Hacker Crackdown” – 
The stuff we call "software" is not like anything that human society is used to thinking about.Software is something like a machine, and something like mathematics, and something like language,and something like thought, and art, and information.... but software is not in fact any of those otherthings. The protean quality of software is one of the great sources of its fascination. It also makessoftware very powerful, very subtle, very unpredictable, and very risky.Some software is bad and buggy. Some is "robust," even "bulletproof." The best software is thatwhich has been tested by thousands of users under thousands of different conditions, over years. Itis then known as "stable." This does NOT mean that the software is now flawless, free of bugs. Itgenerally means that there are plenty of bugs in it, but the bugs are well-identified and fairly wellunderstood.There is simply no way to assure that software is free of flaws. Though software is mathematical innature, it cannot by "proven" like a mathematical theorem; software is more like language, withinherent ambiguities, with different definitions, different assumptions, different levels of meaning thatcan conflict.
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 adefect, introduces the possibility of error. With each error, the risk that the software will not fulfilits intended purpose increases.Testing reduces that risk.We can use QA processes to attempt to prevent defects from entering software but the only thingwe 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 environmentand its behaviour observed. This provides evidence which informs the decision to move to thenext 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 beused to drive development. By following statistical models of software development and methodssuch as usability testing, software development can move from an unfocused artistic endeavour toa structured discipline.
This primer will be unashamedly pro-testing. I am, and have been for ten years, a tester. As a tester Ihave suffered endless indignities at the hands of project managers and development teams thatresulted in enormous amounts of stress for myself and my teams.There are plenty of books written about and for project managers and software developers.This is probably not one of them.
3

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->