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

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

Automatic Memory Management Noam Rinetzky Schreiber 123A /seminar/seminar1415a.html.
Testing and Quality Assurance
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Background for “KISS: Keep It Simple and Sequential” cs264 Ras Bodik spring 2005.
CHESS: A Systematic Testing Tool for Concurrent Software CSCI6900 George.
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
(Quickly) Testing the Tester via Path Coverage Alex Groce Oregon State University (formerly NASA/JPL Laboratory for Reliable Software)
E-commerce Project Erik Zeitler Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server.
Intro to Threading CS221 – 4/20/09. What we’ll cover today Finish the DOTS program Introduction to threads and multi-threading.
Pexxxx White Box Test Generation for
Debugging CPSC 315 – Programming Studio Fall 2008.
An Evaluation of BLAST John Gallagher CS4117. Overview BLAST incorporates new, fascinating and complex technology. The engine and external components.
CS 206 Introduction to Computer Science II 10 / 14 / 2009 Instructor: Michael Eckmann.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
CS 206 Introduction to Computer Science II 02 / 25 / 2009 Instructor: Michael Eckmann.
CS211: Course Overview George Mason University. Today’s topics Go over the syllabus Go over resources – Marmoset – Piazza – Textbook Highlight important.
Prof. A. Taleb-Bendiab Room 605 A. Taleb-Bendiab, Module: Research Methods,
1 Welcome to CS 362 Applied Software Engineering Dr. Alex Groce (KEC 3067) Testing, debugging, running programs Design for testability Implementation (actual.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
Separation of Concerns Tao Xie Peking University, China North Carolina State University, USA In collaboration with Nikolai Tillmann, Peli de Halleux, Wolfram.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 15, 2011.
Software Testing CS 121 “Ordering Chaos” “Mike” Michael A. Erlinger
DySy: Dynamic Symbolic Execution for Invariant Inference.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Static program checking and verification Slides: Based.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Phoenix Software Projects Larry Beaty © 2007 Larry Beaty. Copying and distribution of this document is permitted in any medium, provided this notice is.
Software Specification and Design Sirisin Kongsilp & James Brucker.
Objected Oriented Programming & Design JAVA Shishir Gupta (704) (704)
@DNNCon Don’t forget to include #DNNCon in your tweets! Effective Unit Testing for DNN James McKee Solutions Developer / Enterprise
Software testing Main issues: There are a great many testing techniques Often, only the final code is tested.
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 28, 2008.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 9, 2010.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 16, 2010.
11/09/02(c) 2002 Bo Sanden, Colorado Tech.1 OO Testing.
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
CS 206 Introduction to Computer Science II 02 / 23 / 2009 Instructor: Michael Eckmann.
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
Object Oriented Software Development
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
Week81 APCS-AB: Java Unit Testing Information today from “Unit Testing in BlueJ” October 28, 2005.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
JUnit Don Braffitt Updated: 10-Jun-2011.
Test Stubs... getting the world under control. TDD of State Pattern To implement GammaTown requirements I CS, AUHenrik Bærbak Christensen2.
Tao Xie (North Carolina State University) Nikolai Tillmann, Peli de Halleux, Wolfram Schulte (Microsoft Research)
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 30, 2011.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
CAPP: Change-Aware Preemption Prioritization Vilas Jagannath, Qingzhou Luo, Darko Marinov Sep 6 th 2011.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
Cs498dm Software Testing Darko Marinov January 27, 2009.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 7, 2010.
Coupling-based Criteria for Integration Testing Journal of Software Testing, Verification, and Analysis, 8(3): , September 1998, Jenny Jin and Jeff.
Week 6 MondayTuesdayWednesdayThursdayFriday Testing III Reading due Group meetings Testing IVSection ZFR due ZFR demos Progress report due Readings out.
Lecture IX: Testing Web Services with Mocking CS 4593 Cloud-Oriented Big Data and Software Engineering.
Detecting Assumptions on Deterministic Implementations of Non-deterministic Specifications August Shi, Alex Gyori, Owolabi Legunsen, Darko Marinov 4/12/2016.
Notices Assn 2 is due tomorrow, 7pm. Moodle quiz next week – written in the lab as before. Everything up to and including today’s lecture: Big Topics are.
Cs498dm Software Testing Darko Marinov January 24, 2012.
CSE 374 Programming Concepts & Tools
CS527: (Advanced) Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 25, 2011.
Code Contracts and Pex Peli de Halleux, Nikolai Tillmann
CSCE 315 – Programming Studio, Fall 2017 Tanzir Ahmed
Objects First with Java A Practical Introduction using BlueJ
Objects First with Java A Practical Introduction using BlueJ
Darko Marinov February 5, 2009
Presentation transcript:

CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 22, 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 –Model-based testing: Spec Explorer –Test assertions: Orstra –Today: mock-based testing: Moles Project proposals due on Sep 27 (week-!) –Your project can be something we didn’t cover

Next Week Project proposals (due 9/27) –If we didn’t talk ( /Skype/in person), schedule a meeting with me –Create a Wiki page (low overhead but helps in keeping track) Paper reports (due 9/29) –Choose one paper, ideally related to your project You’re welcome to discuss your choice with me –Write a four-bullet report on that paper

Paper Today Moles: Tool-Assisted Environment Isolation with Closures Jonathan de Halleux and Nikolai Tillmann (TOOLS 2010)Moles: Tool-Assisted Environment Isolation with Closures Follows: one-slide overview, one empty slide, discussion (project ideas and questions)

Paper Overview Problem –“Stub out” code that your unit under test depends on: can use mocking for OO tests –Mocking is hard(er) without interfaces Solution –Moles –Use instrumentation to add lambdas/delegates Evaluation –Testing SharePoint Foundation –Achieved full code coverage

Basic Understanding? Do we all agree WHAT and WHY this does? Is there any other way to write the code in figure 3 and still get the same results.

Discussion (1) Are there any mock-based testing tools for Java? Using these tools to assist us to write unit test cases for some programs. [YL] –Is it possible to implement this for Java? [JT] Integrated automated assertion generation with mock-based test cases. [YL] Does this tool promote bad coding habits? Shouldn't code that is non deterministic be heavily factored out? [SB] –When to use Moles (non-determinism)? [SO] –Isolating a unit is always a good idea? [FS]

Discussion (2) use run-time data (from a previous run) to determine what the values should be? [SB] a simpler approach that just generates arbitrary data still work with PEX? [DeG] any potential disadvantages to using mocking to isolate tests by reaching inside the behavior of the method being tested? Could this miss bugs or overspecify tests? [DwG] In multi-threaded applications under test to isolate the scheduler, Moles + Chess. [FS] –extend Moles for multithreaded code [CM]

Discussion (3) automatically detecting [what to mock] [SO] –simplify writing models by a skilled developer[AD] how to guarantee a correct [model]? [FS] using Moles and SpecExplorer together[DeG] Moles to have behavior more similar to other mocking frameworks like EasyMock [DwG] (something missing or different?) could this be used in development (not just testing) to further customize third-party software. E.g., add more possible return values to a sealed class's method. [JT]

Discussion (4) completely eliminate the code-injection and simply override all function calls, by simply changing the call/jmp addresses? [AY] integrate Moles with some other more standard mock testing framework [KN] Support for other unit testing frameworks [AK] determine if [detouring] could've been avoided if a better design was used [AK] Are there methods or classes that can not be mocked/delegated using Moles? [AK] Support for VB.NET or.NET 4.0? [AD]

Discussion (5) Extend this to other languages like Java, C/C++ [AY] To what extent are tools like Moles used outside of academia? [CM]