CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.

Slides:



Advertisements
Similar presentations
Slide 6.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
Advertisements

The “Lifecycle” of Software. Chapter 5. Alternatives to the Waterfall Model The “Waterfall” model can mislead: boundaries between phases are not always.
©Ian Sommerville 2000Software Engineering. Chapter 22Slide 1 Chapter 22 Verification and Validation.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Manage Quality
CS351 © 2003 Ray S. Babcock Software Testing What is it?
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
Testing Xiaojun Qi.
Week 7: Requirements validation Structured walkthroughs Why have walkthroughs When to have walkthroughs Who participates What procedures are helpful Thoughtless.
Slide 13.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Software Quality Assurance For Software Engineering && Architecture and Design.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Verification and Validation
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
Slide 6.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Software Inspections and Walkthroughs By. Adnan khan.
Dillon: CSE470: QUALITY ASSURANCE1 Software Qualities Maintainer User Customer Good Documentation Readable Code Good Design Low Cost Portability Increased.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Software Testing Sudipto Ghosh CS 406 Fall 99(Also used later) November 2, 1999.
6. Testing and Verification
Slide 6.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
... there is no particular reason why your friend and colleague cannot also be your sternest critic. --Jerry Weinberg --Jerry Weinberg.
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
CHAPTER 9 INSPECTIONS AS AN UP-FRONT QUALITY TECHNIQUE
CSC 395 – Software Engineering Lecture 10: Execution-based Testing –or– We can make it better than it was. Better...faster...agiler.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Inspection and Review The main objective of an Inspection or a Review is to Detect Defects. (Today -there may be some other goals or broader definition.
KUFA UNIVERSITY Department of Computer Science 06/12/2015.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Engineering Lecture 8: Quality Assurance.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Week # 4 Quality Assurance Software Quality Engineering 1.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Pradeep Konduri Niranjan Rao Julapelly.  Introduction and Overview  Verification Vs Validation  Process  Goals  Confidence  Role of V&V in different.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Software Configuration Management (SCM)
Software Verification and Validation
CSC 480 Software Engineering
Verification and Validation
Verification and Validation
Applied Software Implementation & Testing
Software Inspections and Testing
Inspection and Review The main objective of an Inspection or a Review is to detect defects. (Not for Giving Alternative Solutions) This activity and procedure.
Applied Software Project Management
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Dr. Rob Hasker SE 3800 Note 9 Reviews.
WALKTHROUGH and INSPECTION
Testing, Inspection, Walkthrough
Chapter 10: Testing and Quality Assurance
Presentation transcript:

CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug

Today’s Lecture Discusses testing in early workflows Starts to answer important questions: When and how should we do testing? Who should be responsible for performing tests? How do we know something is correct? What faith should we place in testing?

What Do We Test For Obviously, need to test for correctness What is correct? Who decides? Important to consider other issues, too Utility - is it easy to use, cost effective, & useful? Reliability - how often will it not work? Robustness - do we rely on specific environment? Performance - is it within space & time constraints?

How Do We Do This Testing? There are two basic types of testing Execution-based testing Non-execution-based testing Testing performs two important actions Verification - Was workflow completed correctly? Validation - Does product satisfies requirements? Terminology Warning: “Verify” also used for non-execution-based testing

Testing Team Very useful to have independent testing team Experts on process of testing Insure developers & analysts deliver high-quality Be involved over entire life-cycle Critical to have managerial independence Bugs, faults, and errors are part of development Testing team must be free to make decisions Arguments with your Boss are hard to win Final decisions should not be made by developer or tester

Walkthroughs Walkthrough team ideally has people Member of team performing current workflow Member of team performing next workflow Member of SQA team Often includes a client Should NOT contain manager, partner, or boss Walkthroughs must be thoroughly prepared Provide items not understood Provide items that appear to be incorrect

Walkthrough Meeting Chaired by SQA member Only interest is in finding faults Practiced in running these meetings Meeting detects any possible faults Should not last longer than 2 hours “Committee is a group that keeps minutes and loses hours” -- Milton Berle Some flagged items may be correct Cost of meeting is high, but good if faults found “A camel is a horse designed by committee” -- Unknown

Running Walkthrough Document-driven & not participant-driven Focus on determining if documents are correct Relies on knowledge brought by participants Eases transfer of responsibilities between teams Faults often found describing documents Often discover problems by talking things through Many times bugs discovered

Inspections Follows five formal steps 1. Current workflow member provides overview 2. Participants prepare by developing understanding of document and look for faults 3. Inspection led by one participant through entire document. Written report completed with 1 day 4. Document goes through rework to fix faults 5. Moderator performs follow-up checking that all faults are fixed and documentation (including reports) are updated

Inspection Team Team consists of members, including: Moderator Member of team performing current workflow Member of team performing next workflow SQA team member One person will serve as reader Leads team through the document One person will serve as recorder Produces report of all possible faults team finds

Metrics Maintained During inspection, detailed metrics kept Is each fault a minor fault or a major fault Is the fault from not meeting the specification or that actual & formal arguments do not match? Where in the project did the fault arise? How many faults were found per document/LOC? How long did it take to find a fault?

Using Metrics Can compare between products Are we getting better at a workflow? Are the value correlated with something Take actions if artifact is overly buggy Suggests design may need rethinking Consider fault statistics from next workflow Some faults may not be detected until later Important to perform quality check on quality team

Testing Results JPL found savings of $25,000 per inspection Fault counts decreased exponentially by phase Important to maintain testing independence Benefits tied to faith in testing team Testing metrics should not be used as performance evaluation Need to consider metrics scientifically One or two results is not a sufficient sample Statistics can always be bent to tell a story

Inspections vs. Walkthroughs Walkthrough Two-step, informal process Inspection Five-step, formal process Both good for finding faults early in process But rely on having reliable, complete process Requires thorough documentation be available Lastly, needs all teams to buy-in to approach

Correctness Proofs Halfway between execution-based & non- execution-based testing Examines if algorithm/code matches specification But does so by developing mathematical proof Relies on creating & understanding proof Also assumes specification is correct

Correctness Proof Begins by converting code to flowchart

Correctness Proof Add I/O specification Loop invariants Assertions Developing these can be as much art as science

Three Myths Software Engineers stink at math Relies on basic algebra; even I passed that class Costs way, WAY, WAY too much Might be worth it in some situation; use sparingly Proofs are too darn hard Nontrivial products have been successfully proven Theorem provers can help automate process Are specification, compiler, & tools correct? Oops, this is real concern

For Next Lecture Wednesday’s lecture discusses execution testing Book provides good overview of how this is done, who should do the testing Additional reading presents JUnit testing tool Before next lecture Spend a few minutes writing a simple class and then playing with JUnit to test it