Software System Integration

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Software Testing 3 Damian Gordon.
Chapter 29: Integration Jacob Harper. The Integration Approach The order of adding components to a system is crucial Benefits to careful integration –
Integration testing Satish Mishra
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
Integration and System Testing CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 29, 2007.
© 2005 by Prentice Hall Chapter 4 System Testing & Implementation Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George Joseph.
Unit 191 Introduction to Software Engineering The objective of this section is to introduce the subject of software engineering. When you have read this.
Illinois Institute of Technology
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 Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 11: Integration- and System Testing.
Introduction to Software Testing
Software Testing & Strategies
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Effective Methods for Software and Systems Integration
System Implementation. System Implementation and Seven major activities Coding Testing Installation Documentation Training Support Purpose To convert.
12.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
ECE 355: Software Engineering
Extreme Programming Software Development Written by Sanjay Kumar.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Overview Integration Testing Decomposition Based Integration
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Software Testing.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Understand Application Lifecycle Management
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Principles of Engineering System Design Dr T Asokan
Software Testing Process By: M. Muzaffar Hameed.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Chapter 2: Testing in Software Life Cycle MNN1063 System Testing and Evaluation.
Software Engineering Lecture # 1.
Chapter 7 Implementation. Implementation Approaches F Big bang –Code entire system and test in an unstructured manner F Top-down –Start by implementing.
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)
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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
Dillon: CSE470: SYSTEM INTEGRATION 1 Build Plan l Development or integration strategies l Decide the order in which components of the system will be developed.
1 Software Testing & Quality Assurance Lecture 15 Created by: Paulo Alencar Modified by: Frank Xu.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Software Engineering Zhang Shuang
Systems Development Life Cycle
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 7 System Integration Testing
Software Testing Strategies for building test group
Group mambers: Maira Naseer (BCS ).
Integration Testing.
Levels Of Testing and Special Tests
Software System Integration
Higher-Level Testing and Integration Testing
Software life cycle models
Chapter 10 – Software Testing
Baisc Of Software Testing
Integration Testing CS 4311
COSC 4506/ITEC 3506 Software Engineering
Software System Integration
Chapter 11: Integration- and System Testing
Software Testing Strategies
Presentation transcript:

Software System Integration Chapter 8 Software testing

Chapter 8 Software testing Overview What is system integration? Integration process description Integration testing System Integration Checklist Chapter 8 Software testing

By the end of this session, you will.. Understand the importance and role of system integration Understand the system integration process Understand what is top-down and bottom-up integration Understand what should be done before and during system integration Chapter 8 Software testing

What is system integration? System integration is the successful putting together of the various components, assemblies, and subsystems of a system and having them work together to perform what the system was intended to do. Successful system integration results from the proper implementation of project activities Deployment Requirements Design Coding and unit Testing Integration & test Acceptance Chapter 8 Software testing

Integration process planning Chapter 8 Software testing

System integration process (1) Integration is iterative and progressive, with each level of integration building from and on top of the previous level of integration Integration and testing are part of the development process and are used to ensure all the various pieces work together in performing their higher-level functions. Chapter 8 Software testing

System integration process (2) Chapter 8 Software testing

Chapter 8 Software testing Interfaces (1) Complete Knowledge of all interfaces is essential to any integration effort. This includes interfaces between : components, assemblies, subsystems, and also the system and other systems it needs to work with. Chapter 8 Software testing

Chapter 8 Software testing Interfaces (2) Chapter 8 Software testing

Complete system integration(1) Most systems consist of both hardware and software. These two are sometimes looked at as complete systems in and of themselves, but they cannot function independently of each other There are two other system elements: people and support systems that are also part of the complete system. For a system to be successfully implemented and used, all these elements must be in place and functioning correctly Chapter 8 Software testing

Complete system integration(2) Chapter 8 Software testing

Chapter 8 Software testing Integration testing Integration testing involves building a system from its components and testing it for problems that arise from component interactions. integration testing is nothing but checking the correctness of data flow or interfaces between two or more modules. Chapter 8 Software testing

Activity: real time Integration testing In Gmail, how to test the integration between “Compose” and “sent items” modules??? 1."compose"(one module) a mail and send it to some valid user id 2.go check weather the sent mail is there in the "sent items"(second module). if its there data flow is correct else data flow is wrong. Chapter 8 Software testing

Integration testing strategies: Several different strategies can be used for integration testing. Comparison criteria: fault localization effort needed (for stubs and drivers) degree of testing of modules achieved possibility for parallel development Chapter 8 Software testing

Integration testing strategies: Initial approach: “Big Bang”: In big bang Integration testing, individual modules of the programs are not integrated until every thing is ready. This approach is seen mostly in inexperienced programmers who rely on 'Run it and see' approach. Incremental integration Top-down integration: In this approach testing is conducted from main module to sub module. if the sub module is not developed a temporary program called STUB is used for simulate the sub module. Bottom-up integration: In this approach testing is conducted from sub module to main module, if the main module is not developed a temporary program called DRIVERS is used to simulate the main module. Chapter 8 Software testing

Chapter 8 Software testing Big Bang approach Non-incremental strategy Unit test each module in isolation Integrate as a whole Chapter 8 Software testing

Example: Big Bang integration test A test B test C test A,B, C, D E, F, G test D test E test F test G Chapter 8 Software testing

Chapter 8 Software testing Big Bang approach Advantages Convenient for small systems Disadvantages Integration testing can only begin when all modules are ready Fault localization difficult Easy to miss interface faults Chapter 8 Software testing

Top-down Integration Algorithm Use Main control module as a test driver and substitute all modules that are directly subordinate to it by stubs. Depending on the integration approach selected (depth first or breadth first), choose a stub and replace it by a real module. Tests are conducted after replacement of a stub by a real module. While there exist stubs in the system, go to step 2(loop) Stop when the whole system structure is built and no stubs remain. Chapter 8 Software testing

Example: Top down Integration Chapter 8 Software testing

Top-down Integration testing approach Advantages Fault localization easier Few or no drivers needed Possibility to obtain an early prototype Different order of testing/implementation possible Major design flaws found first in logic modules on top of the hierarchy Disadvantages Need lot of stubs / mock objects Potentially reusable modules (in bottom of the hierarchy) can be inadequately tested Chapter 8 Software testing

Bottom-up Integration Algorithm Construct drivers for low level modules. Execute and test each driver separately. Remove drivers and combine modules moving upward into clusters that perform a specific software sub- function. When the main module is reached go to 5) Construct a driver per cluster. Go to 2) Stop when the whole system structure is built and no drivers remain. Chapter 8 Software testing

Example: Bottom-up Integration Chapter 8 Software testing

Bottom-up Integration Advantages Fault localization easier (than big-bang) No need for stubs / fewer mock objects Logic modules tested thoroughly Testing can be in parallel with implementation Disadvantages Need drivers High-level modules (that relate to the solution logic) tested in the last (and least) No concept of early skeletal system Chapter 8 Software testing

System integration checklist Before starting Do your test plans include and support integration efforts? Does your development plan allocate adequate time and resources for system integration efforts, including rework time? Are the interfaces between components, assemblies, subsystems, and systems defined in adequate detail? Will hardware be available for testing software during integration? Is there a contingency plan if the schedule slips and if the integration schedule is compressed? Are all elements of the system included in the integration plan? Is all documentation current and available for reference? Chapter 8 Software testing

System integration checklist During integration (1) Is there an efficient rework cycle in place to fix problems found during integration testing? Are “fixed” modules or components integrated and retested at all levels of integration up to the level where the problem was found? Is the people element (operators, maintainers, logisticians, trainers, etc.) being prepared to work with the system when it is deployed? Is the support systems element (logistics, maintenance, training, etc.) being prepared to support the new system when it is deployed? Are you following an iterative, progressive integration process? Are experienced integrators involved with the integration? Chapter 8 Software testing

System integration checklist During integration (2) Are area/subject matter experts involved with the integration? Is adequate time being allowed for integration, testing, rework, reintegration, and retesting? Are all necessary resources being made available for integration? Is adequate testing being performed on integrated units (assemblies, subsystems, elements, system) to ensure that there are no surprises during acceptance testing? Are you updating documentation during rework? Are integration and system test errors being traced back to requirements and design? And if so, are the requirements and design being updated? Chapter 8 Software testing

Chapter 8 Software testing References http://www.stsc.hill.af.mil/resources/tech_docs/gsam4/chap14.pdf Guide to Software Engineering Body of Knowledge, especially Appendix D: http://www.swebok.org NASA Systems Engineering Handbook: http://ldcm.gsfc.nasa.gov/library/library.htm Software Engineering Institute: www.sei.cmu.edu System Engineering Fundamentals, 2001, Defense Acquisition University, download at: www.dau.mil/pubs/gdbks/sys_eng_fund.asp Chapter 8 Software testing