28
Software System Integration Chapter 8 Software testing 1

Software System Integration Chapter 8 Software testing1

Embed Size (px)

Citation preview

Page 1: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 1

Software System Integration

Page 2: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 2

Overview

What is system integration?

Integration process description

Integration testing

System Integration Checklist

Page 3: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 3

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

Page 4: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 4

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

DeploymentRequirements Design Coding and unit Testing

Integration & test Acceptance

Page 5: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 5

Integration process planning

Page 6: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 6

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.

Page 7: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 7

System integration process (2)

Page 8: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 8

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.

Page 9: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 9

Interfaces (2)

Page 10: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 10

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

Page 11: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 11

Complete system integration(2)

Page 12: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 12

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.

Page 13: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 13

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 id2.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.

Page 14: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 14

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

Page 15: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 15

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.

Page 16: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 16

Big Bang approach

Non-incremental strategy Unit test each module in isolation Integrate as a whole

Page 17: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing

Example: Big Bang integration

17

testA

testB

testF

testD

testE

testC

testG

testA,B, C, D

E, F, G

Page 18: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 18

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

Page 19: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 19

Top-down Integration Algorithm

1. Use Main control module as a test driver and substitute all modules that are directly subordinate to it by stubs.

2. Depending on the integration approach selected (depth first or breadth first), choose a stub and replace it by a real module.

3. Tests are conducted after replacement of a stub by a real module.

4. While there exist stubs in the system, go to step 2(loop)

5. Stop when the whole system structure is built and no stubs remain.

Page 20: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 20

Example: Top down Integration

Page 21: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 21

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

Page 22: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 22

Bottom-up Integration Algorithm

1. Construct drivers for low level modules.

2. Execute and test each driver separately.

3. 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)

4. Construct a driver per cluster. Go to 2)

5. Stop when the whole system structure is built and no drivers remain.

Page 23: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 23

Example: Bottom-up Integration

Page 24: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 24

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

Page 25: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 25

System integration checklistBefore starting

1. Do your test plans include and support integration efforts?

2. Does your development plan allocate adequate time and resources for system integration efforts, including rework time?

3. Are the interfaces between components, assemblies, subsystems, and systems defined in adequate detail?

4. Will hardware be available for testing software during integration?

5. Is there a contingency plan if the schedule slips and if the integration schedule is compressed?

6. Are all elements of the system included in the integration plan?

7. Is all documentation current and available for reference?

Page 26: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 26

System integration checklistDuring integration (1)

1. Is there an efficient rework cycle in place to fix problems found during integration testing?

2. Are “fixed” modules or components integrated and retested at all levels of integration up to the level where the problem was found?

3. Is the people element (operators, maintainers, logisticians, trainers, etc.) being prepared to work with the system when it is deployed?

4. Is the support systems element (logistics, maintenance, training, etc.) being prepared to support the new system when it is deployed?

5. Are you following an iterative, progressive integration process?

6. Are experienced integrators involved with the integration?

Page 27: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 27

System integration checklistDuring integration (2)

7. Are area/subject matter experts involved with the integration?

8. Is adequate time being allowed for integration, testing, rework, reintegration, and retesting?

9. Are all necessary resources being made available for integration?

10. Is adequate testing being performed on integrated units (assemblies, subsystems, elements, system) to ensure that there are no surprises during acceptance testing?

11. Are you updating documentation during rework?

12. Are integration and system test errors being traced back to requirements and design? And if so, are the requirements and design being updated?

Page 28: Software System Integration Chapter 8 Software testing1

Chapter 8 Software testing 28

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