Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.

Slides:



Advertisements
Similar presentations
IPOG: A General Strategy for T-Way Software Testing
Advertisements

November 2005J. B. Wordsworth: J5DAMQVT1 Design and Method Quality, Verification, and Testing.
Today’s Agenda  HW #1 Due  Quick Review  Finish Input Space Partitioning  Combinatorial Testing Software Testing and Maintenance 1.
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
Outline Types of errors Component Testing Testing Strategy
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Introduction to Software Testing
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Software Quality Assurance & Testing Mistake in coding is called error, Error found by tester is called defect, Defect accepted by development team then.
Extreme Programming Software Development Written by Sanjay Kumar.
Dillon: CSE470: QUALITY ASSURANCE1 Software Qualities Maintainer User Customer Good Documentation Readable Code Good Design Low Cost Portability Increased.
CS4311 Spring 2011 Verification & Validation Dr. Guoqiang Hu Department of Computer Science UTEP.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Instructor: Peter Clarke
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Foundations of Software Testing Chapter 1: Preliminaries Last update: September 3, 2007 These slides are copyrighted. They are for use with the Foundations.
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
637 – Introduction (Ch 1) Introduction to Software Testing Chapter 1 Jeff Offutt Information & Software Engineering SWE 437 Software Testing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Xusheng Xiao North Carolina State University CSC 720 Project Presentation 1.
Introduction to Software Testing Paul Ammann & Jeff Offutt Updated 24-August 2010.
Introduction to Software Testing. OUTLINE Introduction to Software Testing (Ch 1) 2 1.Spectacular Software Failures 2.Why Test? 3.What Do We Do When We.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
LOGO TESTING Team 8: 1.Nguyễn Hoàng Khánh 2.Dương Quốc Việt 3.Trang Thế Vinh.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
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.
Dynamic Testing.
Workshop on Integrating Software Testing into Programming Courses (WISTPC14:2) Friday July 18, 2014 Introduction to Software Testing.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
Week # 4 Quality Assurance Software Quality Engineering 1.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
CS223: Software Engineering Lecture 25: Software Testing.
Testing Integral part of the software development process.
ISQB Software Testing Section Meeting 10 Dec 2012.
Introduction to Software Testing Part1 Summary & Terms
Testing Tutorial 7.
Software Testing.
Software Testing Introduction CS 4501 / 6501 Software Testing
Test Automation CS 4501 / 6501 Software Testing
Verification and Testing
Verification and Validation Overview
Faults, Errors, Failures CS 4501 / 6501 Software Testing
Types of Testing Visit to more Learning Resources.
Software Testing (Lecture 11-a)
Test Automation CS 4501 / 6501 Software Testing
IPOG: A General Strategy for T-Way Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presentation transcript:

Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1

Software Testing and Maintenance 2 Outline  Introduction  Basic Concepts  The Testing Process  Types of Testing  Testing Philosophy  Summary

Software Testing and Maintenance 3 Software Engineering  Software has become pervasive in modern society  Directly contributes to quality of life  Malfunctions cost billions of dollars every year, and have severe consequences in a safe-critical environment  How to build quality software, especially for large- scale development?  Requirements, design, coding, testing, maintenance, configuration, documentation, deployment, and etc.

Software Testing and Maintenance 4 Software Testing  Steve Ballmer, 2006: “Let's acknowledge a sad truth about software: any code of significant scope and power will have bugs in it.”  A dynamic approach to detecting software faults  Alternatively, static analysis can be performed, which is however often intractable  Involves sampling the input space, running the test object, and observing the runtime behavior  The single most widely used approach in practice  Labor intensive, and often consumes more than 50% of development cost

Software Testing and Maintenance 5 Outline  Introduction  Basic Concepts  The Testing Process  Types of Testing  Testing Philosophy  Summary

Software Testing and Maintenance 6 Fault, Error & Failure (1)  Fault : A static defect in the software  Incorrect instructions, missing instructions, extra instructions  Error : An incorrect internal state that is the manifestation of some fault  Failure : External, incorrect behavior with respect to the requirements or other description of the expected behavior

Software Testing and Maintenance 7 Fault, Error, and Failure (2) public static int numZero (int[] x) { // effects: if x == null throw NullPointerException // else return the number of occurrences of 0 in x int count = 0; for (int i = 1; i < x.length; i ++) { if (x[i] == 0) { count ++; } return count; }

Software Testing and Maintenance 8 Fault, Error, and Failure (3)  The state of numZero consists of the values of the variables x, count, i, and the program counter.  Consider what happens with numZero ([2, 7, 0]) and numZero ([0, 7, 2])?

Software Testing and Maintenance 9 Fault & Failure Model  Three conditions must be satisfied for a failure to be observed  Reachability : The location or locations in the program that contain the fault must be reached  Infection : The state of the program must be incorrect  Propagation : The infected state must propagate to cause some output of the program to be incorrect

Software Testing and Maintenance 10 Static & Dynamic Testing  Static Testing: Testing without executing the program.  Code walkthrough & inspection, and various static analysis techniques.  Dynamic Testing: Testing by executing the program with real inputs  Static information can often be used to make dynamic testing more efficient.

Software Testing and Maintenance 11 Test Case  Test data: data values to be input to the program under test  Expected result: the outcome expected to be produced by the program under test

Software Testing and Maintenance 12 Testing & Debugging  Testing: Finding inputs that cause the software to fail  Debugging: The process of finding a fault given a failure  In practice, testing & debugging are often performed in a cyclic fashion

Software Testing and Maintenance 13 Verification & Validation  Verification: Ensure compliance of a software product with its design  Validation: Ensure compliance of a software product with intended usage  Question: Which task, validation or verification, is more difficult to perform?

Software Testing and Maintenance 14 Quality Attributes  Static attributes refer to the actual code and related documentation  Well-structured, maintainable, and testable code  Correct and complete documentation  Dynamic attributes refer to the behavior of the application while in use  Reliability, correctness, completeness, consistency, usability, and performance

Software Testing and Maintenance 15 Testability  The degree to which a system or component facilitates the establishment of test criteria and the performance of tests to determine whether those criteria have been met  The more complex an application, the lower the testability, i.e., the more effort required to test it  Design for testability: Software should be designed in a way such that it can be easily tested

Software Testing and Maintenance 16 Outline  Introduction  Basic Concepts  The Testing Process  Types of Testing  Testing Philosophy  Summary

Software Testing and Maintenance 17 The Process  Preparing a test plan  Constructing test data  Executing the program  Specifying program behavior  Evaluating program behavior  Construction of automated oracles

Software Testing and Maintenance 18 Test & Debug Cycle Construct test input Execute program Is behavior as expected? Testing to be terminated? Stop Operational profile Test plan Specification Cause of error to be determined now? Debug the program Error to be fixed now? File pending error report Fix Error Input domain input data Test case behavior yes no yes use no

Software Testing and Maintenance 19 An Example Program sort:  Given a sequence of integers, this program sorts the integers in either ascending or descending order.  The order is determined by an input request character “A” for ascending or “D” for descending.

Software Testing and Maintenance 20 Test plan 1. Execute the program on at least two input sequences, one with “A” and the other with “D” as request characters 2. Execute the program on an empty input sequence 3. Test the program for robustness against invalid inputs such as “R” typed in as the request character 4. All failures of the test program should be reported

Software Testing and Maintenance 21 Test Data  Test case 1:  Test data:  Expected output:  Test case 2:  Test data:  Expected output:  Test case 3:  Test data:  Expected output: No input to be sorted in ascending order.  Test case 4:  Test data:  Expected output: No input to be sorted in ascending order.  Test case 5:  Test data:  Expected output: Invalid request character  Test case 6:  Test data:  Expected output: Invalid number

Software Testing and Maintenance 22 Test Harness sort Test pool test_setup get_input check_input call_sortcheck_output report_failure print_sequence request_char num_item in_numbers sorted_sequence Test Harness

Software Testing and Maintenance 23 Test Oracle Oracle Does the observed behavior match the expected behavior? program under test Observed behavior Input

Software Testing and Maintenance 24 Outline  Introduction  Basic Concepts  The Testing Process  Types of Testing  Testing Philosophy  Summary

Software Testing and Maintenance 25 Classifier C1: Source of Test Generation  Black-box testing: Tests are generated from informally or formally specified requirements  Does not require access to source code  Boundary-value analysis, equivalence partitioning, random testing, pairwise testing  White-box testing: Tests are generated from source code.  Must have access to source code  Structural testing, path testing, data flow testing

Software Testing and Maintenance 26 Classifier C2: Life Cycle Phases PHASETECHNIQUE CodingUnit Testing IntegrationIntegration Testing System IntegrationSystem Testing MaintenanceRegression Testing Postsystem, pre-releaseBeta Testing

Software Testing and Maintenance 27 Classifier C3: Goal Directed Testing GOALTECHNIQUE FeaturesFunctional Testing SecuritySecurity Testing Invalid inputsRobustness Testing VulnerabilitiesPenetration Testing PerformancePerformance Testing CompatibilityCompatibility Testing

Software Testing and Maintenance 28 Classifier C4: Artifact Under Test ARTIFACTTECHNIQUE OO SoftwareOO Testing Web applicationsWeb Testing Real-Time softwareReal-time testing Concurrent softwareConcurrency testing Database applicationsDatabase testing

Software Testing and Maintenance 29 Outline  Introduction  Basic Concepts  The Testing Process  Types of Testing  Testing Philosophy  Summary

Software Testing and Maintenance 30 Philosophy  Level 0: Testing is the same as debugging.  Level 1: Testing aims to show correctness  Level 2: Testing aims to show the program under test doesn't work  Level 3: Testing aims to reduce the risk of using the software  Level 4: Testing is a mental discipline that helps develop higher quality software

Software Testing and Maintenance 31 Outline  Introduction  Basic Concepts  The Testing Process  Types of Testing  Testing Philosophy  Summary

Software Testing and Maintenance 32 Summary  Quality is the central concern of software engineering.  Testing is the single most widely used approach to ensuring software quality.  Testing consists of test generation, test execution, and test evaluation.  Testing can show the presence of failures, but not their absence.