Off the-shelf components (cots)

11,419 views 22 slides Dec 03, 2013
Slide 1
Slide 1 of 22
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22

About This Presentation

Off the-shelf components (cots)


Slide Content

Testing off the shelf Components Dr. Himanshu Hora SRMS College of Engineering & Technology Bareilly (INDIA)

Outline : Introduction to COTS components Advantages of COTS components Challenges in testing COTS components Testing types of COTS components References

Introduction: What is Component Based Software Engineering (CBSE)? Idea to develop software systems by selecting appropriate off-the-shelf components and then assemble them with a well-defined software architecture. CBSE has three major functions: Developing software from prefabricated, reusable parts. The ability to use those parts in other applications. Easily maintaining and customizing those parts to produce new functions and features.

What is a COTS component: What is a Commercial Off the shelf (COTS) component: Independent and replaceable part of a system that fulfills a clear function Works in the context of a well defined architecture A component communicates with other components by its interfaces Developed by different developers, using different languages and different platforms

Contd …. Component repository Component 1 Component 2 Component n Software system select assemble

Advantages of COTS: Development cost is reduced Development time is reduced Complex systems can be built by reusing pre-existing components Testing effort is reduced

Testing Components: Challenges  COTS is a Black Box Lack of Functional and Technical Requirements  The Level of Quality is Unknown Unknown Development Processes and Methods Compatibility Issues Uncertain Upgrade Schedules and Quality Difficulty in Regression Testing and Test Automation Interoperability and Integration Issues

Testing techniques: Black-box component testing System-level fault injection Operational system testing Software Wrapping Interface propagation Analysis

Black box Testing: To understand the behavior of a component, various inputs are executed and outputs are analyzed To catch all types of errors all possible combinations of input values should be executed To make testing feasible, test cases are selected randomly from test case space

Contd….

Fault Injection: Component Fault simulation tool Fault simulation tool Erroneous or malicious input Exceptions, No response request

A technique for improving the coverage of a test by introducing faults to test code paths Fault propagate through to an observable failure follows a well defined cycle When executed, a fault may cause an error, which is an invalid state within a system boundary An error may cause further errors within the system boundary Each new error acts as a fault When error states are observed at the system boundary they are termed failures This is termed the  fault-error-failure cycle  Contd ….

Contd ….

Operational system testing: complements system-level fault injection System is operated with random inputs (valid and invalid inputs) Provides more accurate assessment of COTS quality A key operational testing feature is error detection, which ensures correct functional implementation Operational testing allows component interaction

Software Wrapping : Component Input output Input wrapper Output wrapper

Wrapper:  generally refers to a type of packaging, such as a flat sheet to enclose an object It is a piece of code that one builds to isolate the underlying components from other components of the system Glue: A glue component provides the functionality to combine different components Contd ….

Interface propagation Analysis: COTS Component 1 COTS Component 2 Fault Injector Modify input, call correct method. Call correct method, modify output .

Interface Propagation Analysis is used by injecting faults at one component This is done at component integration level A known faulty input is injected using fault injector into the system Components effected by this input are observed (how they handle the faulty input) Contd ….

Refrences : http://www.cigital.com/presentations/zurich98/sld087.htm http://my.safaribooksonline.com/book/software-engineering-and-development/software-testing/0201325640/testing-interactions/ch06lev1sec4 http://my.safaribooksonline.com/book/software-engineering-and-development/software-testing/0201325640/testing-interactions/ch06lev1sec4

Thank You Dr. Himanshu Hora SRMS College of Engineering & Technology Bareilly (INDIA)