COTS testing Tor Stålhane.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Testing Relational Database
Defect testing Objectives
Unit Testing in the OO Context(Chapter 19-Roger P)
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
COTS Testing. Diff. With in-house components  Interface (pre and post conditions) are not clearly specified.  No Arch. and code.  Black boxes to component.
Testing and Debugging CS221 – 2/13/09. Airline Program.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
System/Software Testing
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
TESTING.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Threading Models in Visual Basic Language Student Name: Danyu Xu Student ID:98044.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
From Use Cases to Test Cases 1. A Tester’s Perspective  Without use cases testers will approach the system to be tested as a “black box”. “What, exactly,
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Software Construction Lecture 18 Software Testing.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Outsourcing, subcontracting and COTS Tor Stålhane.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
Advanced Higher Computing Science
COTS testing Torbjørn Skramstad.
Subject Name: Software Testing Subject Code: 10CS842 Prepared By:
Software Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
7. Modular and structured design
SLC/VER1.0/OS CONCEPTS/OCT'99
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Testing Tutorial 7.
Software Testing.
John D. McGregor Session 9 Testing Vocabulary
Approaches to ---Testing Software
Testing and Debugging PPT By :Dr. R. Mall.
Chapter ? Quality Assessment
Advanced OS Concepts (For OCR)
Object-oriented software testing
System Design and Modeling
Chapter 8 – Software Testing
Design Patterns Damian Gordon.
Recall The Team Skills Analyzing the Problem
Software engineering – 1
Some Simple Definitions for Testing
John D. McGregor Session 9 Testing Vocabulary
COTS testing Tor Stålhane.
CHAPTER 4 Test Design Techniques
Chapter 2: Database System Concepts and Architecture
John D. McGregor Session 9 Testing Vocabulary
Software Quality Engineering
Software testing strategies 2
Introduction to Software Testing
Chapter 24 Testing Object-Oriented Applications
Verification and Validation Unit Testing
Software testing.
Chapter 19 Testing Object-Oriented Applications
CS240: Advanced Programming Concepts
Analysis models and design models
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Verification, Validation, and Acceptance Testing
Chapter 19 Testing Object-Oriented Applications
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Chapter 5 Architectural Design.
PSS0 Configuration Management,
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

COTS testing Tor Stålhane

Some used approaches Component meta-data approach. Retro-components approach. Built-in test (BIT) approach. The STECC strategy. COTS

What is Meta-data Meta-data are any data related to a component that is not code. Commonly used meta-data are for instance: State diagrams Quality of Service information Pseudo code and algorithms Test logs – what has been tested? Usage patterns – how has the component been used up till now?

Comments on Meta-data Meta-data can take up a considerable amount of storage. Thus, they are An integrated part of the component Stored separately and have to be down-loaded when needed.

Testing info. done by provider Component meta-data – 1 Component Binary code Call graphs, Testing info. done by provider Metadata

Component meta-data – 2 server Component functionality Meta DB Metadata req Metadata

Assessment based on meta-data Round trip path tests based on state diagrams Functional tests based on algorithms or pseudo code Tests relevance assessment based on test logs

Retrospectors A retrospector is a tool that records the testing and execution history of a component. The information is stored as meta-data. A retro-component is a software component with a retrospector.

Retro-components approach server functionality Meta DB Metadata req and test data Metadata

Using the retrospectors By collecting usage info we have a better basis for defect removal and testing For COTS component users, the retrospector will give important info on How the component was testes – e.g. instead of a test log How the component has been used by others. This will tell us whether we are going to use the componet in a new way => high risk

Built-In Test – BIT We will focus on BIT – RTT (Run Time Testability). We need two sets of tests: In the component, to test that its environment behaves as expected In the component’s clients, to test that the component implements the semantics that its clients have been developed to expect

Testing the component The test consists of the following steps: Bring the component to the starting state for the test Run the test Check that the results are as expected final state is as expected

BIT-description for a gearbox

Selecting tests We need to consider two points: The quality of the test – the more comprehensive the better. Unfortunately, more comprehensive => larger The size of the test – the faster the better. Unfortunately, faster => smaller The solution is to have several sets of tests that are run at different occasions.

Test weight configuration

BIT architecture – 1 We have the following components: The component, with one or more interfaces and implementation of functionality BIT-RTT provides support for the testing External tester – runs the tests needed Handler – takes care of errors, exceptions, fail-safe behavior etc. Constructor – initialization of components such as external testers and handlers

BIT architecture – 2

BIT dead-lock testing

Disadvantages of BIT Static nature. Generally do not ensure that tests are conducted as required by the component user The component provider makes some assumptions concerning the requirements of the component user, which again might be wrong or inaccurate.

What is STECC STECC stands for “Self TEsting Cots Components”. The method has much in common with BIT. The main difference is that BIT is static – we rerun one or more already defined tests. STECC is dynamic – we generate new tests based on a description. We may also interact with the tester.

STECC strategy Server query functionality Meta DB Metadata Req. Tester Test generator

Benefits of STECC The STECC addresses the needs of the component provider and the component user The COTS provider might not want to disclose information, in particular source code The COTS user might require this information for performing adequate and necessary testing Existing approaches, such as BIT, do not appropriately tackle such a situation

Assessing COTS – 1 When considering a candidate component, developers need to ask three key questions: Does the component meet the developer’s needs? Is the quality of the component high enough? What impact will the component have on the system? It is practical to consider the answers to these questions for several relevant scenarios

Assessing COTS – 2

Black box test reduction using Input-output Analysis Random Testing is not complete. To perform complete functional testing, the number of test cases can be reduced by Input-output Analysis. We can indentify I/O relationships by using static analysis or execution analysis of program.

Test reduction using Orthogonal Array Testing Used when the number of input parameters is small and the values that each of the parameters may take are clearly bounded

L9 orthogonal array One input at a time: (1,1,1,1), (2,1,1,1),…(1,1,1,3). Finds ”single mode faults”, but not faults when there exist logical relations between the variables Exhaustive testing: 34 = 81 tests L9 orthogonal: see table to the right. Test strategy: Detect and isolate all single mode errors Detect all double mode errors (specific levels of two parameters occur together) Multimode errors: some multimode errors can be found by L9 orthogonal array testing

Final test set