Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.

Slides:



Advertisements
Similar presentations
Analyzing Regression Test Selection Techniques
Advertisements

Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
White Box and Black Box Testing Tor Stålhane. What is White Box testing White box testing is testing where we use the info available from the code of.
Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
April 1, R McFadyen1 A Traditional Software Development Process Unit test Integration test System test Detailed design Architectural design.
Nov R McFadyen1 A Traditional Software Development Process Unit test Integration test System test Detailed design Architectural design Analysis.
Software engineering for real-time systems
Chapter 17 Code Review, Test Data, and Code Comparison.
1 Software Testing and Quality Assurance Lecture 14 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Path testing Path testing is a “design structural testing” in that it is based on detailed design & the source code of the program to be tested. The methodology.
Test Design Techniques
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
System/Software Testing
Software Quality Assurance and Testing prof. A. C. (Alex) Telea Course description.
Software testing techniques Software testing techniques Testing based on specifications Presentation on the seminar Kaunas University of Technology.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CPIS 357 Software Quality & Testing
Introduction Telerik Software Academy Software Quality Assurance.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Chapter 13: Implementation Phase 13.3 Good Programming Practice 13.6 Module Test Case Selection 13.7 Black-Box Module-Testing Techniques 13.8 Glass-Box.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Coverage – “Systematic” Testing Chapter 20. Dividing the input space for failure search Testing requires selecting inputs to try on the program, but how.
Introduction to Software Testing
Coverage Literature of software testing is primarily concerned with various notions of coverage Four basic kinds of coverage: Graph coverage Logic coverage.
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
1 Software Testing. 2 Path Testing 3 Structural Testing Also known as glass box, structural, clear box and white box testing. A software testing technique.
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
Test Coverage CS-300 Fall 2005 Supreeth Venkataraman.
Software Engineering 2 Software Testing Claire Lohr pp 413 Presented By: Feras Batarseh.
Black-box Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Construction Lecture 18 Software Testing.
Testing Techniques Software Testing Module ( ) Dr. Samer Hanna.
1 Program Testing (Lecture 14) Prof. R. Mall Dept. of CSE, IIT, Kharagpur.
White Box and Black Box Testing
Black Box Testing : The technique of testing without having any knowledge of the interior workings of the application is Black Box testing. The tester.
CSC 480 Software Engineering Testing - I. Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Software Engineering.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
White Box Testing Arun Lakhotia University of Southwestern Louisiana P.O. Box Lafayette, LA 70504, USA
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Thomas L. Gilchrist Testing Basics Set 3: Testing Strategies By Tom Gilchrist Jan 2009.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Dynamic Testing.
Rigorous Testing by Merging Structural and Behavioral UML Representations Presented by Chin-Yi Tsai.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Dynamic White-Box Testing What is code coverage? What are the different types of code coverage? How to derive test cases from control flows?
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
CX Introduction to Web Programming Testing.
WHITEBOX TESTING APPROACH
White-Box Testing.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
White-Box Testing.
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
CSE403 Software Engineering Autumn 2000 More Testing
Automated test.
Software Testing “If you can’t test it, you can’t design it”
Automated test.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun

White Box testing A software testing technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data. White box testing uses specific knowledge of programming code to examine outputs

White Box testing Control flow testing Data flow testing Branch testing Path testing Statement coverage Decision coverage

Black Box testing Black-box testing is a method of software testing that tests the functionality of an application as opposed to its internal structures or workings (see white-box testing). This method of test can be applied to all levels of software testing: unit, integration, system and acceptance. It typically comprises most if not all testing at higher levels, but can also dominate unit testing as well.

Black Box testing Decision table testing All-pairs testing State transition tables Equivalence partitioning Boundary value analysis Control flow testing

Adjective Sufficient testing requires both black- and white- box techniques. Although both tasks are similar in that they have the same objective, namely detecting faults within a program, often black- and white-box techniques are applied separately using different tools. The reason for this is the lack of techniques and tools integrating both tasks.

Object-oriented prototypes VS CSIG Both approach relies on a graphical representation combining both specification and implementation of the class under test. Especially in control flow graph of the implementation by special data flow edges. However, the major different is that CSIG can construction process can be automated.

Benefits 1. The tester has only to be familiar with the concepts underlying one technique and needs training only for one tool. 2. Less maintenance effort is required, since only one tool has to be maintained. 3. Testing can be carried out more efficiently, since an integrated technique can generate test cases covering both the specification and the source code at the same time.

CSIG demonstration Edges Intra- metho control and data flow edges Inter-method control and data flow edges CCFG frame edges

Step 1: Generating method implementation graphs The first step consists of generating a control flow graph for each method based on its implementation. A control flow graph consists of nodes, representing statements, and edges, representing control flow among the statements. Moreover, the generated control flow graph can be augmented with data flow information for data flow testing.

Step 2: Generating a prototype for each specified method

Prototype of a transition if (source) if (guard) action; else throw new ErrorStateException();

Combine

CSIG construction cont'd step 3- Generating method specification graphs Step 4- Generating a CCFG frame Step 5- Inserting the method graphs into a CCFG frame Step 6- Adding data flow edges for black-box testing ▫The identification of def-use pairs for black-box testing can be carried out in 9 steps

Tool support - Sample test process cont’d

Tool support - Using CSIGs for regression testing Objective - provide confidence that modifications have the intended effect and do not affect other unchanged parts of the program. selective regression testing - select those test cases from a given test suite covering changed parts of the program

Tool support - Using CSIGs for regression testing cont’d selective regression testing technique proposed by Rothermel et al. [21] ▫main idea - compare two versions of a class and analyze the changes between these versions In the original approach, class control flow graphs(CCFG) are used to compare the two version. ▫CCFG does not consider specification changes, we have adjusted their selection algorithm to be applicable to CSIGs

Tool support - Sample test process 1. Enter the specification of the class to be tested 2. Generation of executable test oracles 3. CSIG of the class is generated 4. User enters test cases needed for testing first version of the class. 5.Entered test cases are executed and results are compared to those obtained by the test oracle. The tool also determines adequacy of the entered test cases

Tool support - Sample test process cont’d 6. Two modifications are made to the class. first modification concerns its implementation other modification concerns the specification 7. An executable test oracle and the CSIG are generated 8. The two CSIGs are compared using the modified selection algorithm 9. The test cases selected are executed.

Conclusions Contrary to existing representation of classes, a CSIG is not restricted to the specification or implementation of a class.