Acknowledgments We thank our families, the whole Enterprise Systems Group and specially Prof. Richard Page for their help and support. We also thank the.

Slides:



Advertisements
Similar presentations
Automated Evaluation of Runtime Object States Against Model-Level States for State-Based Test Execution Frank(Weifeng) Xu, Gannon University Dianxiang.
Advertisements

Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Lab#1 (14/3/1431h) Introduction To java programming cs425
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Software Testing Using Model Program DESIGN BY HONG NGUYEN & SHAH RAZA Dec 05, 2005.
Effective systems development requires a team effort from stakeholders, users, managers, systems development specialists, and various support personnel,
For more Lectures and Notes Visit
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
1 Programming Languages Translation  Lecture Objectives:  Be able to list and explain five features of the Java programming language.  Be able to explain.
DECISION SUPPORT SYSTEM DEVELOPMENT
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Investigation and Analysis Chapter 12.
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To understand the structure of a C-language program. ❏ To write your first C.
Institute of Computing Jaca: a Reflective Fault Injection Tool based on Patterns Eliane Martins Cecilia Rubira Nelson Leme Institute of Computing State.
Introduction to Systems Analysis and Design
MS thesis/project ideas for MS students in the Department of Computer Science at the University of Minnesota Duluth suggestions by Dr Andrew Brooks, Heller.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
HADOOP ADMIN: Session -2
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
Overview of the Database Development Process
Overview of SQL Server Alka Arora.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Chapter 1 The Systems Development Environment
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
C HU H AI C OLLEGE O F H IGHER E DUCATION D EPARTMENT O F C OMPUTER S CIENCE Preparation of Final Year Project Report Bachelor of Science in Computer Science.
REUSE-Re-Engineering The Software Process By Venkat Praveen Medikonda.
EVALUATING PAPERS KMS quality- Impact on Competitive Advantage Proceedings of the 41 st Hawaii International Conference on System Sciences
BFTCloud: A Byzantine Fault Tolerance Framework for Voluntary-Resource Cloud Computing Yilei Zhang, Zibin Zheng, and Michael R. Lyu
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Requirements-based Test Generation for Functional Testing (© 2012 Professor W. Eric Wong, The University of Texas at Dallas) 1 W. Eric Wong Department.
Introduction to Software Testing Chapter 8.1 Building Testing Tools –Instrumentation Paul Ammann & Jeff Offutt
Software Testing and Quality Assurance Software Quality Assurance 1.
BLACK BOX TESTING K.KARTHIKEYAN. Black box testing technique Random testing Equivalence and partitioning testing Boundary value analysis State transition.
REAL TIME GPS TRACKING SYSTEM MSE PROJECT PHASE I PRESENTATION Bakor Kamal CIS 895.
Well-behaved objects Main concepts to be covered Testing Debugging Test automation Writing for maintainability Objects First with Java - A Practical.
Engineering 5895: Software Design 9/11/01Class Diagrams 1.
Design Patterns Gang Qian Department of Computer Science University of Central Oklahoma.
Research Methods in Human Computer Interaction Shahnewaz A. Jolly Instructor: Dr. Saul Greenberg 30th November,
14.1/21 Part 5: protection and security Protection mechanisms control access to a system by limiting the types of file access permitted to users. In addition,
CS 160: Software Engineering October 22 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Chair of Software Engineering Exercise Session 6: V & V Software Engineering Prof. Dr. Bertrand Meyer March–June 2007.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
CISC Machine Learning for Solving Systems Problems Presented by: Suman Chander B Dept of Computer & Information Sciences University of Delaware Automatic.
Working With Objects Tonga Institute of Higher Education.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
The Systems Development Environment Systems Analysis and Design II.
New Random Test Strategies for Automated Discovery of Faults & Fault Domains Mian Asbat Ahmad
Objects First With Java A Practical Introduction Using BlueJ Well-behaved objects 2.1.
Introduction to OOP CPS235: Introduction.
C HU H AI C OLLEGE O F H IGHER E DUCATION D EPARTMENT O F C OMPUTER S CIENCE Preparation of Final Year Project Report Bachelor of Science in Computer Science.
Redesigning Air Traffic Control: An Exercise in Software Design Daniel Jackson and John Chapin, MIT Lab for Computer Science Presented by: Jingming Zhang.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Wireless Network Management SANDEEP. Network Management Network management is a service that employs a variety of tools, applications, and devices to.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
TEMPLATE DESIGN © Crawling is the process of automatically exploring a web application to discover the states of the application.
Hands-On Microsoft Windows Server 2008 Chapter 7 Configuring and Managing Data Storage.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
TTCN-3 Testing and Test Control Notation Version 3.
Agenda Preliminaries Motivation and Research questions Exploring GLL
Introduction to Computer Science
An educational system for medical billers in training
COS 260 DAY 17 Tony Gauvin.
Introduction to the C Language
Sergiy Vilkomir January 20, 2012
COS 260 DAY 16 Tony Gauvin.
Software Engineering Experimentation
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
(Computer fundamental Lab)
Presentation transcript:

Acknowledgments We thank our families, the whole Enterprise Systems Group and specially Prof. Richard Page for their help and support. We also thank the York Doctoral Symposium (YDS) team who provided us the platform to present and share our research and get valuable feedback. Introduction Random testing is a black-box testing technique in which the Software/System Under Test (SUT) is executed against randomly selected test data. Test results obtained are compared either against the oracle defined, using SUT specifications in the form of assertions/contracts or exceptions defined by the programming language. Random Plus is a random testing that incorporate the technique of boundary values in random testing. Boundary values are the values on the start, end and middle of particular data type. For example for months in an year can be represented in integer from 1 to 12 and the border values for it can be -3, -2, -1, 0, 4, 5, 6, 13, 14, 15 etc. According to Chen at al., there are patterns of failure causing inputs across the input domain and they separated these pattern into point, block and strip patterns. Implementation of DSSR strategy The DSSR strategy is implemented in York Extensible Testing Infrastructure (YETI) tool. YETI is an automatic random testing tool developed in Java. It is an open source tool capable of testing both procedural and object-oriented software. Its language-agnostic meta model enables it to test programs written in multiple languages including Java, C#, JML and.Net. The core features of YETI includes easy extensibility for future growth, speed of up to one million calls per minute on java code, real time logging, real time GUI support, ability to test programs using multiple strategies and auto generation of test report at the end of the test session. Conclusions From the preliminary experiments it is concluded that DSSR strategy is up to 30% more effective in finding faults as compared to random testing. In the experiments DSSR strategy was not only consistent but also found faults that random testing was unable to detect. DSSR strategy takes the advantage of Random Plus by incorporating border values before starting the test but the addition of fault finding value and its neighbor values, at run time, to the interesting values list make it even more effective specially for programs that have block and strip fault patterns. On the other hand we also found that when the programs do not contain any fault patterns than DSSR strategy takes slightly more time to execute (up to 5%) the test cases which is obvious because of additional steps of adding the fault value and its neighboring values to the list of interesting values and later scanning the list for selection of the test values for executing test cases. Dirt Spot Sweeping Random Strategy Mian Asbat Ahmad, Manuel Oriol — Department of Computer Science, University of York, United Kingdom Literature cited I. Ciupa, B. Meyer, M. Oriol, and A. Pretschner, “Finding faults: Manual testing vs. random+ testing vs. user reports,” in Proceedings of the th International Symposium on Software Reliability Engineering, (Washington, DC, USA), pp. 157–166, IEEE Computer Society, T. Y. Chen, H. Leung, and I. K. Mak, “Adaptive random testing,” in Advances in Computer Science - ASIAN 2004 (M. Maher, ed.), vol of Lecture Notes in Computer Science, pp. 3156–3157, Springer Berlin / Heidelberg, B. Beizer, Software testing techniques (2nd ed.). New York,NY, USA: Van Nostrand Reinhold Co., M. A. Ahmad, “New strategies for automated random testing of programs.” November R. Hamlet, “Random testing,” in Encyclopedia of Software Engineering, pp. 970–978, Wiley, Fig. 1.Failure patterns across the input domain. For further information Please contact Mian on Dr. Manuel Oriol on For YETI tool visit Dirt Spot Sweeping Random strategy Dirt Spot Sweeping Random (DSSR) strategy is a new random test strategy developed during this study. DSSR strategy is the combination of pure random, random plus/boundary values, and the spot sweeping. Fig. 2. DSSR covering block and strip patterns. Working of DSSR strategy In the process the program continuously track the number of faults and once a fault is found in the SUT, the program not only copy the values of the test case but also copy its surrounding values to the variable list of interesting values. From the flowchart it is clear that if the fault finding value is of a primitive type then the strategy only add objects of that type to the list. Doing this increases size of the list of interesting values for testing thus providing more chances of finding faults. In Figure 3 DSSR strategy is explained with the help of flowchart. Pre-defined special values are added by random plus prior to testing but to sweep the failure pattern we need to add fault neighboring values at run time after a fault is found in the system. The following table shows the values that are added to the list of interesting values when a fault is found by the test value X while X can be int, double, float, long, byte, short, char and String. All values are converted to their respective types before addition to the list of interesting values. Fig. 3. Working Mechanism of DSSR Experimental Results For initial experiments we tested 10 classes from JDK and wrote 5 classes of our own. Results of the experiments showed that DSSR strategy is more reliable and found more faults than its predecessor Pure Random as showed in Following figures. Motivating Example The following java code further clarify the concept where DSSR strategy finds the available two faults in 2 MS whereas the pure random and random plus are unable to find the second fault. Reason for the success of DSSR strategy is that it adds the neighbour values of the first fault (98, 99, 100, 101, 102, 103, 104) to the list of interesting values after the fault is identified. Values from this list has more chances to be picked for new test cases and thus the second fault is found quickly by DSSR. On the other hand random strategy continue to test the program in traditional way. Purpose of DSSR strategy The main purpose of DSSR strategy is to improve the performance of random testing by finding maximum number of faults in minimum time. Future Work Initial results suggested that DSSR strategy is doing better than Pure Random but for concrete results one need to perform extensive testing. Experiments should cover project of different nature, therefore, to get more reliable results our next plan is to test 1000 classes from more than 100 projects of Qualitas Corpus, an independent database of open source Java project. public class Faulty { public void closer(int x, int y) { y = 20; int a [ ] = new int[10]; if ((x > 100) && (x < 102)) { a[11] = 22; } if (( x > 97 ) && ( x < 99)) { z= ( x + y )/0; }