Off the-shelf components (cots)


Published on

Off the-shelf components (cots)

Published in: Education, Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Off the-shelf components (cots)

  1. 1. Testing off the shelf Components Dr. Himanshu Hora SRMS College of Engineering & Technology Bareilly (INDIA)
  2. 2. Outline :  Introduction to COTS components  Advantages of COTS components  Challenges in testing COTS components  Testing types of COTS components  References
  3. 3. 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.
  4. 4. 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
  5. 5. Contd…. Component 1 Component repository select Component 2 Software system Component n assemble
  6. 6. 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
  7. 7. 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
  8. 8. Testing techniques:  Black-box component testing  System-level fault injection  Operational system testing  Software Wrapping  Interface propagation Analysis
  9. 9. 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
  10. 10. Contd….
  11. 11. Fault Injection: request Fault simulation tool Erroneous or malicious input Component Fault simulation tool Exceptions, No response
  12. 12. Contd….  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
  13. 13. Contd….
  14. 14. 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
  15. 15. Software Wrapping : Input wrapper Input Output wrapper Component output
  16. 16. Contd….  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
  17. 17. Interface propagation Analysis: COTS Component 1 Fault Injector  Modify input, call correct method.  Call correct method, modify output. COTS Component 2
  18. 18. Contd….  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)
  19. 19. Refrences:  tm  
  20. 20. Thank You Dr. Himanshu Hora SRMS College of Engineering & Technology Bareilly (INDIA)