Advanced Software Engineering: Software Testing COMP 3702 (Lecture1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin Carina Andersson.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

System Development Life Cycle (SDLC)
System Integration Verification and Validation
Ossi Taipale, Lappeenranta University of Technology
Verification and Validation: A Quick Introduction 1-2 Lectures.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
DAIMIHenrik Bærbak Christensen1 Testing Terminology.
Fundamentals of Information Systems, Second Edition
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Software Process and Product Metrics
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Software Quality Assurance For Software Engineering && Architecture and Design.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
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 Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Extreme Programming Software Development Written by Sanjay Kumar.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Software Testing Lifecycle Practice
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
March 13, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #15 Tuesday, March 13, 2001.
Software Metrics - Data Collection What is good data? Are they correct? Are they accurate? Are they appropriately precise? Are they consist? Are they associated.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
TESTING PRINCIPLES BY K.KARTHIKEYAN. PRINCIPLES Principle 1. Testing is the process of exercising a software component using a selected set of test cases,
Software Testing Testing types Testing strategy Testing principles.
IT Requirements Management Balancing Needs and Expectations.
This chapter is extracted from Sommerville’s slides. Text book chapter
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
This chapter is extracted from Sommerville’s slides. Textbook chapter
Fundamentals of Information Systems, Second Edition 1 Systems Development.
1 TenStep Project Management Process ™ PM00.9 PM00.9 Project Management Preparation for Success * Manage Quality *
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Verification and Validation Assuring that a software system meets a user's needs.
Advanced Software Engineering 1 Advanced Software Engineering: Software Testing COMP 3705 (Lecture1) Sada Narayanappa Anneliese Andrews (Chair DU) Thomas.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Defect Classes and the defect repository
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
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.
SCOPE DEFINITION,VERIFICATION AND CONTROL Ashima Wadhwa.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Testing Integral part of the software development process.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
CSC 480 Software Engineering
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.
IT6004 – SOFTWARE TESTING.
Object oriented system development life cycle
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Lecture 09:Software Testing
Unit 1 :Basic Of Software Testing
Software Testing Lifecycle Practice
© Oxford University Press All rights reserved.
Software Reviews.
Presentation transcript:

Advanced Software Engineering: Software Testing COMP 3702 (Lecture1) Sada Narayanappa Seif Azgandhi Anneliese Andrews Thomas Thelin Carina Andersson

A Andrews - Software Engineering: Software Testing'06 27 dm 3, 31 kg 4 KB read/write magnetic core memory 64 KB read-only memory

A Andrews - Software Engineering: Software Testing'06

Software on Wings 4 M LOC

A Andrews - Software Engineering: Software Testing'06 Facts about testing System development:  1/3 planning  1/6 coding  1/4 component test  1/4 system test [Brooks75]

A Andrews - Software Engineering: Software Testing'06 Implementation Analysis Design Function test System Test

A Andrews - Software Engineering: Software Testing'06 Good enough quality To claim that any given thing is good enough is to agree with all of the following propositions:  It has sufficient benefits  It has no critical problems  The benefits sufficiently outweigh the problems  In the present situation, and all things considered, further improvement would be more harmful than helpful James Bach, IEEE Computer, 30(8):96-98, 1997.

A Andrews - Software Engineering: Software Testing'06 Quality attributes – ISO 9126

A Andrews - Software Engineering: Software Testing'06 Quality attributes – McCall

A Andrews - Software Engineering: Software Testing'06 Why use testing?  Risk mitigation  Faults are found early  Faults can be prevented  Reduce lead-time  Deliverables can be reused  …

A Andrews - Software Engineering: Software Testing'06 Why do faults occur in software?  Software is written by humans  Who know something, but not everything  Who have skills, but aren’t perfect  Who don’t usually use rigorous methods  Who do make mistakes (errors)  Under increasing pressure to deliver to strict deadlines  No time to check, assumptions may be wrong  Systems may be incomplete  Software is complex, abstract and invisible  Hard to understand  Hard to see if it is complete or working correctly  No one person can fully understand large systems  Numerous external interfaces and dependencies

A Andrews - Software Engineering: Software Testing'06 Origins of defects Defect sources Lack of education Poor communication Oversight Transcription Immature process Impact of software artifacts Errors Faults / Defects Failures Impact from user’s view Poor quality software User dissatisfaction Fault model

A Andrews - Software Engineering: Software Testing'06 Whoops, that’s my calculator

A Andrews - Software Engineering: Software Testing'06 Testing, Verification & Validation Definition 1  Verification  is the product right?  Validation  is it the right product? Definition 2  Verification  satisfies the conditions at the start of the phase  Validation  satisfies the requirements Testing The process of evaluating a program or a system

A Andrews - Software Engineering: Software Testing'06 Definitions  Failure is an event, fault is a state of the software caused by an error  Error – human mistake  Fault / Defect – anomaly in the software  Failure – inability to perform its required functions  Debugging / Fault localization – localizing, repairing, retesting.  A test case consists of:  A set of inputs  Execution conditions  Expected outputs

A Andrews - Software Engineering: Software Testing'06 Scripted and non-scripted testing  In scripted testing test cases are pre-documented in detailed, step-by-step descriptions  Different levels of scripting possible  Scripts can be manual or automated  Non-scripted testing is usually manual testing without detailed test case descriptions  Can be disciplined, planned, and well documented exploratory testing  or ad-hoc testing

A Andrews - Software Engineering: Software Testing'06 Test oracle  An oracle is the principle or mechanism by which you recognize a problem  Test oracle provides the expected result for a test, for example  Specification document  Formula  Computer program  Person  In many cases it is very hard to find an oracle  Even the customer and end user might not be able to tell which is the correct behaviour

A Andrews - Software Engineering: Software Testing'06 Principle 1 – purpose of testing Testing is the process of exercising a software component using a selected set of test cases, with the intent of  Revealing defects  Evaluating quality

A Andrews - Software Engineering: Software Testing'06 Principles 2: A good test case – When the test objective is to detect defects, then a good test case is one that has high probability of revealing a yet undetected defect(s) 3: Test result – The results should be inspected meticulously 4: Expected output – A test case must contain the expected output

A Andrews - Software Engineering: Software Testing'06 Principles 5: Input – Test cases should be developed for both valid and invalid input conditions 6: Fault content estimation – The probability of the existence of additional defects in a software component is proportional to the number of defects already detected in that component 7: Test organization – Testing should be carried out by a group that is independent of the development group

A Andrews - Software Engineering: Software Testing'06 Principles 8: Repeatable – Tests must be repeatable and reusable 9: Planned – Testing should be planned 10: Life cycle – Testing activities should be integrated into the software life cycle 11: Creative – Testing is a creative and challenging task

A Andrews - Software Engineering: Software Testing'06  Test Maturity Model

A Andrews - Software Engineering: Software Testing'06 Goals of the course Knowledg e Skills Attitudes A test specialist who is trained as an engineer should have knowledge of test-related principles, processes, measurements, standards, plans, tools, and methods, and should learn how to apply them to the testing tasks to be performed.

A Andrews - Software Engineering: Software Testing'06

A Andrews - Software Engineering: Software Testing'06

A Andrews - Software Engineering: Software Testing'06 Lectures  Theory + discussions  Cover the basic parts of software testing  Introduction  Black-box testing, Reliability, Usability  Inspections, white-box testing  Lifecycle, documentation  Organization, tools  Metrics, TMM  Guest lecture, Technical Overview Technical / Manageri al Managerial EconomicEconomic

A Andrews - Software Engineering: Software Testing'06 Lab sessions Preparation, Execution, Report  Black-box testing  Usage-based testing and reliability  White-box testing  Inspection and estimation  Software process simulation

A Andrews - Software Engineering: Software Testing'06 Project: Option 1  Learn a specific area of software testing  Collect and summarize research information  Critical thinking beyond the written information  Present information in a structured way  Peer review

A Andrews - Software Engineering: Software Testing'06 Examination  Written exam based on the book and lab sessions  Lab sessions (approved)  Project (F / G / VG)

A Andrews - Software Engineering: Software Testing'06 Schedule  Read  Course program  Projects in Software Testing  Check homepage  Not decided  Extra Lab dates

A Andrews - Software Engineering: Software Testing'06 This week  Read course program  Lecture 2 tomorrow  Project  Read Projects in Software Testing  Exercise on Thursday  Decide subject (deadline Thursday 17/3)  Lab  Prepare lab 1  Read Burnstein 1-3  Prepare Burnstein 4,12

A Andrews - Software Engineering: Software Testing'06 Project: Option 1  Research: solve a research problem; survey the state-of-the-art and identify the research problems in some area; develop and justify an extension to an existing technique; etc.  Evaluation: apply and evaluate a technique or evaluate a commercial testing or, analysis tool.  Practical: Use an existing technique to test a system or design and implement a prototype for a system.

A Andrews - Software Engineering: Software Testing'06 Project: Option 1  Read Projects in Software Testing  Divide in groups (2-3 persons)  Discuss with me 

A Andrews - Software Engineering: Software Testing'06 Project: Option 2  Experiment participation.  Compare Fault finding  Unit test  code inspection  Two sessions 3-4 less total  Full credit