Software Verification and Validation. Objectives n Testing allegiance to customer not development team n Test ALL documents n Intent: Find Defects  Good.

Slides:



Advertisements
Similar presentations
Unit-V testing strategies and tactics.
Advertisements

Testing Coverage Test case
Lecture 8: Testing, Verification and Validation
Verification and Validation
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Software Engineering-II Sir zubair sajid. What’s the difference? Verification – Are you building the product right? – Software must conform to its specification.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Software Testing.
CHAPTER 18 SOFTWARE TESTING STRATEGIES
Illinois Institute of Technology
Testing an individual module
Outline Types of errors Component Testing Testing Strategy
OHT 9.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 9.3 Software Testing Strategies.
Software Testing & Strategies
Software Engineering Lecture 13 Software Testing Strategies 1.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Verification and Validation CIS 376 Bruce R. Maxim UM-Dearborn.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
System/Software Testing
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
1 CHAPTER 17 SOFTWARE TESTING STRATEGIES. December 28, 1997 R. A. Volz -- Assistance - Nirmal Patil 2 TOPICS u A strategic approach to software testing.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Testing.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
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.
Software Reviews & testing Software Reviews & testing An Overview.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Testing Testing Techniques to Design Tests. Testing:Example Problem: Find a mode and its frequency given an ordered list (array) of with one or more integer.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
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.
Software Engineering Saeed Akhtar The University of Lahore.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
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.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
A Review of Software Testing - P. David Coward
Software Testing Strategies for building test group
Software Testing.
Group mambers: Maira Naseer (BCS ).
Software Testing.
Chapter 9, Testing.
Software Testing Techniques
Chapter 13 & 14 Software Testing Strategies and Techniques
Lecture 09:Software Testing
Verification and Validation Unit Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Chapter 10 – 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.
Software Testing “If you can’t test it, you can’t design it”
Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Software Verification and Validation

Objectives n Testing allegiance to customer not development team n Test ALL documents n Intent: Find Defects  Good test = test has high probability of finding an error  Successful test = test that uncovers an error n Prevent defect migration (apply early in life- cycle) n Develop and Use Test Tools n Trained, skilled people in testing

People n Creatively destructive n Hunt for errors (not people who create errors) n Trained for testing n 25% of development time spent on testing, but teachers spend 5% teaching it

Software Verification and Validation Verification – Are we building the product right?  Set of tasks that ensure SW correctly implements a specific function Validation – Are we building the right product?  Different set of tasks that ensure SW built is traceable to customer requirements

Methods for Verification Formal ProofInspectionsWalkthroughBuddyCheck Formal InformalVery informal PresenterNONENot authorAnyoneNone # peopleTeam3-6Larger #s1 or 2 PreparationYes PresenterNONE Data/reportYes…a proofyes?No AdvantagesVery effectiveEffectiveFamiliarizes Many Inexpensive disadvantagesRequires trained mathematicians Short term costFewer errors found

Verfication: Correctness Proofs n Testing uncovers errors, cannot prove program correctness n Manual correctness proofs  Mathematical induction and predicate calculus  Feasible only on small programs  Proofs can contain errors n Automated Correctness proofs  MacroCompiler produces symbolic representation of SW  Predicate calculus and AI theory  Limited to types of applications

Strategies and Techniques for Validation n Well-defined activities  Low-level: unit testing, integration test  High-level: usability, functional test, system test, acceptance test  Regression testing – test unchanged code AGAIN n Testware n Black box – derived from requirements and functional specs/no knowledge of structure or code n White box – based on internal code

Test Information Flow Eval Testing Reliability Debug SWConfig (specs, code) Test results Test Config (plan,cases) expected results errors Expected results corrections Predicted reliability

TESTING STRATEGIES

Software Testing Steps

Unit Testing n Evaluate  Module interface # of input parms = args, match, order, input-only args altered?, global variable definitions consistent, constraints passed (ex. maxsize of array)  Logical data structure Improper or inconsistent declaration, erroneous initialization, incorrect variable names, inconsistent data types, underflow, overflow, address exceptions, global data  File Structure File attributes correct, OPEN statements correct, format spec matches I/O statement, buffer size=record size, files opened before use, EOF handled, I/O errors handled, textual errors in output  White box and Coverage  Most common errors (computations) Arithmetic precedence, mixed mode ops, incorrect initialization, precision inaccuracy, symbolic rep of expression

More Unit Testing  Comparisons Of different data types, logical operators or precedence NOT, expectation of equality when precision error, improper or non- existent loop termination  Antibugging Cleanly terminate processing ore reroute when error occurs (incorporated, but not usually tested)  Error Handling Intelligible description, provide enough info, error noted = error encountered, error handling BEFORE system intervention

Integration Testing n Data can be lost across interface n One module can have an inadvertent effect on another n Accumulating imprecision n Global variables

Testing at Different Levels Bottom-up Integration n Uses Drivers at many different levels n Disadv:interface problems appear later in process Top-down Integration n Uses stubs n Test main logic first, add modules, retest n Disadv: planned lower- levels may be impossible to write Still need entire package validated

Top-down Approach

Bottom-up Approach

Validation Testing n Uses black box tests to demonstrate conformity to requirements n Deviations can rarely be fixed prior to scheduled completion n Configuration review of all deliverables for support of maintenance n Alpha – at developer’s site by customer n Beta – at customer’s site -> report back to developer

System Testing Incorporated into larger computer-based system n Recovery tests within time – cause system to fail and verify recovery performed n Security – testing plays role of person who breaks in, attacks system, penetrates database n Stress tests – abnormal frequency, volume, quantities n Performance tests – timings/resource utilizations

TESTING TECHNIQUES

Black Box Testing n Interface Testing  Unit interfaces and I/O interfaces n Equivalence Partitioning  Input class: generate 1 test point for each input class  Output class – generate 1 test point that gives result in each output class  Subdivide into subclasses (middle of range and 2 extremes)  Error Handling Routines/Exception output conditions (input beyond accepted range) n Boundary value analysis  The boundaries of a range n Functional Testing  functions w/I certain math classes can be distinguished by their values on a small # of points  F(x) = y, if x > 0; y-1, if x <= 0  Functions of more than one variable n Random inputs n Cause-effect graphing testing n Comparison testing

White Box Testing n Based on program structure n Coverage metrics for thoroughness  Statement coverage  Branch coverage (each T/F)  Path coverage (every combination of T/Fs) Impractical – too many paths Eliminate infeasible paths If y < 0 then x = y –1 else x = y+1; if x > 0 then … then-then infeasible Missing paths (“special cases”) – can involve 1 single input data point (if y = 0)

More…Path coverage Coincidental correctness Read x; y = x + 2; vs. y = x * 2; Write y; Can’t distinguish if input is 2 => 1 point per path is insufficient

Paths Loop <= possible paths At 1 task/msec = 3170 years

More White Box Testing n Data Flow Coverage n Mutation Analysis  Create mutant programs  See if mutant programs give identical output for each test; If yes, mutant is live If no, mutant is killed  Display set of live mutants, if all killed, confidence in Test  Examples: Replace 1 constant or variable with another Replace one arithmetic operator with another Similarly, relational and logical operators Delete a statement Increment change

Tools n Static Analyzers  No actual inputs, compilers, check syntax, unreachable code, undefined references n Code Auditors n Assertion Processors n Test File/Data Generation n Test Verifier n Test Harnesses n Output Comparators n Simulators n Data Flow Analyzers n Symbolic Execution Systems ( verifiers )

Reliability n Based on error rate n Based on internal characteristics of program (complexity, #operands, #operators) n Seed SW with known errors and evaluate #seeded errors detected vs. actual errors detected –this evaluates power of tests