The Importance of Software Testing : The Importance of Software Testing A Necessary Evil : A Necessary Evil All project managers know that they must do some testing
The basic questions are;
When and by when?
All difficult questions. Why do we test? : Why do we test? Provide confidence in the system
Identify areas of weakness
Establish the degree of quality
Establish the extent that the requirements have been met, i.e. what the users asked for is what they got not what someone else though they wanted
To provide an understanding of the overall system
To prove it is both usable and operable
To provide sufficient information to allow an objective decision on applicability to deploy Another view – cynical? : Another view – cynical? To use up spare budget
To provide a good excuse why the project is late
To provide jobs for people who can’t code
To make the developers look good
To provide the project manager with some contingency in the plan and can be cut if if push come to shove! First up – How much? : First up – How much? How good does the product need to be?
How do we measure it?
How do we make a decision?
Are there any legal or compliance issues?
What industry are you in?
What will it cost?
Time and resource [human and machine]
Are we capable?
We know what we need to do but can we do it? How do we decide? : How do we decide? What matters to our users?
What does the system do?
Test Techniques - Coverage
Dynamic Secondly – What sort? : Secondly – What sort? Unit
Operability ………plus about another
20 ‘abilities’ ? Do we need tools to help? : Do we need tools to help? Automated test tools are often seen as a silver bullet
Some tests cannot be successfully executed or analysed without them
80% of test tools end up as shelfware through:
Banishment Thirdly – By whom? : Thirdly – By whom? Users: those who will ultimately use the system
Customers: those who define the system – are they the same as the users?
Developers Are we capable of testing? : Are we capable of testing? Is an experienced tester better than an experienced user at finding faults?
How can testers help themselves and users?
Working with the users to understand their systems
Providing testing skills transfer
Attending testing industry conferences
Attaining industry recognised software testing qualifications Lastly – When? : Lastly – When? Once the code is complete?
As soon as the architecture is defined?
Once the system delivery is complete?
Once the business requirements have been defined?
As soon as the project is given the go-ahead? Slide 12: Test then Code Then test some more…………………… By when? : Project deadline driven by:
Money By when? Summary : Summary Testing is an integral part of the system development function, not an afterthought:
Testing starts with the requirements not the code
Testing is a static and dynamic activity
Prevention is better than cure
The sooner you find the fault the cheaper it is to fix
Create re-usable ‘testware’
Process first then tools
Not everyone can test well, use professional testers
Planned testing in a controlled environment provides objective metrics
To gain a Return on Investment you must first Invest