CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 15, 2011.

Slides:



Advertisements
Similar presentations
Thursday, November 1, 2001(c) 2001 Ibrahim K. El-Far. All rights reserved.1 Enjoying the Perks of Model-based Testing Ibrahim K. El-Far Florida Institute.
Advertisements

.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
© SMARTESTING 2011 – This document is the property of Smartesting. It may not be reproduced in whole or in part Cliquez pour modifier le style du titre.
MBT User Conference 2011 Kunal Chopra Rafael Forsbach Huiyong Xiao.
Alan Shaffer, Mikhail Auguston, Cynthia Irvine, Tim Levin The 7th OOPSLA Workshop on Domain-Specific Modeling October 21-22, 2007 Toward a Security Domain.
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008.
ITEC200 Week02 Program Correctness and Efficiency.
Developing Verifiable Concurrent Software Tevfik Bultan Department of Computer Science University of California, Santa Barbara
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Advanced Modeling Model Based Test Generation and Abstract state machine Language Keith Stobie Test Architect XML Web Services Microsoft Corporation.
Terms: Test (Case) vs. Test Suite
Your Interactive Guide to the Digital World Discovering Computers 2012.
Introduction to High-Level Language Programming
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
TESTING.
Pragmatic Projects Prepared by Doug Glidden. Pragmatic Projects Pragmatic Teams Ubiquitous Automation Ruthless Testing It’s All Writing Great Expectations.
Texas A&M University Department of Computer Science Sameh S. Sharkawi
An Introduction to MBT  what, why and when 张 坚
Copyright © Siemens AG All rights reserved. Essential Criteria on MBT to Ensure Quality of Software in Industry PVR Murthy Andreas Ulrich Siemens.
Systematic Software Testing Using Test Abstractions Darko Marinov RIO Summer School Rio Cuarto, Argentina February 2011.
Korat: Automated Testing Based on Java Predicates
Chapter 1: A First Program Using C#. Programming Computer program – A set of instructions that tells a computer what to do – Also called software Software.
1 Welcome to CS 362 Applied Software Engineering What happens after (and during) design? Testing, debugging, maintaining programs Lessons for software.
Software Testing Course Shmuel Ur
Inferring Specifications to Detect Errors in Code Mana Taghdiri Presented by: Robert Seater MIT Computer Science & AI Lab.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Model Based Testing Group 7  Nishanth Chandradas ( )  George Stavrinides ( )  Jeyhan Hizli ( )  Talvinder Judge ( )  Saajan.
Microsoft Research, Foundations of Software EngineeringW. Grieskamp et. al: Behavioral Compositions in Symbolic Domains Behavioral Composition in Symbolic.
1 Generating FSMs from Abstract State Machines Wolfgang Grieskamp Yuri Gurevich Wolfram Schulte Margus Veanes Foundations of Software Engineering Microsoft.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
Testing 1 © Minder Chen, Source: Developing Web Applications with Microsoft Visual Basic.NET and Microsoft Visual C#.NET Testing Test plan objectives.
Code Contracts Parameterized Unit Tests Tao Xie. Example Unit Test Case = ? Outputs Expected Outputs Program + Test inputs Test Oracles 2 void addTest()
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 9, 2010.
CSC 395 – Software Engineering Lecture 10: Execution-based Testing –or– We can make it better than it was. Better...faster...agiler.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 16, 2010.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 22, 2011.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
A Technical Validation Module for the offline Auger-Lecce, 17 September 2009  Design  The SValidStore Module  Example  Scripting  Status.
Scott Kohn with Tammy Dahlgren, Tom Epperly, and Gary Kumfert Center for Applied Scientific Computing Lawrence Livermore National Laboratory October 2,
CIS 842: Specification and Verification of Reactive Systems Lecture 1: Course Overview Copyright 2001, Matt Dwyer, John Hatcliff, and Radu Iosif. The.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
 Programming - the process of creating computer programs.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 30, 2011.
UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Summary CGS 3460, Lecture 43 April 26, 2006 Hen-I Yang.
CS533 Concepts of Operating Systems Jonathan Walpole.
The Hashemite University Computer Engineering Department
R-Verify: Deep Checking of Embedded Code James Ezick † Donald Nguyen † Richard Lethin † Rick Pancoast* (†) Reservoir Labs (*) Lockheed Martin The Eleventh.
UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.
September 1999Compaq Computer CorporationSlide 1 of 16 Verification of cache-coherence protocols with TLA+ Homayoon Akhiani, Damien Doligez, Paul Harter,
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 7, 2010.
Random Test Generation of Unit Tests: Randoop Experience
UML Diagrams and Software Testing Instructor: Scott Kristjanson CMPT 135 SFU Surrey, Spring 2016.
Cs498dm Software Testing Darko Marinov January 24, 2012.
Redmond Protocols Plugfest 2016 Jinghui Zhang Office Interoperability Test Tools (Test Suites and Open Source Projects) Software Engineer Microsoft Corporation.
Introduction to Compiler Construction
Types for Programs and Proofs
CSE 374 Programming Concepts & Tools
Automated Pattern Based Mobile Testing
Assembler, Compiler, Interpreter
Transforming Automation through Artificial Intelligence
Assembler, Compiler, Interpreter
Software Verification, Validation, and Acceptance Testing
Presentation transcript:

CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 15, 2011

Schedule First few lectures to help you select projects –Shared memory: CHESS, IMUnit, CAPP –Message passing: Setac –Comment analysis: iComment –Regression testing: survey paper –Today: Model-based testing –Next week two papers 3 votes: generation/evaluation of test assertions 2 votes: mock-based testing, GUI testing 1 vote: genetic algorithms, concolic testing, web testing Your project can be something we don’t cover

Paper Today Model-based quality assurance of protocol documentation: tools and methodology Wolfgang Grieskamp, Nicolas Kicillof, Keith Stobie and Victor Braberman (STVR 2010)Model-based quality assurance of protocol documentation: tools and methodology Journal paper –Not too long –Otherwise, we prefer conference papers Follows: personal slides on models for data, slides on MBT, questions Thanks to Wolfgang Grieskamp for MBT slides

Developed Two Kinds of Test Abstractions Declarative: describe what inputs look like –Two kinds of languages used Declarative language for properties of desired inputs [SOFTMC’01, ASE’01, FME’02, OOPSLA’02, SAT’03, MIT’03, J-ASE’04, SAT’05, LDTA’06, ALLOY’06] –Properties written in the Alloy modeling language –Uses Alloy Analyzer for generation of test inputs Imperative language for properties of desired inputs [ISSTA’02, TR’03, MIT’04, ICSE-DEMO’07, STEP’07, FSE’07] –Properties written in implementation language (Java, C#…) –Developed Korat for generation of test inputs Imperative: describe how to generate inputs –More recent work on ASTGen [FSE’07]

Korat at Microsoft Research Korat implemented in the AsmLT test tool in Foundations of Software Engineering group –Predicates in Abstract state machine Language (AsmL), not in Java or C# –GUI for setting finitization and manipulating tests –Korat can be used stand-alone or to generate inputs for method sequences –Some extensions (Controlled) non-exhaustive generation Generation of complete tests from partial tests Library for faster generation for common datatypes

AsmLT/Korat at Microsoft Used by testers in several product groups Enabled finding numerous errors –XML tools XPath compiler (10 code errors, test-suite augmentation) Serialization (3 code errors, changing spec) –Web-service protocols WS-Policy (13 code errors, 6 problems in informal spec) WS-Routing (1 code error, 20 problems in informal spec) –Others SSLStream MSN Authentication … Errors found in –Important real-world applications –Code already well tested using best testing practices

Some Comments from Microsoft Positive comments on AsmLT and Korat –“So far our stateless AsmL models are pretty successful.” –“AsmL parameter generation tool is quite convenient and powerful.” Negative comments on AsmLT not Korat –“Most of our testers prefer to write as much C# as possible.” –“Very difficult to debug AsmL.” Result: new tool for C# (.NET) SpecExplorer Korat is Korat

Questions for Discussion (1) Are there any open source tools equivalent to Spec Explorer? [KN] How would this methodology change if applied to something but protocols? [JT] In the case where the number of internal unit- tests that need to be tested, is it worth it at all to do MBT? [AY] –What's the right time to apply model-based testing? [XW] What other selection strategies exist but transition coverage? [AK]

Questions for Discussion (2) … possible to scale up MBT to make it work on large-sized systems? [AD] Does model based testing scale down to small projects? [DeG] NLP … to aid in … converting technical documentation into testing reqs? [CM] –Is it possible to reverse engineer a spec from a program or test suite? [SB] test models generated automatically? [YL] How to totally/partially automate slicing? [FS] –How does the slicing affect the success? [SO]

Questions for Discussion (3) integrate with regression testing? [KB] generate a test that checks to see if an action disallowed by the model program is in fact disallowed by the System Under Test? [DwG] Can Spec be used to generate proprieties for Chess? [SB] How are bugs in the model treated? [AK] Is the modeling language enough to model various types of applications? [SO]