IMPLEMENTATION AND INTEGRATION PHASE

Slides:



Advertisements
Similar presentations
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Advertisements

Slide 15.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Integration testing Satish Mishra
Unit 241 Integration Phase  The objective of this section is to introduce how the software product is realized from a set of programs, program units or.
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
Illinois Institute of Technology
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
1 Implementation Xiaojun Qi. 2 Choice of Programming Language The language is usually specified in the contract But what if the contract specifies that.
Software Testing & Strategies
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
System/Software Testing
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.
Implementation & Integration Phase Implementation, then integration: Implementation, then integration:  Each module is implemented by member of programmer.
Slide 15.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
Incell Phonium Processor Project Plan Document Dale Mansholt Aaron Drake Jon Scruggs Travis Svehla.
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.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Software Construction Lecture 18 Software Testing.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
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.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #18.
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
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.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Software Engineering Zhang Shuang
Software Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
7. Modular and structured design
Information Systems Development
Integration Testing.
ITEC 3220A Using and Designing Database Systems
Software Testing.
SOFTWARE TESTING OVERVIEW
Software Testing Techniques
SUCHITA M.DAKI TYIT(sem v)
Chapter 8 – Software Testing
Software engineering – 1
Chapter 18 Software Testing Strategies
Levels Of Testing and Special Tests
Chapter 13 & 14 Software Testing Strategies and Techniques
CHAPTER 2 Testing Throughout the Software Life Cycle
Definition of Integration Testing
Introduction to Software Testing
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.
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Chapter 10 – Software Testing
An Introduction to Software Architecture
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.
Systems Construction and Implementation
System Construction and Implementation
Systems Construction and Implementation
Software Testing “If you can’t test it, you can’t design it”
Chapter 5 Architectural Design.
Chapter 11: Integration- and System Testing
System analysis and design
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
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:

IMPLEMENTATION AND INTEGRATION PHASE CHAPTER 15 IMPLEMENTATION AND INTEGRATION PHASE

Overview Implementation and integration Testing during the implementation and integration phase Integration testing of graphical user interfaces Product testing Acceptance testing CASE tools for the implementation and integration phase CASE tools for the complete software process

Overview (contd) Integrated environments Environments for business applications Public tool infrastructures Potential problems with environments Metrics for the implementation and integration phase Air Gourmet Case Study: Implementation and integration phase Challenges of the implementation and integration phase

Implementation and Integration Phase Up to now: Implementation followed by integration Poor approach  Better Combine implementation and integration methodically

Product with 13 Modules

Implementation, Then Integration Code and test each module separately Link all 13 modules together, test product as a whole

Drivers and stubs To test module a, modules b, c, d must be stubs Empty module, or Prints message ("Procedure radarCalc called"), or Returns precooked values from preplanned test cases To test module h on its own requires a driver, which calls it Once, or Several times, or Many times, each time checking value returned Testing module d requires driver and two stubs

Implementation, Then Integration (contd) Problem 1 Stubs and drivers must be written, then thrown away after module testing is complete Problem 2 Lack of fault isolation A fault could lie in any of 13 modules or 13 interfaces In a large product with, say, 103 modules and 108 interfaces, there are 211 places where a fault might lie Solution to both problems Combine module and integration testing “Implementation and integration phase”

Top-down Implementation and Integration If module m1 calls module m2, then m1 is implemented and integrated before m2 One possible top-down ordering is a, b, c, d, e, f, g, h, i, j, k, l, m Another possible top-down ordering is a [a] b, e, h [a] c, d, f, i [a, d] g, j, k, l, m

Top-down Implementation and Integration (contd) Advantage 1: Fault isolation Previously successful test case fails when mNew is added to what has been tested so far Advantage 2: Stubs not wasted Stub expanded into corresponding complete module at appropriate step

Top-down Implementation and Integration (contd) Advantage 3: Major design flaws show up early Logic modules include decision-making flow of control In the example, modules a, b, c, d, g, j Operational modules perform actual operations of module In the example, modules e, f, h, i, k, l, m Logic modules are developed before operational modules

Top-down Implementation and Integration (contd) Problem 1 Reusable modules are not properly tested Lower level (operational) modules are not tested frequently The situation is aggravated if the product is well designed Defensive programming (fault shielding) Example: if (x >= 0) y = computeSquareRoot (x, errorFlag); Never tested with x < 0 Reuse implications

Bottom-up Implementation and Integration If module m1 calls module m2, then m2 is implemented and integrated before m1 One possible bottom-up ordering is l, m, h, i, j, k, e, f, g, b, c, d, a Another possible bottom-up ordering is h, e, b i, f, c, d l, m, j, k, g [d] a [b, c, d]

Bottom-up Implementation and Integration (contd) Advantage 1 Operational modules thoroughly tested Advantage 2 Operational modules are tested with drivers, not by fault shielding, defensively programmed calling modules Advantage 3 Fault isolation

Bottom-up Implementation and Integration (contd) Difficulty 1 Major design faults are detected late Solution Combine top-down and bottom-up strategies making use of their strengths and minimizing their weaknesses

Sandwich Implementation and Integration Logic modules are implemented and integrated top-down Operational modules are implemented and integrated bottom-up Finally, the interfaces between the two groups are tested

Sandwich Implementation and Integration (contd) Advantage 1 Major design faults are caught early Advantage 2 Operational modules are thoroughly tested They may be reused with confidence Advantage 3 There is fault isolation at all times

Summary

Object-Oriented Implementation and Integration Almost always sandwich implementation and integration Objects are integrated bottom-up Other modules are integrated top-down

Management Issues during Implem. and Int. Example Design document used by Team 1 (who coded module m1) shows m1 calls m2 passing 4 parameters Design document used by Team 2 (who coded module m2) states clearly that m2 has only 3 parameters Solution The implementation and integration. process must be run by SQA

Testing during Implem. and Integration Phase Product testing Performed to ensure that the product will not fail its acceptance test Failing the acceptance test is a disaster for management The client may conclude that the developers are incompetent Worse, the client may believe that the developers tried to cheat The SQA team must ensure that the product passes its acceptance test

Integration Testing of Graphical User Interfaces GUI test cases: Mouse clicks Key presses And so on Cannot be stored in the usual way We need special CASE tools Examples: QAPartner XRunner

Strategy for Product Testing The SQA team must try to approximate the acceptance test Black box test cases for the product as a whole Robustness of product as a whole Stress testing (under peak load) Volume testing (e.g., can it handle large input files?)

Strategy for Product Testing (contd) Check all constraints Timing constraints Storage constraints Security constraints Compatibility Review all documentation to be handed over to the client Verify the documentation against the product The product (software plus documentation) is now handed over to the client organization for acceptance testing

Acceptance Testing The client determines whether the product satisfies its specifications Performed by The client organization, or The SQA team in the presence of client representatives, or An independent SQA team hired by the client

Acceptance Testing (contd) Four major components of acceptance testing Correctness Robustness Performance Documentation (Precisely what was done by developer during product testing)

CASE tools for the Implem. and Integ. Phase Bare minimum: Version control tools Examples: rcs, sccs, PCVS, SourceSafe

CASE Tools for the Complete Software Process A large organization needs an environment A medium-sized organization can probably manage with a workbench A small organization can usually manage with just tools.

Integrated Environments Usual meaning of “integrated” User interface integration Similar “look and feel” Most successful on the Macintosh There are also other types of integration

Process Integration Environment supports one specific process Subset: Technique-based environment Formerly: “method-based environment” Supports specific technique Examples: Structured systems analysis Petri nets Usually comprises Graphical support for specification, design phases Data dictionary Some consistency checking Some management support Support and formalization of manual processes Analyst/Designer, Rose, Rhapsody (for Statecharts)

Technique-Based Environments (contd) Advantage of technique-based environment Forced to use specific method, correctly Disadvantages of technique-based environment Forced to use specific method Inadequate support of programming-in-the-many

Environments for Business Application The emphasis is on ease of use GUI Standard forms for input, output Code generator Detailed design is lowest level of abstraction Expect productivity rise Examples: Foundation, Bachman Product Set

Public Tool Infrastructure PCTE—Portable common tool environment NOT an environment An infrastructure for supporting CASE tools (similar to the way an operating system provides services for user products) Adopted by ECMA (European Computer Manufacturers Association) Example implementations: IBM, Emeraude

Potential Problems with Environments No one environment is ideal for all organizations Each has its strengths and weaknesses Warning 1 Choosing the wrong environment can be worse than no environment Enforcing a wrong technique is counterproductive Warning 2 Shun environments below CMM level 3 We cannot automate a nonexistent process A CASE tool or CASE workbench is fine

Metrics for the Implem. and Integ. Phase The five basic metrics, plus Complexity metrics Number of test cases, percentage which resulted in failure Total number of faults, by types

Air Gourmet Case Study: Impl. and Integ. Phase Complete C++ implementation, Complete Java implementation, at www.mhhe.com/engcs/compsci/schach

Challenges of the Implem. and Integration Phase Management issues are paramount here Appropriate CASE tools Test case planning Communicating changes to all personnel Deciding when to stop testing