Test vs. inspection Part 1 Tor Stålhane. What we will cover Part 1 – Introduction – Inspection processes – Testing processes Part 2 – Tests and inspections.

Slides:



Advertisements
Similar presentations
Verification and Validation
Advertisements

White Box and Black Box Testing Tor Stålhane. What is White Box testing White box testing is testing where we use the info available from the code of.
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.
Grey Box testing Tor Stålhane. What is Grey Box testing Grey Box testing is testing done with limited knowledge of the internal of the system. Grey Box.
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
Chapter 4 Quality Assurance in Context
Alternate Software Development Methodologies
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Fundamentals of Information Systems, Second Edition
SE 555 Software Requirements & Specification Requirements Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Verification and Validation
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Simulation Walk Through Seeing how a simulation could work on your course.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Scenario testing Tor Stålhane. Scenario testing – 1 There are two types of scenario testing. Type 1 – scenarios used as to define input/output sequences.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Introduction to Systems Analysis and Design Trisha Cummings.
Exam examples Tor Stålhane. The A scenario – 1 We are working in a small software development company – 10 developers plus two persons in administrative.
White Box vs. Black Box Testing Tor Stålhane. What is White Box testing White box testing is testing where we use the info available from the code of.
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
ISO Tor Stålhane IDI / NTNU. What is ISO ISO 9001 was developed for the production industry but has a rather general structure ISO describes.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Test vs. inspection Part 2 Tor Stålhane. Testing and inspection A short data analysis.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Test vs. inspection Part 1 Tor Stålhane. What we will cover Part 1 – Introduction – Inspection processes – Testing processes Part 2 – Tests and inspections.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Test vs. inspection Part 1 Tor Stålhane. What we will cover Part 1 – Introduction – Inspection processes – Testing processes Part 2 – Tests and inspections.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Ch 22 Verification and Validation
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 REVIEWS A Standard Form of Quality Assurance. 2 Major Alternatives for QA proof of correctness review code testing.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
White Box and Black Box Testing
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
What is this course about Tor Stålhane IDI / NTNU.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Software Quality Assurance and Testing Fazal Rehman Shamil.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Outsourcing, subcontracting and COTS Tor Stålhane.
Advances In Software Inspection
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
©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.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Engineering (CSI 321)
Software Configuration Management (SCM)
Integration Testing.
CSC 480 Software Engineering
Verification and Validation
Verification and Validation
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Lecture 09:Software Testing
QA Reviews Lecture # 6.
Testing, Inspection, Walkthrough
Presentation transcript:

Test vs. inspection Part 1 Tor Stålhane

What we will cover Part 1 – Introduction – Inspection processes – Testing processes Part 2 – Tests and inspections – some data – Inspection as a social process – two experiments and some conclusions

Introduction

Adam’s data - 1 Mean Time to Problem Occurrence – years Product

Adams’ data – 2 The main information that you get from the table on the previous slide is that Some defects are important because they will happen quite often. Most defects are not important since they will happen seldom. How can we tell the difference?

Testing alone is not the solution As can be seen from the next slide, testing is not an acceptable solution alone. It will Take too long time Cost too much We can generate tests automatically, but would never the less have to use large resources to check the result – the oracle problem

A limit result The following relation holds under a rather wide set of conditions: The initial number of defects – N 0 – must be estimated e.g. based on experience from earlier projects as number of defects per KLOC.

An example from telecom

Testing and inspection – the V model

Testing and inspection – 1 The important message here is that testing cannot always be done. In the first, important phases, we have nothing to execute and will thus always have to do some type of inspection. This might be considered one of the weaknesses of traditional software engineering over Agile development.

Testing and inspection – 2 In order to understand the main differences between testing and inspection, we should consider Fits’ list. Based on this, we will give a short discussion of the relative merits of testing and inspection.

Area of competence ManMachine UnderstandingGood at handling variations in written material Bad at handling variations in written material ObserveGeneral observations, multifunctional Specialized, good at observing quantitative data, bad at pattern recognition ReasoningInductive, slow, imprecise but good at error correction Deductive, fast, precise but bad error correction MemoryInnovative, several access mechanisms Copying, formal access Information handling Single channel, less than 10 bits per second Multi channel, several Megabits per second ConsistencyUnreliable, get tired, depends on learning Consistent repetition of several actions PowerLow level, maximum ca. 150 watt High level over long periods of time Speed Slow – seconds Fast

Man vs. machine – 1 Good when we need the ability to Handle variation Be innovative and inductive Recognize and handle patterns Not so good when we need the ability to Do the same things over and over again in a consistent manner Handle large amount of data

Man vs. machine – 2 In order to do the best job possible we need processes where we let each part Do what they are best at: – Man is innovative – Machine handles large amounts of data Support the other with their specialties. – Machine supports man by making large amounts of information available – Man support machine by providing it with innovative input

General considerations - documents Architecture, system, sub-system and component design plus pseudo code. Here we can only use inspections. Man will use experience and knowledge to identify possible problems Machine can support by identifying information – e.g. find all occurrences of a string.

General considerations – code (1) For executable code, we can use inspection, testing or a combination of both. The size and complexity – degree of dynamism – of the code will, to a large degree, decide our choice. Other important factors are the degree of experience with The programming language The algorithms used

General considerations – code (2) Simple code Start with inspection – all code Design and run tests Complex code Start with inspection – focus on algorithm and logic Decide test completeness criteria – we cannot test everything Design and run tests

Inspection processes

Inspections – 1 The term “inspection” is often used in a rather imprecise manner. We will look at three types of inspection: Walkthrough Informal inspection – also called informal review Formal inspection – also called formal review or just inspection The first two types are usually project internal while the last one is used as a final acceptance activity for a document.

Inspections – 2 For all types of inspections: The quality of the results depends on the experience and knowledge of the participants. “Garbage in – Garbage out” It might be a good idea to involve customer representatives.

The walkthrough process Walkthrough is a simple process – mostly used for early decisions for an activity. The document owner: 1.Makes a rough sketch of the solution – architecture, algorithm etc. 2.Presents – explain – the sketch to whoever shows up. 3.Registers feedback – improvements.

Walkthrough – pros and cons Pros: Easy and inexpensive. Needs no extra preparation. Collect ideas at an early stage of development. Cons: No commitment from the participants May collect many loose or irrelevant ideas

The informal inspection process Individual checking Planning Product document Change requests Rules, checklists, procedures Logging meeting

Informal inspections – pros and cons Pros: Is simple and inexpensive to perform. Can be used at all stages of development Usually has a good cost / benefit ratio Needs a minimum of planning Cons: No participant commitment No process improvement

The formal inspection process The formal inspection process described below is – with small variations – the most commonly used. The version shown on the following slides stem from T. Gilb and D. Graham. We recommend this process as the final acceptance process for all important documents

Formal inspection process overview Walk- through Kick-off Individual checking Edit and follow- up Planning Process improvements Product document Change requests Rules, checklists, procedures Logging meeting

Distribution of resources ActivityRange % Typical value % Planning 3 – 5 4 Kick-off 4 – 7 6 Individual checking 20 – Logging 20 – Editing 15 – Process brainstorming 15 – Leader overhead, follow up, entry, exit 3 – 5 4

Initiating the inspection process The inspection process starts with a “request for inspection” from the author to the QA responsible. The QA responsible appoints an inspection leader. First step is always to check that the document is fit for inspection.

Planning Important planning points are: Who should participate in the inspections – Who is interested? – Who have time available for preparation and meetings? – Who has the necessary knowledge concerning application, language, tools, methods?

Kick-off Important activities here are: Distribution of necessary documents: – Documents that shall be inspected – Requirements – Applicable standards and checklists Assignment of roles and jobs Setting targets for resources, deadlines etc.

Individual checking This is the main activity of the inspection. Each participant read the document to look for Potential errors - inconsistencies with requirements or common application experience Lack of adherence to company standards or good workmanship

Logging meeting The logging meeting has three purposes: Log issues already discovered by inspection participants Discover new issues based on discussions and new information that arises during the logging meeting. Identify possible improvement to the inspection or development process.

Improve the product - 1 The author receives the log from the inspection meeting. All items - issues - in the log are categorised as one of the following: Errors in the author’s document. Errors in someone else’s document. Misunderstandings in the inspection team.

Improve the product - 2 Errors in own document: Make appropriate corrections Errors in someone else’s documents: Inform the owner of this document. Misunderstandings in the inspection team: Improve document to avoid further misunderstandings.

Checking the changes This is the responsibility of the inspection leader. He must assure that all issues raised in the log are disposed of in a satisfactory manner: The documents that have been inspected Related documents - including standards and checklists Suggested process improvements

Formal inspection – pros and cons Pros: Can be used to formally accept documents Includes process improvement Cons: Is time consuming and expensive Needs extensive planning in order to succeed

Testing processes

Testing We will look at three types of testing: Unit testing – does the code behave as intended. Usually done by the developer Function verification testing – also called systems test. Does the component or system provide the required functionality? System verification testing – also called acceptance test. Does the hardware and software work together to give the user the intended functionality?

The unit testing process Unit testing is done by the developer one or more times during development. It is a rather informal process which mostly run as follows: 1.Implement (part of) a component. 2.Define one or more tests to activate the code 3.Check the results against expectations and current understanding of the component

Unit testing – pros and cons Pros: Simple way to check that the code works. Can be used together with coding in an iterative manner. Cons: Will only test the developer’s understanding of the spec. May need stubs or drivers in order to test

The system test process A systems test has the following steps: 1.Based on the requirements, identify – Test for each requirement, including error handling – Initial state, expected result and final state 2.Identify dependencies between tests 3.Identify acceptance criteria for test suite 4.Run tests and check results against – Acceptance criteria for each test – Acceptance criteria for the test suite

Systems test – pros and cons Pros: Tests system’s behavior against customer requirements. Cons: It is a black box test. If we find an error, the systems test must be followed by extensive debugging

The acceptance test process The acceptance test usually has three activities – all involving the customer or his representatives: Rerun the systems test at the customer’s site. Use the system to solve a set of real-world tasks. Try to break the system – by stressing it or by feeding it large amounts of illegal input

Acceptance test – pros and cons Pros: Creates confidence that the system will be useful for the customer Shows the system’s ability to operate in the customer’s environment Cons: Might force the system to handle input that it was not designed for, thus creating an unfavorable impression.