CS451 Software Implementation and Integration Yugi Lee STB #555 (816) 235-5932 Note: This lecture was designed.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Slide 15.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent quality assurance.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Integration testing Satish Mishra
1 CODE TESTING Principles and Alternatives. 2 Testing - Basics goal - find errors –focus is the source code (executable system) –test team wants to achieve.
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.
Integration and System Testing CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 29, 2007.
Illinois Institute of Technology
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
CS 425/625 Software Engineering Software Testing
INTEGRATION TESTING ● After or during Unit Testing ● Putting modules together in a controlled way to incrementally build up the final system. ● Start with.
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 Engineering Oct-01 #17: Integration and Crypto Phil Gross.
Outline Types of errors Component Testing Testing Strategy
Software Testing & Strategies
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
SOFTWARE QUALITY ASSURANCE Maltepe University Faculty of Engineering SE 410.
Software System Integration
Terms: Test (Case) vs. Test Suite
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
System/Software Testing
ECE 355: Software Engineering
TESTING.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Integration testing l Tests complete systems or subsystems composed of integrated.
Implementation & Integration Phase Implementation, then integration: Implementation, then integration:  Each module is implemented by member of programmer.
Incell Phonium Processor Project Plan Document Dale Mansholt Aaron Drake Jon Scruggs Travis Svehla.
Software Testing.
ITEC 3220M Using and Designing Database Systems
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
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.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Moving into Implementation SYSTEMS ANALYSIS AND DESIGN, 6 TH EDITION DENNIS, WIXOM, AND ROTH © 2015 JOHN WILEY & SONS. ALL RIGHTS RESERVED.Roberta M. Roth.
Exploring an Open Source Automation Framework Implementation.
System Test Methods TESTTEME The Test Challenge Bottom Up Testing Strategy Integration Test System Test Types of Testing Unit Test = Code-based Testing.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Software Construction Lecture 18 Software Testing.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
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.
Software Testing Process By: M. Muzaffar Hameed.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
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)
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)
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
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.
CS 325: Software Engineering February 16, 2016 Designing a Design Class Diagram Design Class Diagrams DCD: Restaurant Example DCD: ATM Example Software.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Software Engineering Zhang Shuang
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Integration 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.
IMPLEMENTATION AND INTEGRATION PHASE
Chapter 11: Integration- and System Testing
Presentation transcript:

CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s Classical and Object-Oriented Software Engineering.

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

Implementation & 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 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 & 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 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 & Integration 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 & Integration 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 & 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 & Integration 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 & Integration 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 & 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 & Integration 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 & Integration Object-oriented implementation and integration –Almost always sandwich implementation and integration –Objects are integrated bottom-up –Other modules are integrated top-down

Management Issues 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. & 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)

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