Illinois Institute of Technology

Slides:



Advertisements
Similar presentations
Software Testing Strategies
Advertisements

SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent quality assurance.
Software Quality Assurance Plan
Software Architecture Prof.Dr.ir. F. Gielen
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Integration testing Satish Mishra
Testing an individual module
Software Testing Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
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.
Software Testing & Strategies
Software Engineering Lecture 13 Software Testing Strategies 1.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Software System Integration
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Chapter 13 & 14 Software Testing Strategies and Techniques
Programinės Įrangos Testavimo Strategijos
ECE 355: Software Engineering
Extreme Programming Software Development Written by Sanjay Kumar.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
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.
Software Testing. 2 CMSC 345, Version 4/12 Topics The testing process  unit testing  integration and system testing  acceptance testing Test case planning.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
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.
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
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.
Integration testing After different modules of a system have been coded and unit tested: –modules are integrated in steps according to an integration plan.
CS 325: Software Engineering February 16, 2016 Designing a Design Class Diagram Design Class Diagrams DCD: Restaurant Example DCD: ATM Example Software.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Software Testing Strategies for building test group
Software Testing.
Group mambers: Maira Naseer (BCS ).
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Integration Testing.
Rekayasa Perangkat Lunak Part-13
Chapter 18 Software Testing Strategies
Levels Of Testing and Special Tests
Chapter 13 & 14 Software Testing Strategies and Techniques
Lecture 09:Software Testing
Software System Integration
Verification and Validation Unit Testing
Higher-Level Testing and Integration Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Chapter 10 – Software Testing
Integration Testing CS 4311
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software System Integration
Chapter 11: Integration- and System Testing
Integration Testing.
Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Illinois Institute of Technology CS487 Software Engineering Testing - Part II Software Testing Strategies Mr. David A. Lash © Carl J. Mueller, 2000

Why Software Testing Strategy? Some Test Strategy Issues: Should develop a formal test plan? Test entire program as a whole or various pieces? When should customer be included? Testing often accounts for more effort then development Usually strategy is defined in an overall testing strategy and procedure document (often by independent test group)

Elements Of Software Test Strategy Unit Testing - Tests the implemented source code of the component. Uses White Box. Integration Testing - focuses on the design, testing and integration of components. Black box and limited White Box. Validation Testing - Looks at requirements a validates software against it. Black Box Testing. System Testing - Looks at software and other system elements tested as a whole. (Other hardware, people, databases, processes.)

Unit Testing Unit Testing - Module test Use drivers (accepts data interfaces are tested to ensure information flows into and out of the program correctly. Data structures are tested. Independent paths (basis paths) are exercised) Error handling paths - A mistake to miss these. Use drivers (accepts data and tests and passes to module) and stubs (replace other modules)

Integration A systematic technique to uncover problems while putting the modules together. Composed of two activities: Building Compile and link all of the modules together Testing Verify interface function as specified Avoid the “big bang” approach A.K.A. non- incremental integration can yield chaotic results.

Implementation Process

Approaches to Integration Testing Top-down (depth-first or breadth-first) Test higher level modules first Require stubs (not just returns) Bottom-up Test lower-level modules first Require drivers (require logic) Sandwich Test highest level modules in conjunction with lowest level meeting in the middle Use stubs and drivers

Example System

Top Down (depth) Example Depth First Integrate M1, use stubs for M2, M3 and M5 . Test all M1 interfaces Next would test M2 and use operational stubs for M3, M4, M5, M6 .Test all M2 interfaces Repeat for M5, then M8, M6, and M3...

Top Down (depth) Example Integrate M1, use stubs for M2, M3 and M5 . Test all M1 interfaces Next would test M2 and use operational stubs for M3, M4, M5, M6 .Test all M2 interfaces Replace stub M5 with module M5. Use operational stubs for M3, M4, M6, M8. Test all the interfaces in M5 Repeat for M8, M6, and M3...

Top Down (breath) Example Breath First Order M1, M2, M3, M4, Next level would be M5, M6, ... Next Top down testing can have problems when low level modules are needed (delay full tests or develop better stubs or go bottom up)

Bottom Up Lower Items first using drivers : Using an M8 driver test module M8 Using an M7 driver test module M7 Using an M6 driver test module M6 Using an M5 driver test module M5

Bottom Up Example II In reality lower items are clustered together into sub-functions (aka builds).

Sandwich Example First Round Top-down Use operational stubs for M2, M3, M4 Test all the interfaces in M1 Bottom-up Using an M8 driver test module M8 Using an M7 driver test module M7 Using an M6 driver test module M6

Regression Testing The reexecution of some subset of tests to ensure changes have not propagated errors. Tests conducted when a previously tested software is delivered Continuing testing after repair New Version Partial testing old features when testing a maintenance release. Might include tests of features/functions that were unchanged doing the current release. Capture/playback tools enable re-execute of tests previously run.

Verification (1) The process of determining whether or not the products of a given phase of the software development cycle fulfill the requirements established during the previous phase (2) Formal proof of program correctness (3) The act of reviewing, inspecting, testing, checking, auditing, or otherwise establishing and documenting whether or not items, processes, services and documents conform to specified requirements

Functional Verification Verification of the Functional Design Specification Should be done by developers Normally done by user or testing group Can be combined with integration testing

Are we building the right product? Does it meet the requirements? Validation Are we building the right product? Does it meet the requirements?

Validation Phase

Validation The process of evaluating software at the end of the software development process to ensure compliance with software requirements. Test plans define classes of test to be completed

Validation Activities

Validation Process

System Tests

System Tests

System Tests

System Tests

Rules for High-Level Tests 1. Test are run on operational production hardware and software. 2. Tests must stress the system significantly 3. All interfaced systems must be in operation throughout the test. 4. Test duration should run a full cycle 5. Tests should exercise the system over a full range of inputs, both legal and illegal 6. All major functions and interfaces should be exercised. 7. If running the entire test cannot be completed, a new run should include a complete restart.

Acceptance Testing Depends on the type of product and the situation. When working with an a non-technical user, the following are recommended. First, train user on system with a number of test cases. Use a comparison test. Re-processing Parallel to existing system

Acceptance Testing Product Development Alpha testing Performed by a selected end-users usually in side the development environment. Beta testing Performed by a subset of actual customers outside the company, before the software is made available to the customer. Field Trial Large number of users, but not general release.

Acceptance Testing Work for Hire Training Programming Evaluate based on comments users general reaction to system. Usability Test Parallel Operation Comparison Testing New software used after old system process. Controlled deployment Representative monitors software at site.