The V-model. Validation and Verification. Inspections [24.3] Testing overview [8, 15.2] - system testing. How much V&V is enough?



Similar documents
Software Testing. Quality & Testing. Software Testing

Basic Testing Concepts and Terminology

Software testing. Objectives

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Chapter 8 Software Testing

Software Engineering. How does software fail? Terminology CS / COE 1530

Static Analysis for Software Verification. Leon Moonen

Reduce Medical Device Compliance Costs with Best Practices.

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Testing, Debugging, and Verification

Introduction to Automated Testing

CSTE Mock Test - Part III Questions Along with Answers

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Testing. System, Acceptance and Regression Testing

Quality Management. Lecture 12 Software quality management

APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION

Software Quality Assurance

IEEE ComputerSociety 1 Software and Systems Engineering Vocabulary

Advanced Testing Techniques

TEST PLAN Issue Date: <dd/mm/yyyy> Revision Date: <dd/mm/yyyy>

The Theory of Software Testing

Presentation: 1.1 Introduction to Software Testing

Testing Tools Content (Manual with Selenium) Levels of Testing

Approach of Unit testing with the help of JUnit

How To Improve Software Quality

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Testing and Inspecting to Ensure High Quality

Chap 1. Software Quality Management

Custom Web Development Guidelines

Procedure for Assessment of System and Software

Requirements engineering

Metrics in Software Test Planning and Test Design Processes


MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

SoMA. Automated testing system of camera algorithms. Sofica Ltd

Testing of safety-critical software some principles

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement

Software Test and Analysis in a Nutshell

Peer Review Process Description

TPI a model for Test Process Improvement

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

An Introduction to. Metrics. used during. Software Development

Peer Review Process Description

Introduction to Software Engineering. 8. Software Quality

Automated Module Testing of Embedded Software Systems

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Object Oriented Analysis and Design and Software Development Process Phases

Business Application Services Testing

Body of Knowledge General Knowledge (16 questions) Quality principles Benefits of software quality Organizational and process benchmarking

TESSY Automated dynamic module/unit and. CTE Classification Tree Editor. integration testing of embedded applications. for test case specifications

How To Write Software

Software Testing Tutorial

Levels of Software Testing. Functional Testing

Software Requirements Specification

Certified Software Quality Engineer (CSQE) Body of Knowledge

SOFTWARE TESTING - QUICK GUIDE SOFTWARE TESTING - OVERVIEW

International Software Test Institute

Basic Unix/Linux 1. Software Testing Interview Prep

JOURNAL OF OBJECT TECHNOLOGY

Introducing Formal Methods. Software Engineering and Formal Methods

Introducing the Dezyne Modelling Language

V-Modell XT. Part 1: Fundamentals of the V-Modell

Testing Introduction. IEEE Definitions

Using WebLOAD to Monitor Your Production Environment

Writing The Business Case for Automated Software Testing and Test Management Tools

Process Models and Metrics

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References

ORACLE CONSULTING GROUP

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

CS 451 Software Engineering Winter 2009

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote SSA-U Appendix 5 Testing and Approval Project: E-vote 2011

Guideline for stresstest Page 1 of 6. Stress test

Request for Proposal for Application Development and Maintenance Services for XML Store platforms

Chapter 8: Software Quality Assurance. What is not tracked is not done

System Software Product Line

International Journal of Advance Research in Computer Science and Management Studies

White Papers: Unit Testing. Unit Testing

Software Error Analysis

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Software Engineering Techniques

Regression Testing Based on Comparing Fault Detection by multi criteria before prioritization and after prioritization

Quality Assurance - Karthik

Sample Exam Syllabus

Testing Overview and Black-Box Testing Techniques

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

How To Understand Software Engineering

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.

Maximize Software Development ROI With Quality Assurance. Showing the value of the Quality Process

Transcription:

Validation and Verification Inspections [24.3] Testing overview [8, 15.2] - system testing Requirements Design The V-model V & V Plans Implementation Unit tests System tests Integration tests Operation, Maintenance Software Engineering V&V 1 Software Engineering V&V 2 Validation Will the product satisfy the customer needs? Are we building the right product? Verification Do we satisfy the requirements? Are we building the product right? Software Engineering 3 How much V&V is enough? Good enough Safe enough Competition Testing itself does not improve quality Costly (maybe impossible!) to increase quality after development Software Engineering V&V 4 Testing vs. Debugging Testing vs. Inspections The debugging process Fixing 1 error could create > 1 new error Software Engineering V&V 5 Testing dynamic: running a program Inspections static: reviewing a document 1

Planning Determine goals Proportion static/dynamic V&V Ensure verifiability (req s, design, code) Design tests Evaluation criteria - what is good enough? Tool support Time plan Documentation Software Engineering V&V 7 Inspections [24.3] + Apply to all documents: no program needed + Quality perspective from the start - Do not cover emergent properties: mostly applies to verification - Added cost early in the process = + Investment in quality Software Engineering V&V 8 Inspection goals Finding errors Checking adherence to standards Readability (code, documentation) Collecting data Common errors Inspection pitfalls Questioning overall design This is OK, but I can do better Designing repair during inspection This is not OK, and I can do better Evaluating people Inspection preconditions are not fullfilled Software Engineering V&V 9 Software Engineering V&V 10 Inspection preconditions Precise specification: criteria OK/not OK Standards known to team members A finished item for inspection For code inspections [24.3.2]: Syntactically correct code Checklist of common errors Software Engineering V&V 11 Software Engineering 12 2

Automated Static Analysis [15.1.3] awful, correct C #include <stdio.h> printarray(anarray) int Anarray; { printf( %d,anarray); } main() { int Anarray[5]; int i; char c; printarray(anarray, i, c); printarray(anarray); } LINT warnings (10) c may be used before set (10) i may be used before set printarray: variable # of args. (4) :: (10) printarray: arg.1 used inconsistently (4) :: (10) printf returns value which is always ignored. Software Engineering 13 Inspection process Orientation Walk through (2 hours) Finding suspected deviations Limited size of document Software Engineering V&V 14 Inspection meeting roles Chair (organize) Scribe (taking notes) Author (fixing... after meeting) Reader (walk through) Inspector(s) (find deviations) viewpoints Inspections require training! Software Engineering V&V 15 What is a test? A test suite is a set of test cases run together for a single purpose. A test case consists of Test data Expected outcome (correct answer) Expected behaviour (e.g. response time) Software Engineering V&V 16 The oracle problem What is the correct answer? 1.... at least the program didn't crash... 2. Compute by hand and compare 3. Back-to-back testing 4. The answer is reasonable Is the list sorted? Is the yellow ball yellow and round? Is the area of the triangle between and Software Engineering V&V 17 Classification of testing Classification by goal: - finding defects - acceptance / validation - measurement: reliability,performance,... Classification by level -system - subsystem - module Software Engineering V&V 18 3

Acceptance test (system) Factory acceptance test (FAT) Installation Site acceptance test (SAT) Goals: is the contract fulfilled? (verification) is the product usable? (validation) Reliability testing Requires test data reflecting normal operation Statistical test [15.2] random test Software Engineering V&V 19 Software Engineering V&V 20 Establish the operational profile. from an existing system assumptions about use of new system Construct test data reflecting the operational profile (statistically). Test: observe the number of failures and the times of these failures. Compute the reliability after a statistically significant number of failures. Problems Operational profile uncertainty operational profile = real use of the system? High costs of test data generation if test data not generated automatically. Statistical uncertainty highly reliable systems will rarely fail. Recognizing failure conflicting interpretations of a specification. Software Engineering V&V 21 Software Engineering V&V 22 Performance Stress test How the system handles increasing / extreme load graceful degrading / total collaps may reveal defects Profiling 10% of the code takes 90% of the time Software Engineering V&V 23 Integration / Interface testing Top-down vs. Bottom-up Needs scaffolding stubs for unfinished parts. Test for Miscommunication (arguments,...) Timing (mutex, deadlock) Environmental assumptions (available services, memory, etc.) Software Engineering V&V 24 4

Reusability Back-to-back testing use a previous version of the system (prototype) as the test oracle Regression test applies for all kinds of test rerun a test suite for every change in the system goal: did the change break anything? Software Engineering 25 Test tools Automated testing Record, Replay Test environment, scaffolding Large test suites (stress, statistical test) Evaluation Profiling Coverage Documentation, traceability Software Engineering V&V 26 Defect testing Goals: detect as many defects as possible detect the most damaging defects detect the most likely defects - statistical test! Black-box testing: the source code is not considered (maybe even not known). Glass-box testing: the tests are chosen based on the source code. Software Engineering V&V 27 5