240 likes | 725 Views
Software System Integration. Overview. What is system integration ? Integration process description Integration testing System Integration Checklist. By the end of this session, you will. Understand the importance and role of system integration Understand the system integration process
E N D
Software System Integration 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
Requirements Design Coding and unit Testing Integration & test Acceptance Deployment 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 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
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
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
Integration testing • Integration testing involves building a system from its components and testing it for problems that arise from component interactions. • Initial approach: “Big Bang” • Incremental integration • Top-down integration • Bottom-up integration • Sandwich integration Chapter 8 Software testing
Top-down Integration AlgorithmDevelops the skeleton of the system and populate it with components. • 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
Top-down IntegrationWhat is a stub? • It is a test module that replaces a called module and that has exactly the same interface. Stub A Stub D Stub B Stub C • - Combine B and C - Display a trace message • Return a value from a table (or external file) - Display passed perameter Chapter 8 Software testing
Bottom-up Integration Algorithm Integrates components at the lowest levels then adds functional components when going to the upper levels. • 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
Bottom-up integrationWhat is a driver? • A driver is a test module that replaces a real calling module and that has exactly the same interface. Driver A Driver D Driver B Driver C • - Send known parameter • Call real module • display parameter • Call real module • Display parameter - Invoke subordinate - Send known parameter - Call real module Chapter 8 Software testing
System integration checklistBefore 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 checklistDuring 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 checklistDuring 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
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