 CS 5380 Software Engineering Chapter 8 Testing.

Slides:



Advertisements
Similar presentations
Software testing.
Advertisements

Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Software testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Systems Analysis and Design in a Changing World, 6th Edition
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
12.
Extreme Programming Software Development Written by Sanjay Kumar.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
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.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
SWE © Solomon Seifu CONSTRUCTION. SWE © Solomon Seifu Lesson 13-2 Testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
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.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 23 Reliability III.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
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.
Software process model from Ch2 Chapter 2 Software Processes1 Requirements Specification Design and Implementation ValidationEvolution.
Software Testing Process By: M. Muzaffar Hameed.
Testing, Testing & Testing - By M.D.ACHARYA QA doesn't make software but makes it better.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Testing 1Software testing. V model Software testing2.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Chapter 5 – Software Testing & Maintenance (Evolution) 1.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CS 325: Software Engineering February 16, 2016 Designing a Design Class Diagram Design Class Diagrams DCD: Restaurant Example DCD: ATM Example Software.
Chapter 8 – Software Testing 1Chapter 8 Software testing Note: These are a modified version of Ch 8 slides available from the author’s site
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
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.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Engineering (CSI 321)
Testing More In CS430.
Different Types of Testing
Chapter 8 – Software Testing
Chapter 7 Software Testing.
Applied Software Implementation & Testing
Chapter 8 – Software Testing
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Software Engineering Lecture #14.
Chapter 8 – Software Testing
Software testing.
CS240: Advanced Programming Concepts
Software Testing & Quality Management
Chapter 10 – Software Testing
CS310 Software Engineering Dr.Doaa Sami Khafaga
Chapter 11: Integration- and System Testing
System analysis and design
Chapter 7 Software Testing.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

 CS 5380 Software Engineering Chapter 8 Testing

Validation vs Verification  Validation  Are we building the right product?  Verification  Are we building the product right? Chapter 7 - Design and Implementation2

Purpose of Testing  Demonstration of fulfillment of requirements  Identification of defects Chapter 7 - Design and Implementation3

Meeting Requirements (Validation)  At least one test per requirement  xxxxxxxxx  Often more than one test  Several valid cases  xxxxxxxxx Chapter 7 - Design and Implementation4

Identification of Defects  Identifying undesirable results  System crash  Incorrect computation  Data corruption  May need many tests Chapter 7 - Design and Implementation5

Testing is Never Final  Dijkstra: Testing can show presence of errors, not their absence  “There is always one more bug” Chapter 7 - Design and Implementation6

How Much Testing? - Factors Driving Testing  Software purpose  Safety drives high requirements  User expectations  Some tolerance  Marketing  “We lose money every day the product is not delivered” Chapter 7 - Design and Implementation7

Inspection vs Testing  Both address same issues  Does the software meet requirements?  Does the software fail in some situations?  Advantage of Inspection  Identification of multiple errors at one time possible  Identification of errors in incomplete software  Looks beyond defects  Inefficient code, poor code structure, reuse  Advantage of testing  Can be automated  Detailed scenarios evaluated Chapter 7 - Design and Implementation8

Inspection  Gives insight into the method, and hence potential flaws  Does not give us automation, regression  May be difficult to comprehend all cases  Complements other methods  Good review point is before check-in Chapter 7 - Design and Implementation9

Testing Stages  Development  Done during development, by programmers  Often on development systems  Release  Testing complete system before delivery  Generally on a separate test system  Formal test plans  User  Test by users, on their systems  Real world application  Beta testing Chapter 7 - Design and Implementation10

Development Testing Levels  Unit  Object, function level  Component  Interaction of several objects  Focus on component interactions  System  Entire system  Focus on interactions Chapter 7 - Design and Implementation11

Unit Testing  Object  Automated  Setup  Perform operation  Evaluate Results  Execution  Not UI Chapter 7 - Design and Implementation12

State Diagram Testing  System or object for which you have a state diagram  Test all transitions  State, event Chapter 7 - Design and Implementation13

Activity Diagram Testing  Diagram clearly shows alternatives to be tested. Chapter 7 - Design and Implementation14

Chapter 7 - Design and Implementation15

Component Testing  Testing of composite components  Several objects  Interfaces to consider  Parameter (object)  Procedural (object)  Shared memory  Message passing Chapter 7 - Design and Implementation16

Component Examples  Objects  Fast city grocers  Web browser Chapter 7 - Design and Implementation17

System Testing  Testing all components that come together  Internal objects  External objects – GUI, db  External systems – credit card Chapter 7 - Design and Implementation18

Regression Testing  Testing that past cases should still work  Automation is key to effective regression testing Chapter 7 - Design and Implementation19

Release testing  Similar to system testing, but  Separate team (not development)  Goal: more about meeting requirements than finding bugs  Goal: verify to the customer that the software is ready Chapter 7 - Design and Implementation20

Scenario Testing  Complete scenarios with data  May be followed by user  May be automated. Chapter 7 - Design and Implementation21

Performance Testing  Response times  Concurrency response  Identify degradation issues  Failure due to unexpected combination of events  Stress the system beyond normal use Chapter 7 - Design and Implementation22

User Testing  Alpha – users with developers  Beta –  Users in production mode  Generally to identify bugs  Acceptance testing  Customer acceptance  Acceptance plan needed Chapter 7 - Design and Implementation23

Release Cutoff  Software released when number of bugs/type tolerable  Unusual case causes software to crash  Unexplained loss of data – single record lost  Data corrupt (verified in customer data)  Single minor function (.1% of users use this) fails  Software lacks feature (50% of users want it) Chapter 7 - Design and Implementation24

Extent of Testing  Depends on Purpose  Health/Safety Critical – insulin pump  Credit card retention  Web ordering  Depends on User Expections  Depends on Marketing pressures  New customer delivery needed  Customer testimonials/references  Features for existing customers  Existing customer response to errors Chapter 7 - Design and Implementation25

Testers  Who does test?  Object level?  Programmer other than developer  Component level?  Programmers/ Test bed specialists  Integration level?  User domain / Programmers  Full scenario  Customers / Beta Chapter 7 - Design and Implementation26

Experience with Testers  Search for people that test well  Most people will use a system for 1 hour and say it has 2 bugs  Another tester might use the same software for 10 minutes and find 10 bugs Chapter 7 - Design and Implementation27