The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program.

Slides:



Advertisements
Similar presentations
Defect testing Objectives
Advertisements

Lecture 8: Testing, Verification and Validation
Verification and Validation
Software Quality Assurance Plan
Chapter 2 – Software Processes
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 Engineering COMP 201
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Illinois Institute of Technology
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
- Testing programs to establish the presence of system defects -
Lecturer: Dr. AJ Bieszczad Chapter 87-1 How does software fail? Wrong requirement: not what the customer wants Missing requirement Requirement impossible.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Software Testing & Strategies
Verification and Validation
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
©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.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
The Software Development Life Cycle: An Overview
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Integration testing l Tests complete systems or subsystems composed of integrated.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 19,20 Slide 1 Verification and Validation l.
Verification and Validation Chapter 22 of Ian Sommerville’s Software Engineering.
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 Testing Testing types Testing strategy Testing principles.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 13 Verification and validation Slide 1 1 Chapter 13 Verification and Validation.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Software Testing Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
©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.
This chapter is extracted from Sommerville’s slides. Textbook chapter
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
CSC 480 Software Engineering Lecture 15 Oct 21, 2002.
CHAPTER 9: VERIFICATION AND VALIDATION 1. Objectives  To introduce software verification and validation and to discuss the distinction between them 
Verification and Validation Assuring that a software system meets a user's needs.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Defect testing l Testing programs to establish the presence of system defects.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
The Software Development Life Cycle: An Overview
Rekayasa Perangkat Lunak Sesi 14 Software Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©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.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Defect testing Testing programs to establish the presence of system defects.
©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.
Verification and Validation. Topics covered l Verification and validation planning l Program Testing l Software inspections.
CSC 480 Software Engineering
Verification & Validation
Chapter 18 Software Testing Strategies
Software testing strategies 2
Lecture 09:Software Testing
Verification and Validation Unit Testing
Verification and Validation
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.
Presentation transcript:

The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program

Last Time Introduction to the Principles of Object Technology Object Oriented Design Object Technology and MSF Object Technology and RUP

Session 6: Testing Introduction to the Principles of Testing The Testing Process Schwan’s Development Standards MSF Testing RUP Implementation and Testing

Purpose of Testing In most engineering disciplines the purpose of testing is to verify that the product meets its specifications. Most physical products have only a finite number of failure modes. If your toaster doesn’t get hot then either: the cord is defective the heating element is broken the connections are bad

Purpose of Testing In software engineering, the purpose of testing is to find errors. When a piece of software does not work there can be an almost unlimited number of causes.

Terminology Two views of error. Failure - The manifestation of the error. The software does something that is contrary to its required behavior. Fault - The cause of the error. A human mistake made during some software activity that produces a failure.

Formal Definition of Testing According to the IEEE The purpose of software testing is to find failures so that once the software has failed under test, faults responsible for the failures can be found and fixed.

Table 8.1. IBM orthogonal defect classification. Fault typeMeaning FunctionFault that affects capability, end-user interfaces, product interfaces, interface with hardware architecture, or global data structure InterfaceFault in interacting with other components or drivers via calls, macros, control blocks or parameter lists CheckingFault in program logic that fails to validate data and values properly before they are used AssignmentFault in data structure or code block initialization. Timing/serializationFault that involves timing of shared and real-time resources Build/package/mergeFault that occurs because of problems in repositories, management changes, or version control DocumentationFault that affects publications and maintenance notes AlgorithmFault involving efficiency or correctness of algorithm or data structure but not design

Hewlett Packard Fault Classification Scheme

Overall Goal Our overall goal is still to validate and verify the software.

Validation "Are we building the right product?" The software should do what the user really requires

Verification "Are we building the product right?” The software should conform to its specification

Is a whole life-cycle process - V & V must be applied at each stage in the software process. Has two principal objectives The discovery of defects in a system The assessment of whether or not the system is usable in an operational situation. The V & V process

Dynamic verification Concerned with exercising and observing product behavior (testing) Static verification Concerned with analysis of the static system representation to discover problems Dynamic vs Static Verification

Static and Dynamic V&V

Statistical testing tests designed to reflect the frequency of user inputs. Used for reliability estimation. Defect testing Tests designed to discover system defects. A successful defect test is one which reveals the presence of defects in a system. Types of Testing

Defect testing and debugging are distinct processes Defect testing is concerned with confirming the presence of errors Debugging is concerned with locating and repairing these errors Debugging involves formulating a hypothesis about program behavior then testing these hypotheses to find the system error Testing and Debugging

The Debugging Process

Unit testing testing of individual components Module testing testing of collections of dependent components Sub-system testing testing collections of modules integrated into sub-systems Testing Stages

System testing testing the complete system prior to delivery Acceptance testing testing by users to check that the system satisfies requirements. Sometimes called alpha testing.

The Testing Process

Object-oriented System Testing Less closely coupled systems. Objects are not necessarily integrated into sub- systems Cluster testing. Test a group of cooperating objects Thread testing. Test a processing thread as it weaves from object to object.

Describe major phases of the testing process Describe trace-ability of tests to requirements Estimate overall schedule and resource allocation Describe relationship with other project plans Describe recording method for test results Test Planning and Scheduling

The Test Plan The testing process Requirements trace-ability Tested items Testing schedule Test recording procedures Hardware and software requirements Constraints

The V-model of Development

Testing Strategies Testing strategies are ways of approaching the testing process Different strategies may be applied at different stages of the testing process Strategies covered Top-down testing Bottom-up testing Thread testing Stress testing Back-to-back testing

Top-down testing

Start with the high-levels of a system and work your way downwards Testing strategy which is used in conjunction with top-down development Finds architectural errors May need system infrastructure before any testing is possible May be difficult to develop program stubs

Bottom-up testing

Necessary for critical infrastructure components Start with the lower levels of the system and work upward Needs test drivers to be implemented Does not find major design problems until late in the process Appropriate for object-oriented systems

Thread testing Suitable for real-time and object-oriented systems Based on testing an operation which involves a sequence of processing steps which thread their way through the system Start with single event threads then go on to multiple event threads Complete thread testing is impossible because of the large number of event combinations

Process interactions

Thread testing

Multiple-thread testing

Exercises the system beyond its maximum design load. Stressing the system often causes defects to come to light Stressing the system test failure behavior. Systems should not fail catastrophically. Stress testing checks for unacceptable loss of service or data Particularly relevant to distributed systems which can exhibit severe degradation as a network becomes overloaded Stress testing

Back-to-back testing Present the same tests to different versions of the system and compare outputs. Differing outputs imply potential problems Reduces the costs of examining test results. Automatic comparison of outputs. Possible when a prototype is available or with regression testing of a new system version

Back-to-back testing

Incremental testing

Key Points Verification and validation are not the same thing Testing is used to establish the presence of faults and to show fitness for purpose Testing activities include unit testing, module testing, sub-system testing, integration testing and acceptance testing Object classes should be tested in O-O systems

Key Points Testing should be scheduled as part of the planning process. Adequate resources must be made available Test plans should be drawn up to guide the testing process Testing strategies include top-down testing, bottom-up testing, stress testing, thread testing and back-to-back testing

Questions?

Schwan’s Development Standards

Business Test Cases (260) Objective The objective of the Business Test Cases is to have a written plan to confirm after creation that the system meets the business needs of the customer. This plan should include a list of functionality needed at the business level. Customers should help create the Business Test Cases. Required: ProjectsSupport Optional: Deliverable: Business Test Cases Deliverable to: Systems Development Customer (Optional) Responsibility: Business Systems Planning SAP Tie: 2.4

Create Test Plan (440) Objective The objective of the Test Plan is to take the Business Test Cases created by the Business Systems Planning group during project analysis and create a system test plan to be used during the test phase of the project development cycle. Required: Projects Support Optional: Deliverable: Test Plan Deliverable to: Systems Development Responsibility: Systems Development SAP Tie: 3.1

Unit Test (530) Objective The objective of the Unit Testing is to run the application through a rigorous test using the test cases to verify all functionality works as expected. A unit test is required on all programs and should be repeatable. Required: Projects Optional: Support Deliverable: Documented Repeatable Unit Test Deliverable to: Systems Development Responsibility: Systems Development SAP Tie: 3.5

System Test (540) Objective The objective of the System Testing is to test the application(s) with the system to verify it has the desired effects and no undesired affects. Required: Projects Optional: Support Deliverable: Documented Repeatable System Test Deliverable to: Systems Development Responsibility: Joint Responsibility SAP Tie: 4.3

Acceptance Test Objective The objective of the Acceptance Testing is to get approval from customers and IS on final product to be moved to production. Support Services may be involved with this step in preparation for support of the final system. Required: Projects Optional: Support Deliverable: Customer Approval Deliverable to: Systems Development Responsibility: Joint Responsibility SAP Tie: 4.3, 4.6

Questions?