Software Quality Assurance. David Janzen

Similar documents
1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

Aerospace Software Engineering

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

It is primarily checking of the code and/or manually reviewing the code or document to find errors This type of testing can be used by the developer

Functional Testing (Black Box Testing)

Chapter 10. Testing and Quality Assurance

Software Testing. Software Testing

CSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Unit Testing. Emina Torlak

Topics in Software Testing

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Facts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development

Quality Assurance = Testing? SOFTWARE QUALITY ASSURANCE. Meaning of Quality. How would you define software quality? Common Measures.

Software Testing Interview Question and Answer

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks

[IT6004-SOFTWARE TESTING] UNIT 2

Software Testing. 1. Testing is the process of demonstrating that errors are not present.

INTRODUCTION TO SOFTWARE ENGINEERING

Manuel Oriol, CHCRC-C, Software Testing ABB

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

MONIKA HEINER.

Software Engineering Fall 2014

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD

Software Testing. Lecturer: Sebastian Coope Ashton Building, Room G.18

Modern Methods in Software Engineering. Testing.

Part I: Preliminaries 24

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering

Chapter 9 Quality and Change Management

Verification and Validation

Pearson Education 2007 Chapter 9 (RASD 3/e)

The Importance of Test

10. Software Testing Fundamental Concepts

Darshan Institute of Engineering & Technology for Diploma Studies

MTAT : Software Testing

Part 5. Verification and Validation

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation

Software technology 7. Testing (2) BSc Course Dr. Katalin Balla

Sample Exam. Certified Tester Foundation Level

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

XVIII. Software Testing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Quality Assurance in Software Development

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Chapter 9. Software Testing

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

Software Testing CS 408

Software Quality Assurance (SQA) Software Quality Assurance

TECNIA INSTITUTE OF ADVANCED STUDIES

Software Testing. Testing: Our Experiences

Second assignment came out Monday evening. Find defects in Hnefetafl rules written by your classmates. Topic: Code Inspection and Testing

An Introduction to Systematic Software Testing. Robert France CSU

CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING

Advanced Software Engineering: Software Testing

CS 520 Theory and Practice of Software Engineering Fall 2018

Software Testing. Massimo Felici IF

Lecture 15 Software Testing

Sample Exam Syllabus

Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not.

White Box Testing III

340 Review Fall Midterm 1 Review

Testing Process and Methods. CS 490MT/5555, Spring 2017, Yongjie Zheng

Testing Theory. Agenda - What will you learn today? A Software Life-cycle Model Which part will we talk about today? Theory Lecture Plan

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Testing! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!

SOFTWARE ENGINEERING SOFTWARE VERIFICATION AND VALIDATION. Saulius Ragaišis.

Ingegneria del Software Corso di Laurea in Informatica per il Management

SE420 Software Quality Assurance

Test design techniques

Write perfect C code to solve the three problems below.

Computational Systems COMP1209

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Introduction to Dynamic Analysis

Verification and Validation

MTAT : Software Testing

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques

Sample Exam ISTQB Advanced Test Analyst Answer Rationale. Prepared By

Program Verification! Goals of this Lecture! Words from the Wise! Testing!

Certified Tester Foundation Level(CTFL)

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1

Tool Selection and Implementation

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages

Terminology. There are many different types of errors and different ways how we can deal with them.

CS 424 Software Quality Assurance & Testing LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I

Darshan Institute of Engineering & Technology Unit : 9

Administrivia. ECE/CS 5780/6780: Embedded System Design. Acknowledgements. What is verification?

Examination Questions Time allowed: 1 hour 15 minutes

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Sample Question Paper. Software Testing (ETIT 414)

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing

Module 1 : Fundamentals of Testing. Section 1: Manual Testing

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Software Testing. An Overview

Principles of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems)

(From Glenford Myers: The Art of Software Testing)

Testing & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010

Transcription:

Software Quality Assurance David Janzen

What is quality? Crosby: Conformance to requirements Issues: who establishes requirements? implicit requirements Juran: Fitness for intended use Issues: Who defines fitness? Novice users, experts, engineers? IEEE: The degree to which the software possesses a desired combination of attributes Possible attributes: usability, features, performance, 0 defects, low cost, elegant code,

Quality Evolution 1 Quality Control Measure quality after system is built Typical practices: Testing, inspections, metrics at end of construction E.g. # requirements met, # tests passed, coupling Problems: Have we tested enough? Defect fixes inject new defects Result in adversarial relationships

Quality Evolution 2 Quality Assurance IEEE: A planned and systematic pattern of all actions necessary to provide adequate confidence that the product conforms to established technical requirements Typical practices: Inspections, reviews, audits, metrics, communication throughout development process SQA Plan (see examples on web) Problems: QA skills are rare Separate QA team: communication issues, disputes Commitment to QA wanes under schedule pressure

Quality Evolution 3 Quality Engineering Build quality as part of the SE process Typical practices: Everyone considers quality part of their job Finding defects is good QA team coaches/mentors, not evaluators Fact-based decision-making based on metrics Problems: Process and cultural change

Quality is Free Crosby: Quality is free. But it is not a gift. Prevent defects rather than remove them Zero-Defect is the attitude of defect prevention. It means, 'do the job right the first time.

Verification and Validation Validation: is the system correct with respect to some specification? Verification: did we build the right system? V&V differences don t matter V&V generally refers to any activity that attempts to ensure that the software will function as required

V&V Activities Reviews, Inspections, and Walkthroughs Testing Formal and informal methods Dynamic (run tests) and static (reviews, formal verification) Levels: Unit, Integration, System, Regression Techniques: Functional (black-box), Structural (white/clear-box), Stress,

Testing Glossary Error: mistake, bug Fault: result of an error, defect Failure: when a fault executes Incident: symptom associated with a failure Test Case: set of inputs and expected output Clean Tests: show something works Dirty Tests: show something doesn t work

Testing A process of executing a program with the intent of finding errors Objective: to find defects Can detect the presence of defects, but not their absence

Testing Approaches Functional Testing Boundary Value Analysis Equivalence Class Decision Tables Cause and Effect Structural Testing (white/clear-box) Program graphs Define-use paths Program slicing

Boundary Value Analysis Think of a program as a function f(x 1, x 2 ) x 1 and x 2 have some boundaries a x 1 b (range of legitimate values) c x 2 d (a,b,c,d are boundary values) d c x 2 Legitimate input values a b x 1

Boundary Value Analysis Premise: Bugs tend to lurk around the edges Single fault assumption Hold all variables but one constant Vary one to min, min+1, nominal, max-1, max n variables yields 4n + 1 test cases d c x 2 a b x 1

BVA Variation Also test beyond boundaries min-1, max+1 n variables yields 6n + 1 test cases d c x 2 a b x 1

Worst-case BVA Reject single fault assumption Allow multiple variables to vary n variables yields 5 n test cases d c x 2 a b x 1

Equivalence Class Testing Partition input/output data into mutually disjoint sets where any number in the group is as good as another Little league ages (8-12) {(7 and lower) (8-12) (13 and higher)} Months for number of days calculations {(February)(30-day months)(31-day months)} Select test cases that involve values from all partitions

Identify test cases that accomplish Boundary Value Analysis testing (normal, variation, and worst-case) Equivalence Class testing 100% line, branch, and condition coverage public boolean isisosceles(int a, int b, int c) { } if ((a < 1) (b < 1) (c < 1)) return false; if ((a == b) (a == c) (b == c)) return true; else return false;

See reading Decision Tables

Path Testing Related to cyclomatic complexity Think of a module as a directed graph where nodes are statements or conditions Independent basis paths Any path through the program that introduces at least a new set of statements or a new condition Write test cases that correspond to paths

Program Slicing A form of data-flow testing A slice is the subset of a program that relates to a particular location Collect only code that touches variables used in computation at desired location Simplifies testing Can be done statically

Mutation Testing Also known as fault seeding Insert faults to see if test cases catch them Jester is a Java tool to do this

Test Adequacy How do we know when we are done testing? We don t When defect discovery rate is reasonably low When test coverage is reasonably high When defects found meets defects predicted Size predictors (x defects per LOC expected) Capture-Mark-Recapture (see next slide) Bayesian Belief Networks

Capture-Mark-Recapture Two independent test teams Team A detected N A defects Team B detected N B defects N C represents defects found by both teams Estimate number of undiscovered defects (N A * N B )/ N C (N A + N B - N C )