testing & software quality seminar on software quality 13.5.2005 karipekka kaunisto

27
Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Post on 20-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Testing & Software Quality

Seminar on software quality13.5.2005

Karipekka Kaunisto

Page 2: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Contents

Role of testing in quality assurance Challenges of software testing What is test automation? Test automation: Possible benefits Common pitfalls of test automation Conclusions References

Page 3: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Role of testing in quality assurance

Quality controlling Final product meets it’s requirements Find potential errors and flaws Enforce standards and good design

principles Regression testing

Improving quality Preventive testing Find cause of an error not just symtoms

Page 4: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Role of testing...

Testing as supportive action Data collected during testing can be

used to develop various quality metrics These can be used to some extend when

evaluating system quality and maturity However, numbers alone don’t solely

assure good quality!

Page 5: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Examples of poor testing A major U.S. retailer was hit with a large govermental

fine in October of 2003 due to web site errors that enabled customers to view one anothers' online orders

In early 1999 a major computer game company recalled all copies of a popular new product due to software problems. The company made a public apology for releasing a product before it was ready

A retail store chain filed suit in August of 1997 against a transaction processing system vendor (not a credit card company) due to the software's inability to handle credit cards with year 2000 expiration dates

Page 6: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Challenges of software testing

Complexity of testing Even in a seemingly simple program

there can be potentially infinite number of possible input and output permutations to test

What about large software systems with complex control logic and numerous dependencies on other modules and entire systems?

Page 7: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Complexity of testing => It is not feasible to get even close to

testing all combinations and thus finding all possible errors!

Tester needs to carefully create test set in a way that minimises risk of fatal errors in final product

Related problem: How do you know when to stop testing?

Acceptable risk level

Page 8: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Managing large test sets

Various general techniques have been introduced for managing test sets Partitioning to smaller subsets Testing special cases (boundaries,

special values etc.) Testing most important functions only

(focus testing) Invalid inputs and data Program flow and code coverage testing

Page 9: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Are we ready to ship? Even with all the techniques available it will

require tester’s personal expertise and domain knowledge to create test plan and make the final decision to approve the product

Business issues may also affect on this: Risk of errors vs. risk of delay

Plan and test effort correlate quite well to quality controlling role of testing

Page 10: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Other challenges Testing activities require significant amount

of time and resources of the project => Delays, hasty testing

Testing is often regarded as dull, monotonous and laborous part of software development => Poor effort

System architecture is often quite complex, which require special testing effort => Reliability suffers, all tests not even possible manually

Page 11: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

What is test Automation? ”The management and performance of

test activities to include the development and execution of test scripts so as to verify test requirements, using an automated test tool”. – Dustin, Rashka & Paul

”Testing supported by software tool”. – Faught, Bach

Page 12: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Automation in practice Tester describes the test cases for tool by

using special scripting language designed by tool developers

Some tools may also include graphical interface and recording options but in practise scripting has to be used

Script should also specify how tool is supposed to interpret the correct results of any given test case

Tool then takes care of executing specified tests and examining the results

Page 13: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Automation in practise (cont.) Result validation includes text outputs,

elapsed time, screen captures etc. Can be very challenging part to do

automatically and may require some human intervention in some cases!

Evaluation results are presented in clear test reports that can be used to examine results of test round

Produced reports can also be used to gather data for various quality metrics

Page 14: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Areas of test automation Automation suits mainly on testing

that requires repeated effort of similar tests cases Regression testing Portability testing Performance and stress testing Configuration testing Smoke testing ...

Page 15: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Possible benefits

More reliable system Improved requirements definition Improved performance (load & stress)

testing Better co-operation with developers Quality metrics & Test optimisation Enchanced system development life

cycle

Page 16: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Benefits (2)

More effective testing process Improved effort in various sub-areas like

regression, smoke, configuration and multi-platform compatibility testing

Ability to reproduce errors Dull routine tests can be executed

without human intervention ”After-hours testing”

Page 17: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

More effective... Execution of tests that are not possible

manually Better focus on more advanced testing

issues Enchanced business expertise

Page 18: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Benefits (3)

Reduced test effort and schedule Initial costs of automation are usually

very high Payback comes later on (possibly quite

much later) when team has adopted the process and use of tools

Page 19: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Pitfalls of test automation

Automatic test planning and design There are no tools that can generate

these automatically! Requires human expertise and domain

knowledge Tool just does what it is scripted to do

and nothing else

Page 20: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Pitfalls (2)

Immeadiate cost and time savings On the contrary introduction of

automation and new tools will increase the need of resources!

Automation process must be planned, test architecture created, tools evaluated, people trained, scripts programmed...

= Lot’s of work

Page 21: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Immediate... Potential savings will be archieved

(much) later on when organisation has ’learned’ the process and created needed infrastructure for it

If automation is introduced poorly, savings will never be gained at all!

In the worst case automation can just mess things up

Page 22: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Pitfalls (3)

One tool does it all Wide array of operating systems,

hardware and programming languages Very different systems and architectures

are often used Testing requirements differ depending

on system and project Result analysis differ (graphical, text,

time etc.)

Page 23: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Pitfalls (4)

Automation requires no technical skill Tools rely solely on scripts when

executing tests Maintainable and reusable script building

requires good programming skills and knowledge of the tool

Testers may have to be able to use several different tools with different scripting technologies!

Page 24: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Pitfalls (5)

100% test automation Even if automation succeeds it cannot

completely replace manual testing Some tests must be conducted manually

and others require at least some human intervention

Automation is really useful only with test cases that are executed repeatedly over time (regression)

Page 25: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Other related tools

Code analyzers Coverage analyzers Memory analyzers (purifiers) Web test tools Test management tools

Page 26: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

Conclusions Testing has significant role in software

quality assurance Automation, when implemented properly

can further improve test effort and thus lead to improved quality

However many automation attempts have failed because of unrealistic expectations and inproper introduction of automation tools

Page 27: Testing & Software Quality Seminar on software quality 13.5.2005 Karipekka Kaunisto

References Dustin E., Rashka J., Paul J.: Automated

Software Testing: Introduction, Management and Performance. Adison Wesley, 1999

Craig R. and Jaskiel S.: Systematic Software Testing, Artech House Publishing, 2002

Pettichord Bret, Presentations and Publications. http://www.io.com/~wazmo/papers/