So#ware Tes+ng. See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008.

Size: px
Start display at page:

Download "So#ware Tes+ng. See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008."

Transcription

1 So#ware Tes+ng See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008.

2 Tes+ng Most basic form of post- hoc SQA Helps define program func+onality Can be used as documenta+on (c.f. XP) Must ensure program is testable (c.f. PSS docs) Methods become callable Modules get looser coupling

3 Basic Terminology The system under test (SUT) can be of different types (procedural, reac+ve, etc.) A test case consists of a single input for the SUT A verdict is a judgment a#er a test case terminates pass/fail/warning/don t know An oracle is a method to produce verdicts A test suite is a set of test cases How much have we tested? coverage measures!

4 User Requirements Test cases Acceptance tes+ng So#ware Requirements Test cases System tes+ng Architecture Design Test cases Integra+on tes+ng Detailed design & Coding Test cases Unit Tes+ng The V model Integrates design and tes+ng Time 4

5 Structural Tes+ng (Glass or white box) An error must exist along a path If tests don t exercise that path then error can never be observed So iden+fy and exercise each path No loops finitely many paths good! Loops infinitely many paths bad! Loops + branches exponen+al growth in path numbers with loop depth very bad!!!!

6 Structural Tes+ng - Problems What about sins of omission? no path to go down! What about dead code is a path possible? How to avoid redundant tes+ng?

7 Condensa+on Graph Start Assignments1 Cond1 Assignments2 Cond2 Assignments4 Assignments3 Path analysis: 1&3, 1&4, 1&2&3, 1&2&4 etc Halt

8 Structural Tes+ng Requirements These are structural requirements on a test suite They ignore func+onality! Easy to define using graph theory Possible to automate genera+on by constraint solving Easy to measure coverage!

9 Graph Coverage A path is a sequence of nodes n 0,, n k in a (condensa+on) graph G, such that each adjacent node pair, (n i, n i+1 ) forms an edge in G. A test requirement tr(.) is a predicate on paths Node n ( p ) p has node n Edge e (p) p has edge e

10 Graph Coverage Defini5on: Given a set TR of test requirements for a graph criterion C, A test suite T sa+sfies C on graph G if, and only if for every test requirement tr(.) TR, there is at least one path p in G such that tr(p) is true (i.e. p sa+sfies tr(.))

11 Why so Formal? Answer: Some+mes coverage proper+es become very technical to define for efficiency reasons.

12 Structural Coverage Criteria (Amman and Offut, Chapter 2) 2.1. Node Coverage (NC) TR contains each reachable node in G Edge Coverage (EC) TR contains each reachable path of length Edge- Pair Coverage (EPC) TR contains each reachable path of length 2.

13 2.7. Complete Path Coverage (CPC) TR contains all paths in G Specified Path Coverage (SPC) TR contains a set S of test paths, where S is supplied as a parameter. Example. S contains paths that traverse every loop free path p in G and every loop in G both 0 and 1 +mes.

14 Func+onal Tes+ng (Black- box Tes+ng) Black- box = structure of code is invisible + Tests the specifica+on not the code + Insensi+ve to code refactoring - Hard to find test verdicts aka oracle problem - Hard to define coverage - Huge volume of tes+ng user profiles? - Use cases are an excellent source of tests

15 Random Tes+ng Generate input vectors (or sequences) at random, fire into system and observe. Easy or tricky to implement Low level data types e.g. Int easy High level data types e.g. graphs tricky High volume of test cases but is that good structural coverage? Good for low input dimension 1-5? But poor for high input dimension

16 Random Tes+ng Oracle step is difficult to automate without precise requirements Set up and tear down must also be considered Does random distribu+on match expected distribu+on? Are some data combina+ons meaningless? Data interdependencies and constraints! Example consider calendar combina+ons: Year/month/day/day of week 1961/02/29/Wednesday is this legal or not? Can try to filter out bad data but this can be very slow

17 k- wise tes+ng Some components have fixed input size k e.g. a method mymethod(x:string,y:char,z:int) We need test vectors of length k i.e. ( i 1,, i k ) Choose (say) C=10 input values V i = { v i 1,,v i c } for each 1 i k Test suite S k is all combina+ons of V 1,, V k Cartesian Product S = V 1 V k Test suite size S is then C k = 10 k Probably not feasible for S 10,000

18 Example Suppose k = 3, C = 2, then C k = 2 3 = 8 V 1 = { Sat, Sun } V 2 = { A, B } V 3 = { 1, 2 } S 3 = {(Sat, A, 1), (Sun, A, 1), (Sat, B, 1), (Sun, B, 1), (Sat, A, 2), (Sun, A, 2), (Sat, B, 2), (Sun, B, 2) } Clearly S 3 has size 8 In general S k has size C k which is exponen+al in k.

19 n- Wise Tes+ng for n k For 1 i k, let c i be a fixed value from V i An n- wise test is a vector ( i 1,, i k ) such that n elements are chosen from V 1,, V k and the rest are chosen from c 1,, c k. Let S n be the set of all n- wise tests.

20 Example: 1- wise tes+ng Suppose n = 1 and let c 1 = Sat, c 2 = A, c 3 = 1 V 1 = { Sat, Sun } V 2 = { A, B } V 3 = { 1, 2 } S 1 = {(Sat, A, 1), (Sun, A, 1), (Sat, B, 1), (Sat, A, 2) } Clearly S 1 has size k*(c- 1)+1 which is linear in k. So S 1 is small but has limited coverage.

21 Example: 2- wise tes+ng (aka all- pairs or pairwise tes)ng) Suppose n = 2 and c 1 = Sat, c 2 = A, c 3 = 1 V 1 = { Sat, Sun } V 2 = { A, B } V 3 = { 1, 2 } S 2 = {(Sat, A, 1), (Sun, A, 1), (Sat, B, 1), (Sun, B, 1) } (Sat, A, 2), (Sun, A, 2), (Sat, B, 2) } Clearly S 2 has size 7 which is not much smaller than S 3. In general S 2 is much smaller than S k. S 2 grows O(C 2 ), which is much slower than C k!

22 Why Pairwise Tes+ng? Bugs involving interac+ons between three or more parameters are progressively less common[2]. NASA database applica+on. 67 percent of the failures were triggered by only a single parameter value, 93 percent by two- way combina+ons, and 98 percent by three- way combina+ons [13]. 10 UNIX commands. Cohen et al. showed that the pairwise tests gave over 90 percent block coverage [9]. Medical so#ware devices. Only 3 of 109 failure reports indicated that more than two condi+ons were required to cause the failure [14].

23 Why Pairwise Tes+ng Browser and server. More than 70 percent of bugs were detected with two or fewer condi+ons (75 percent for browser and 70 percent for server) and approximately 90 percent of the bugs reported were detected with three or fewer condi+ons (95 percent for browser and 89 percent for server) [13]. User interface so#ware at Telcordia. Studies [8] showed that most field faults were caused by either incorrect single values or by an interac+on of pairs of values. Their code coverage study also indicated that pairwise coverage is sufficient for good code coverage. Established tools, e.g. PICT See

24 Test Cases from Use Cases Instan+ate a scenario with concrete data values, and expected results. Different flows lead to different use cases Sunny day and rainy day scenarios Use graph coverage to measure use case coverage Structured and easy to use Natural focus on most significant use cases Good approach to system and acceptance tes+ng, but may be difficult and unit and integra+on levels

25 UseCaseName: PurchaseTicket Precondi5on: The passenger is standing in front of +cket distributor and has sufficient money to purchase a +cket. Sequence: 1. The passenger selects the number of zones to be travelled, If the passenger presses mul+ple zone buxons, only the last buxon pressed is considered by the distributor. 2. The distributor displays the amount due 3. The passenger inserts money

26 4. The passenger selects a new zone before inser+ng sufficient money, the distributor returns all the coins and bills inserted by the passenger 5. If the passenger inserted more money than the amount due the distributor returns excess change. 6. The distributor issues +cket. 7. The passenger picks up the change and +cket.

27 TestCaseName: PurchaseTicket_SunnyDay Precondi5on: The passenger is standing in front of +cket distributor and has two 5 notes and 3 * 10 Cent coins Sequence: 1. The passenger presses in succession the zone buxons 2, 4, 1 and 2 2. The distributor should display in succession the fares , 0.75 and The passenger inserts a 5 note 4. The distributor returns 3*1 coins, 75Cent and a 2- zone +cket.

28 Postcondi5on The passenger has one 2- zone +cket We should also derive test cases that exercise rainy day scenarios (when something goes wrong) to test robustness.

29 Unit Tes+ng with JUnit Developed by the XP community 2002 Framework for automa+ng the execu+on of unit test for Java classes Write new test cases by subclassing the TestCase class Organise TestCases into TestSuites Automates tes+ng process Built around Command and Composite paxerns

30 Why use Junit? Junit +ghtly integrates development and tes+ng, supports the XP approach Allows you to write code faster while increasing quality (???) Can refactor code without worrying about correctness JUnit is simple. Easy as running the compiler on your code

31 JUnit tests check their own results (oracle step) and provide immediate feedback No manual comparison of expected with actual Simple visual feedback JUnit tests can be composed into a hierarchy of test suites Can run tests for any layer in the hierarchy Wri+ng JUnit tests is inexpensive No harder than wri+ng a method to exercise the code JUnit tests increase the stability of so#ware More tests = more stability

32 Junit tests are developer tests Tests fundamental building blocks of system Tests delivered with code as a cer+fied package Junit tests are wrixen in Java Seamless bond between test and code under test Test code can be refactored into so#ware code and vice- versa Data type compa+bility (float, double etc.) Junit is free

33 Junit Design A TestCase is a Command object A class of test methods subclasses TestCase A TestCase has public testxxx() methods To check expected with actual output invoke assert() method Use setup() and teardown() to prevent side effects between subsequent testxxx() calls

34 Test Run(TestResult) Test testname:string run(testresult) setup() teardown() runtest() TestSuite addtest() Run(TestResult) Test setup() teardown() run(testresult)

35 TestCase objects can be composed into TestSuite hierarchies. Automa+cally invoke all the testxxx() methods in each object A TestSuite is composed of TestCase instances or other TestSuite instances Nest to arbitrary depth Run whole TestSuite with a single pass/fail result Get your own installa+on instruc+ons

36 Wri+ng a Test Case Define a subclass of TestCase Override the setup() method to in+alise object(s) under test Op+onally override the teardown() method to release objects under test Define 1 or more public testxxx() methods hat exercise the object(s) under test and assert expected results

37 Import junit.framework.testcase Public class ShoppingCartTest extends TestCase{ Private ShoppingCart cart; Private Product book1; Protected void setup() { Cart = new ShoppingCart(); Book1 = new Product( mytitle, 50 ); Cart.addItem(book1) }

38 Protected void teardown() { //release objects under test here if necessary } Public void testempty() { Cart.empty(); // empty out cart assertequals(0,cart.getitemcount() ); }

39 Public void testadditem() { Product book2 = new Product( +tle2, 65 ); cart.additem(book2); double expectedbalance = book1.getprice() + book2.getprice(); assertequals(expectedbalance, cart.getbalance ()); assertequals(2, cart.getitemcount() ); }

40 Public void testremoveitem() throws productnotfoundexcep+on { Cart.removeItem(book1); assertequals(1, cart.getitemcount() ); } Public void testremoveitemnotincart() { try{ Product book3 = new Product( +tle3, 10 ); Cart.removeItem(book3); fail( should raise a ProductNotFoundExcep+on ); } Catch(ProductNotFoundExcep+on expected) { //passed the test! } } // of class ShoppingCartTest

Lecture 3. Black- box Tes3ng

Lecture 3. Black- box Tes3ng Lecture 3 Black- box Tes3ng Black- box Tes3ng Test cases are constructed without reference to the code structure + Can test the requirements not the code + Can overcome combinatorial explosions + Complementary

More information

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers

More information

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers

More information

Testing. CMSC 433 Programming Language Technologies and Paradigms Spring A Real Testing Example. Example (Black Box)?

Testing. CMSC 433 Programming Language Technologies and Paradigms Spring A Real Testing Example. Example (Black Box)? Testing CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Testing Feb. 15, 2007 Some slides adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Execute program on sample input

More information

Automa'c Test Genera'on

Automa'c Test Genera'on Automa'c Test Genera'on First, about Purify Paper about Purify (and PurifyPlus) posted How do you monitor reads and writes: insert statements before and a?er reads, writes in code can s'll be done with

More information

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques Software Testing in the textbook Software Testing Chapter 8 Introduction (Verification and Validation) 8.1 Development testing 8.2 Test-driven development 8.3 Release testing 8.4 User testing 1 2 Verification

More information

CISC327 - So*ware Quality Assurance. Lecture 13 Black Box Unit

CISC327 - So*ware Quality Assurance. Lecture 13 Black Box Unit CISC327 - So*ware Quality Assurance Lecture 13 Black Box Unit Tes@ng Black Box Unit Tes@ng Black box method tes@ng Test harnesses Role of code- level specifica@ons (asser@ons) Automa@ng black box unit

More information

Proofs about Programs

Proofs about Programs Proofs about Programs Program Verification (Rosen, Sections 5.5) TOPICS Program Correctness Preconditions & Postconditions Program Verification Assignment Statements Conditional Statements Loops Composition

More information

Introduction to JUnit. Data Structures and Algorithms for Language Processing

Introduction to JUnit. Data Structures and Algorithms for Language Processing Data Structures and Algorithms for Language Processing What is JUnit JUnit is a small, but powerful Java framework to create and execute automatic unit tests Unit testing is the test of a part of a program

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 8 Introduc

More information

Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2

Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2 Architectural Requirements Phase See Sommerville Chapters 11, 12, 13, 14, 18.2 1 Architectural Requirements Phase So7ware requirements concerned construc>on of a logical model Architectural requirements

More information

JUnit tes)ng. Elisa Turrini

JUnit tes)ng. Elisa Turrini JUnit tes)ng Elisa Turrini Automated Tes)ng Code that isn t tested doesn t work Code that isn t regression tested suffers from code rot (breaks eventually) If it is not automated it is not done! Boring

More information

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015 xtreme Programming (summary of Kent Beck s XP book) 1 Contents The software development problem The XP solution The JUnit testing framework 2 The Software Development Problem 3 Risk Examples delivery schedule

More information

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing Black Box Testing EEC 521: Software Engineering Software Testing Black-Box Testing Test-Driven Development Also known as specification-based testing Tester has access only to running code and the specification

More information

Learning- Based So/ware Tes2ng: a Tutorial. K. Meinke, F. Niu, M. Sindhu KTH Royal Ins2tute of Technology Stockholm, Sweden

Learning- Based So/ware Tes2ng: a Tutorial. K. Meinke, F. Niu, M. Sindhu KTH Royal Ins2tute of Technology Stockholm, Sweden Learning- Based So/ware Tes2ng: a Tutorial K. Meinke, F. Niu, M. Sindhu KTH Royal Ins2tute of Technology Stockholm, Sweden 0. Overview of Talk 1. Specifica2on- based Black- box Tes2ng 2. Learning- based

More information

JUnit: The Goals of JUnit

JUnit: The Goals of JUnit JUnit Cook s s Tour CSIE Department, NTUT Woei-Kae Chen 1 JUnit: The Goals of JUnit To write a framework within which we have some glimmer of hope that developers will actually write tests. The framework

More information

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages No Source Code : Software Testing Black-Box Testing Test-Driven Development No access to source code So test cases don t worry about structure Emphasis is only on ensuring that the contract is met Specification-Based

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 12 Black Box Tes?ng CISC327-2003 2017 J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield Black Box Tes?ng Outline Last?me we con?nued with black box tes?ng and

More information

Introduction to Software Testing Chapter 5.1 Syntax-based Testing

Introduction to Software Testing Chapter 5.1 Syntax-based Testing Introduction to Software Testing Chapter 5.1 Syntax-based Testing Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/ softwaretest/ Ch. 5 : Syntax Coverage Four Structures for Modeling Software Graphs

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 12 Black Box Tes?ng CISC327-2003 2017 J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield Black Box Tes?ng Outline Last?me we con?nued with black box tes?ng and

More information

White box testing. White-box testing. Types of WBT 24/03/15. Advanced Programming

White box testing. White-box testing. Types of WBT 24/03/15. Advanced Programming White box testing Advanced Programming 24/03/15 Barbara Russo 1 White-box testing White-box testing is a verification technique software engineers can use to examine if their code works as expected 24/03/15

More information

F. Tip and M. Weintraub FUNCTIONAL TESTING

F. Tip and M. Weintraub FUNCTIONAL TESTING F. Tip and M. Weintraub FUNCTIONAL TESTING ACKNOWLEDGEMENTS Thanks go to Andreas Zeller for allowing incorporation of his materials 2 HOW TO TELL IF A SYSTEM MEETS EXPECTATIONS? Two options: 1. testing:

More information

Chapter 9 Quality and Change Management

Chapter 9 Quality and Change Management MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

csc444h: so(ware engineering I matt medland

csc444h: so(ware engineering I matt medland csc444h: so(ware engineering I matt medland matt@cs.utoronto.ca http://www.cs.utoronto.ca/~matt/csc444 tes2ng top- 10 infrastructure source code control including other types of testing reproducible builds

More information

Object Oriented Software Design - I

Object Oriented Software Design - I Object Oriented Software Design - I Unit Testing Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa November 28, 2011 G. Lipari (Scuola Superiore Sant Anna) Unit Testing November

More information

Pearson Education 2007 Chapter 9 (RASD 3/e)

Pearson Education 2007 Chapter 9 (RASD 3/e) MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

Model-Based Testing. (DIT848 / DAT261) Spring Lecture 3 White Box Testing - Coverage

Model-Based Testing. (DIT848 / DAT261) Spring Lecture 3 White Box Testing - Coverage Model-Based Testing (DIT848 / DAT261) Spring 2017 Lecture 3 White Box Testing - Coverage Gerardo Schneider Dept. of Computer Science and Engineering Chalmers University of Gothenburg Some slides based

More information

Testing Stragegies. Black Box Testing. Test case

Testing Stragegies. Black Box Testing. Test case References: Teach Yourself Object-Oriented Programming in 21 Days by A.Sintes, 1 Testing Stragegies Test case a set of inputs and expected outputs looks at specific piece of functionality to determine

More information

Unit Testing with JUnit and CppUnit

Unit Testing with JUnit and CppUnit Unit Testing with JUnit and CppUnit Software Testing Fundamentals (1) What is software testing? The process of operating a system or component under specified conditions, observing or recording the results,

More information

Testing: Coverage and Structural Coverage

Testing: Coverage and Structural Coverage Testing: Coverage and Structural Coverage Testing, Quality Assurance, and Maintenance Winter 2017 Prof. Arie Gurfinkel based on slides by Prof. Marsha Chechik and Prof. Lin Tan How would you test this

More information

Introduc)on to tes)ng with JUnit. Workshop 3

Introduc)on to tes)ng with JUnit. Workshop 3 Introduc)on to tes)ng with JUnit Workshop 3 We have to deal with errors Early errors are usually syntax errors. The compiler will spot these. Later errors are usually logic errors. The compiler cannot

More information

Introduc)on to So,ware Tes)ng (2nd edi(on) Overview Graph Coverage Criteria. Paul Ammann & Jeff OffuA. hap:// so,waretest/

Introduc)on to So,ware Tes)ng (2nd edi(on) Overview Graph Coverage Criteria. Paul Ammann & Jeff OffuA. hap://  so,waretest/ Tes)ng (2nd edi(on) Overview Graph Coverage Criteria Paul Ammann & Jeff OffuA hap://www.cs.gmu.edu/~offua/ so,waretest/ First version, 23 September 2013 Graph Coverage Four Structures for Modeling Software

More information

Tutorials for Struts, EJB, xdoclet and eclipse.

Tutorials for Struts, EJB, xdoclet and eclipse. Tutorials for Hibernate, EJB 2, EJB 3 Struts, JavaServerfaces (JSF) Tomcat, JBoss, Myeclipse, Eclipse and other Tutorials» Debugging, Testing, Tuning» Eclipse Junit testing tutorial Sprache / Language

More information

Testing: Coverage and Structural Coverage

Testing: Coverage and Structural Coverage Testing: Coverage and Structural Coverage Testing, Quality Assurance, and Maintenance Winter 2018 Prof. Arie Gurfinkel based on slides by Prof. Marsha Chechik and Prof. Lin Tan How would you test this

More information

SQLite with a Fine-Toothed Comb. John Regehr Trust-in-So1 / University of Utah

SQLite with a Fine-Toothed Comb. John Regehr Trust-in-So1 / University of Utah SQLite with a Fine-Toothed Comb John Regehr Trust-in-So1 / University of Utah Feasible states for a system we care about No execu

More information

L7: Tes(ng. Smoke tes(ng. The test- vee Black- box vs. white- box tes(ng Tes(ng methods. Four levels of tes(ng. Case study

L7: Tes(ng. Smoke tes(ng. The test- vee Black- box vs. white- box tes(ng Tes(ng methods. Four levels of tes(ng. Case study Smoke tes(ng L7: Tes(ng The test- vee Black- box vs. white- box tes(ng Tes(ng methods Matrix test Step- by- step test Automated test scripts Four levels of tes(ng Debugging Unit tes?ng Integra?on tes?ng

More information

more uml: sequence & use case diagrams

more uml: sequence & use case diagrams more uml: sequence & use case diagrams uses of uml as a sketch: very selec)ve informal and dynamic forward engineering: describe some concept you need to implement reverse engineering: explain how some

More information

Lecture 7. Advanced Topics in Tes3ng

Lecture 7. Advanced Topics in Tes3ng Lecture 7 Advanced Topics in Tes3ng Muta3on Tes3ng Muta3on tes3ng concerns evalua3ng test suites for their inherent quality, i.e. ability to reveal errors. Need an objec3ve method to determine quality

More information

An Introduction to Systematic Software Testing. Robert France CSU

An Introduction to Systematic Software Testing. Robert France CSU An Introduction to Systematic Software Testing Robert France CSU Why do we need to systematically test software? Poor quality products can Inconvenience direct and indirect users Result in severe financial

More information

Modifying an Exis.ng Commercial Product for Cryptographic Module Evalua.on

Modifying an Exis.ng Commercial Product for Cryptographic Module Evalua.on Modifying an Exis.ng Commercial Product for Cryptographic Module Evalua.on ICMC16 O?awa, Canada 18-20 May 2016 Presented by Alan Gornall Introduc.on I provide cer.fica.on support to my clients: compliance

More information

Tuesday, November 15. Testing

Tuesday, November 15. Testing Tuesday, November 15 1 Testing Testing Waterfall model show testing as an activity or box In practice, testing is performed constantly There has never been a project where there was too much testing. Products

More information

Simple TDD Case Study. in Java

Simple TDD Case Study. in Java Simple TDD Case Study in Java Assertions To check if code is behaving as you expect, use an assertion, a simple method call that verifies that something is true. E.g the method asserttrue checks that the

More information

The plan. Racket will return! Lecture will not recount every single feature of Java. Final project will be wri)ng a Racket interpreter in Java.

The plan. Racket will return! Lecture will not recount every single feature of Java. Final project will be wri)ng a Racket interpreter in Java. Introduc)on to Java The plan Racket will return! Final project will be wri)ng a Racket interpreter in Java. Lecture will not recount every single feature of Java. You may need to do some digging on your

More information

Model- Based Security Tes3ng with Test Pa9erns

Model- Based Security Tes3ng with Test Pa9erns Model- Based Security Tes3ng with Test Pa9erns Julien BOTELLA (Smartes5ng) Jürgen GROSSMANN (FOKUS) Bruno LEGEARD (Smartes3ng) Fabien PEUREUX (Smartes5ng) Mar5n SCHNEIDER (FOKUS) Fredrik SEEHUSEN (SINTEF)

More information

Sept 26, 2016 Sprenkle - CSCI Documentation is a love letter that you write to your future self. Damian Conway

Sept 26, 2016 Sprenkle - CSCI Documentation is a love letter that you write to your future self. Damian Conway Objec,ves Javadocs Inheritance Ø Final methods, fields Abstract Classes Interfaces Sept 26, 2016 Sprenkle - CSCI209 1 JAVADOCS Documentation is a love letter that you write to your future self. Damian

More information

Chapter 14 Software Testing Techniques

Chapter 14 Software Testing Techniques Software Engineering: A Practitioner s s Approach, 6/e Chapter 14 Software Testing Techniques copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY

More information

print statements, debugger expressions, test scripts. Writing expressions in a debugger only that t a program works now. An application typically

print statements, debugger expressions, test scripts. Writing expressions in a debugger only that t a program works now. An application typically JUnit testing Current practice print statements, debugger expressions, test scripts. Writing expressions in a debugger only that t a program works now. An application typically undergoes many changes over

More information

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422 The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements...no

More information

Josh Bloch Charlie Garrod Darya Melicher

Josh Bloch Charlie Garrod Darya Melicher Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 1: Introduc9on Course overview and introduc9on to so3ware design Josh Bloch Charlie Garrod Darya Melicher 1 So3ware is everywhere

More information

Software Testing TEST CASE SELECTION AND ADEQUECY TEST EXECUTION

Software Testing TEST CASE SELECTION AND ADEQUECY TEST EXECUTION Software Testing TEST CASE SELECTION AND ADEQUECY TEST EXECUTION Overview, Test specification and cases, Adequacy criteria, comparing criteria, Overview of test execution, From test case specification

More information

Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore

Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore Lecture 04 Software Test Automation: JUnit as an example

More information

Chapter 6: Structural Design

Chapter 6: Structural Design Chapter 6: Structural Design Class Rela5onships Design alterna,ves for class use and reuse Composi5on Containment Inheritance Code Reuse Design Principles Rela5onships: Containment aka Holds- A subobjects

More information

INTRODUCTION TO SOFTWARE ENGINEERING

INTRODUCTION TO SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING Introduction to Software Testing d_sinnig@cs.concordia.ca Department for Computer Science and Software Engineering What is software testing? Software testing consists

More information

Bioinforma)cs Resources - NoSQL -

Bioinforma)cs Resources - NoSQL - Bioinforma)cs Resources - NoSQL - Lecture & Exercises Prof. B. Rost, Dr. L. Richter, J. Reeb Ins)tut für Informa)k I12 Short SQL Recap schema typed data tables defined layout space consump)on is computable

More information

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues Founda'ons of So,ware Engineering Lecture 11 Intro to QA, Tes2ng Claire Le Goues 1 Learning goals Define so;ware analysis. Reason about QA ac2vi2es with respect to coverage and coverage/adequacy criteria,

More information

Program Verification (Rosen, Sections 5.5)

Program Verification (Rosen, Sections 5.5) Program Verification (Rosen, Sections 5.5) TOPICS Program Correctness Preconditions & Postconditions Program Verification Assignments Composition Conditionals Loops Proofs about Programs Why study logic?

More information

CS211 Computers and Programming Matthew Harris and Alexa Sharp July 9, Boggle

CS211 Computers and Programming Matthew Harris and Alexa Sharp July 9, Boggle Boggle If you are not familiar with the game Boggle, the game is played with 16 dice that have letters on all faces. The dice are randomly deposited into a four-by-four grid so that the players see the

More information

Capturing JUnit Behavior into Static Programs

Capturing JUnit Behavior into Static Programs Degree Project Capturing JUnit Behavior into Static Programs Asher Siddiqui 2010-05-11 Subject: Computer Science Level: Master Course code: DA4004 Abstract In this research paper, it evaluates the benefits

More information

ques4ons? Midterm Projects, etc. Path- Based Sta4c Analysis Sta4c analysis we know Example 11/20/12

ques4ons? Midterm Projects, etc. Path- Based Sta4c Analysis Sta4c analysis we know Example 11/20/12 Midterm Grades and solu4ons are (and have been) on Moodle The midterm was hard[er than I thought] grades will be scaled I gave everyone a 10 bonus point (already included in your total) max: 98 mean: 71

More information

Charlie Garrod Michael Hilton

Charlie Garrod Michael Hilton Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 1: Designing classes Behavioral subtyping Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Homework 1 due

More information

COSC 111: Computer Programming I. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

COSC 111: Computer Programming I. Dr. Bowen Hui University of Bri>sh Columbia Okanagan COSC 111: Computer Programming I Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 First half of course SoEware examples From English to Java Template for building small programs Exposure to Java

More information

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing. Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great

More information

Software Engineering II Testing

Software Engineering II Testing Object-Oriented Software Engineering! Using UML, Patterns, and Java! Software Engineering II Testing 5 May 2009 Bernd Bruegge Applied Software Engineering Technische Universität München http://wwwbruegge.in.tum.de

More information

Related Course Objec6ves

Related Course Objec6ves Syntax 9/18/17 1 Related Course Objec6ves Develop grammars and parsers of programming languages 9/18/17 2 Syntax And Seman6cs Programming language syntax: how programs look, their form and structure Syntax

More information

Overview Graph Coverage Criteria

Overview Graph Coverage Criteria Overview Graph Coverage Criteria Graph Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Applied to Applied to Source FSMs Applied to Specs DNF Source Specs Source Models Design

More information

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Software Testing part II (white box) Lecturer: Giuseppe Santucci Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision

More information

Testing. Technion Institute of Technology Author: Assaf Israel. Author: Assaf Israel - Technion

Testing. Technion Institute of Technology Author: Assaf Israel. Author: Assaf Israel - Technion Testing Technion Institute of Technology 236700 1 Author: Assaf Israel Why test? Programming is incremental by nature We want to verify we haven t broken anything Tests not only examine the code s functionality

More information

How to sleep *ght and keep your applica*ons running on IPv6 transi*on. The importance of IPv6 Applica*on Tes*ng

How to sleep *ght and keep your applica*ons running on IPv6 transi*on. The importance of IPv6 Applica*on Tes*ng How to sleep *ght and keep your applica*ons running on IPv6 transi*on The importance of IPv6 Applica*on Tes*ng About this presenta*on It presents a generic methodology to test the IPv6 func*onality of

More information

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD Cairo University Faculty of Computers and Information CS251 Software Engineering Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD http://www.acadox.com/join/75udwt Outline Definition of Software

More information

Agenda. Excep,ons Object oriented Python Library demo: xml rpc

Agenda. Excep,ons Object oriented Python Library demo: xml rpc Agenda Excep,ons Object oriented Python Library demo: xml rpc Resources h?p://docs.python.org/tutorial/errors.html h?p://docs.python.org/tutorial/classes.html h?p://docs.python.org/library/xmlrpclib.html

More information

Introduction to Software Testing Chapter 4 Input Space Partition Testing

Introduction to Software Testing Chapter 4 Input Space Partition Testing Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/ softwaretest/ Ch. 4 : Input Space Coverage Four Structures for Modeling

More information

COMP 111. Introduction to Computer Science and Object-Oriented Programming. Week 3

COMP 111. Introduction to Computer Science and Object-Oriented Programming. Week 3 COMP 111 Introduction to Computer Science and Object-Oriented Programming Tasks and Tools download submit edit Web-CAT compile unit test view results Working with Java Classes You Use You Complete public

More information

Testing. Prof. Clarkson Fall Today s music: Wrecking Ball by Miley Cyrus

Testing. Prof. Clarkson Fall Today s music: Wrecking Ball by Miley Cyrus Testing Prof. Clarkson Fall 2017 Today s music: Wrecking Ball by Miley Cyrus Review Previously in 3110: Modules Specification (functions, modules) Today: Validation Testing Black box Glass box Randomized

More information

Lab #7 Library Classes and JUnit Testing. Daniel Amyot, Diana Inkpen, Alan. Agenda. In this lab, you are going to create your own

Lab #7 Library Classes and JUnit Testing. Daniel Amyot, Diana Inkpen, Alan. Agenda. In this lab, you are going to create your own ITI 1120 Lab #7 Library Classes and JUnit Testing Daniel Amyot, Diana Inkpen, Alan Williams Topics in this lab: Strings vs. char[] Methods Library classes Testing Agenda In this lab, you are going to create

More information

Testing is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered.

Testing is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered. Testing Testing is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered. System stability is the system going to crash or not?

More information

An Introduction to Subtyping

An Introduction to Subtyping An Introduction to Subtyping Type systems are to me the most interesting aspect of modern programming languages. Subtyping is an important notion that is helpful for describing and reasoning about type

More information

Software Construction

Software Construction Lecture 7: Type Hierarchy, Iteration Abstraction Software Construction in Java for HSE Moscow Tom Verhoeff Eindhoven University of Technology Department of Mathematics & Computer Science Software Engineering

More information

Practical Objects: Test Driven Software Development using JUnit

Practical Objects: Test Driven Software Development using JUnit 1999 McBreen.Consulting Practical Objects Test Driven Software Development using JUnit Pete McBreen, McBreen.Consulting petemcbreen@acm.org Test Driven Software Development??? The Unified Process is Use

More information

CS159. Nathan Sprague. September 30, 2015

CS159. Nathan Sprague. September 30, 2015 CS159 Nathan Sprague September 30, 2015 Testing Happens at Multiple Levels Unit Testing - Test individual classes in isolation. Focus is on making sure that each method works according to specification.

More information

What is Search For? CS 188: Ar)ficial Intelligence. Constraint Sa)sfac)on Problems Sep 14, 2015

What is Search For? CS 188: Ar)ficial Intelligence. Constraint Sa)sfac)on Problems Sep 14, 2015 CS 188: Ar)ficial Intelligence Constraint Sa)sfac)on Problems Sep 14, 2015 What is Search For? Assump)ons about the world: a single agent, determinis)c ac)ons, fully observed state, discrete state space

More information

XVIII. Software Testing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

XVIII. Software Testing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini XVIII. Software Testing Laurea Triennale in Informatica Corso di Objective General discussion on Testing Testing Phases Approaches to testing Structural testing Functional testing Testing non functional

More information

About this exam review

About this exam review Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review

More information

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan COSC 310: So*ware Engineering Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 Admin A2 is up Don t forget to keep doing peer evalua>ons Deadline can be extended but shortens A3 >meframe Labs This

More information

Making Programs Fail. Andreas Zeller

Making Programs Fail. Andreas Zeller Making Programs Fail Andreas Zeller Two Views of Testing Testing means to execute a program with the intent to make it fail. Testing for validation: Finding unknown failures (classical view) Testing for

More information

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Announcements We are grading your midterms this week!

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 04: White-Box Testing (advanced) Part1 Dietmar Pfahl Spring 2018 email: dietmar.pfahl@ut.ee White-Box Testing Techniques Control-Flow Testing Data-Flow Testing Mutation

More information

Introduction to Dynamic Analysis

Introduction to Dynamic Analysis Introduction to Dynamic Analysis Reading assignment Gary T. Leavens, Yoonsik Cheon, "Design by Contract with JML," draft paper, http://www.eecs.ucf.edu/~leavens/jml//jmldbc.pdf G. Kudrjavets, N. Nagappan,

More information

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.

More information

Darshan Institute of Engineering & Technology Unit : 9

Darshan Institute of Engineering & Technology Unit : 9 1) Explain software testing strategy for conventional software architecture. Draw the spiral diagram showing testing strategies with phases of software development. Software Testing: Once source code has

More information

Agile Software Development. Lecture 7: Software Testing

Agile Software Development. Lecture 7: Software Testing Agile Software Development Lecture 7: Software Testing Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Slides are a modified version of the slides by Prof. Kenneth M. Anderson Outline Testing Terminology Types

More information

Annotations in Java (JUnit)

Annotations in Java (JUnit) Annotations in Java (JUnit) Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ What are Annotations? They

More information

Anders Fröberg TDDD80 STORAGE AND TESTING

Anders Fröberg TDDD80 STORAGE AND TESTING Anders Fröberg anders.froberg@liu.se TDDD80 STORAGE AND TESTING 1 Agenda: Test Unit testing vs Traditional Testing Debugging and Refactoring Deployment (Test Driven Development (TDD)) (Acceptance Test

More information

Getting those Bugs Out --Software Testing

Getting those Bugs Out --Software Testing 1 1 Getting those Bugs Out --Software Testing 1. Issues in software testing and reliability 2. Test sets, test selection criteria, and ideal test sets. 3. Defect Testing 3.1 Black Box Testing 3.2 White

More information

CSE331 Autumn 2011 Midterm Examination October 28, 2011

CSE331 Autumn 2011 Midterm Examination October 28, 2011 CSE331 Autumn 2011 Midterm Examination October 28, 2011 50 minutes; 75 points total. Open note, open book, closed neighbor, closed anything electronic (computers, webenabled phones, etc.) An easier-to-read

More information

Chapter 15. Software Testing The assert Statement

Chapter 15. Software Testing The assert Statement 177 Chapter 15 Software Testing We know that a clean compile does not imply that a program will work correctly. We can detect errors in our code as we interact with the executing program. The process of

More information

RUNNING AND CREATING JUNIT TESTS WITH FUEGO FUEGO V5. Pablo Victory

RUNNING AND CREATING JUNIT TESTS WITH FUEGO FUEGO V5. Pablo Victory USING JUNIT IN FUEGO RUNNING AND CREATING JUNIT TESTS WITH FUEGO FUEGO V5 Pablo Victory pvictory@fuego.com August 11, 2004 CONTENTS Contents 1 Introduction 3 2 Using JUnit 4 2.1 Cataloging JUnit..........................

More information

Test Isolation and Mocking

Test Isolation and Mocking Test Isolation and Mocking Technion Institute of Technology 236700 1 Author: Assaf Israel Unit Testing: Isolation The bigger the test subject the harder it is to understand the reason of a bug from a test

More information

Symbolic Execu.on. Suman Jana

Symbolic Execu.on. Suman Jana Symbolic Execu.on Suman Jana Acknowledgement: Baishakhi Ray (Uva), Omar Chowdhury (Purdue), Saswat Anand (GA Tech), Rupak Majumdar (UCLA), Koushik Sen (UCB) What is the goal? Tes.ng Tes%ng approaches are

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Dietmar Pfahl Spring 2016 email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture

More information

Automated Acceptance Testing

Automated Acceptance Testing Automated Acceptance Testing Björn Beskow Callista Enterprise AB bjorn.beskow@callista.se http://www.callista.se/enterprise CADEC 2004-01-28, Automated Acceptance Testing, Slide 1 Target audience and Objectives

More information