White-box testing. Software Reliability and Testing - Barbara Russo SERG - Laboratory of Empirical Software Engineering.
|
|
- Leon Hawkins
- 6 years ago
- Views:
Transcription
1 White-box testing Software Reliability and Testing - Barbara Russo SERG - Laboratory of Empirical Software Engineering Barbara Russo 1
2 White-box testing White-box testing is a verification technique that software engineers can use to examine if their code works as specified Barbara Russo 2
3 With WBT Exercise independent paths within a module or unit Exercise logical decisions on both true and false Execute loops at their boundaries and within their operational bounds and Exercise internal data structures to ensure their validity Barbara Russo 3
4 Types of WBT Unit testing Regression testing Integration testing Barbara Russo 4
5 Unit testing Each time you write a code module, you should write test cases for it A possible exception: accessor methods (i.e., getters and setters) Generally, accessor methods will be written error-free Focus testing effort on code that could easily be broken 5
6 Unit testing It focuses on faults within modules 6
7 Test with annotation JUnit4 and older 7
8 Installing JUnit Download from the jar file Read the API latest/ Unzip or import the jar file Add to classpath of your project Project à Properties à Java Build Path Libraries tab Add library 8
9 Installing JUnit Right click on the project folder in package explorer BuildPath à add Libraries tab Or BuildPath àin the library tab select add library 9
10 Installing JUnit 10
11 Example public class Calculator { public int evaluate(string expression) { int sum = 0; for (String summand: expression.split("\\+")) sum += Integer.valueOf(summand); return sum; } } 11
12 Example import static org.junit.assert.assertequals; import org.junit.test; public class CalculatorTest public void evaluatesexpression() { Calculator calculator = new Calculator(); int sum = calculator.evaluate("1+2+3"); assertequals(6, sum); } } 12
13 setup() & teardown() When a test class contains multiple methods to test, you can use the setup() and teardown() methods to initialise and release any common objects under test 13
14 Why annotations The traditional way to indicate test methods in JUnit 3 is by prefixing their names with test This is a very effective method for tagging certain methods in a class as having a special meaning, but the naming doesn t scale very well and is rather inflexible (what if we want to pass additional parameters to the test?). 14
15 Benefits of Using Annotations Annotations were formally added to the Java language in JDK 5 Tagging methods with annotations Hence, method names are not restricted to any pattern or format. We can pass additional parameters to annotations 15
16 Benefits of Using Annotations Annotations are strongly typed, so the compiler will flag any mistakes right away Test classes no longer need to extend anything (such as TestCase, for JUnit 3). 16
17 Basic Describes how to pass parameters to Marks a class or a method as a part of the test. 17
18 @Test It tells that the public method that returns void to which it is attached can be run as a test case JUnit first constructs a new instance of the class then invokes the annotated method Any exceptions thrown by the test will be reported as a failure If no exceptions are thrown, the test succeeds 18
19 Example public class Example public void method() { org.junit.assert.asserttrue(new ArrayList().isEmpty()); } 19
20 Test Fixtures A test fixture is a fixed state of a set of objects used as a baseline for running tests JUnit provides annotations so that test classes can have fixture run before or after every test, or one time fixtures that run before and after only once for all test methods in a class. There are four fixture annotations: two for class-level fixtures and two for method-level ones. At the class level, you and at the method (or test) level, you 20
21 Test The annotated method will be run before any test method in the current class is The annotated method will be run after all the test methods in the current class have run. 21
22 @After Annotating a public method that returns void causes that method to be run before (or after) the Test method methods of superclasses will be run before (or after) those of the current class methods are guaranteed to run even if a Before or Test method throws an exception 22
23 Major annotations - test The annotated method will be run before each test The annotated method will be run after each test method 23
24 Example public class Example { List public void initialize() { mylist= new ArrayList(); public void testsize() { System.out.println{ it uses sizelist }; public void testremove() { System.out.println{ it uses removelist }; } } 24
25 Optional parameters Expected and Timeout Expected: check a test method throws the expected exception If it doesn't throw an exception or if it throws a different exception than the one declared, the test fails 25
26 Example: test public void outofbounds() { new ArrayList<Object>().get(0); } 26
27 ExpectedException rule Careful! with expected exception will pass if any code in the method throws IndexOutOfBoundsException For longer tests, use the ExpectedException rule 27
28 ExpectedException public ExpectedException thrown = public void shouldtestexceptionmessage() throws IndexOutOfBoundsException { List<Object> list = new ArrayList<Object>(); thrown.expect(indexoutofboundsexception.class); thrown.expectmessage("index: 0, Size: 0 ); thrown.expectmessage(junitmatchers.containsstring("size: 0")); // JUnit matcher that finds a string in the exception message } 28
29 Optional parameters Timeout causes a test to fail if it takes longer than a specified amount of clock time (measured in public void infinity() { while(true); } 29
30 Annotating a class When a class is annotated or extends a class annotated JUnit will invoke the class it references to run the tests in that class instead of the runner built into JUnit. 30
31 The test suite class with annotation import org.junit.runner.runwith; import org.junit.runners.suite; BTest.class, CTest.class) public class ABCSuite { } 13/04/16 Barbara Russo 31
32 @SuiteClasses annotation specifies the classes to be executed when a class annotated is run 32
33 Exercise Build test cases for class Bag 33
34 Integration testing 34
35 Integration testing It verifies interface specifications and model breakdown It verifies the software architecture Scaffolding (see later) is extensively required Faults are related to interactions and compatibility 35
36 Integration Faults Inconsistent interpretation of parameters or values Example: Mixed units (meters/yards) in Martian Lander Violations of value domains, capacity, or size limits Example: Buffer overflow 36
37 Integration Faults Side effects on parameters or resources Example: Conflict on (unspecified) temporary file Omitted or misunderstood functionality Example: Inconsistent interpretation of web hits Nonfunctional properties Example: Unanticipated performance issues 37
38 Integration Faults Dynamic mismatches Example: Incompatible polymorphic method calls 38
39 Regression Testing 39
40 Regression testing Premise Adding new/changing module impacts a system: New data flow paths established New I/O may occur New control logic invoked 40
41 Regression testing It is re-execution of subset of tests that have already been run Ensures changes have not propagated unintended side effects 41
42 Regression testing Approaches: Manual testing Capture/Playback tools: 1. Capture test cases and results 2. Playback and 3. Compare 42
43 Regression testing Test suite contains: Representative sample of tests that exercises all software functions Focus on functions likely affected by change Focus on components that have been changed 43
44 Scaffolding 44
45 Why Scaffolding? Test case design includes input and expected output behaviour It may be simply a matter to fill a template (Acceptance test), but 45
46 Why Scaffolding? Testing can be complex: a test specification is connected to several test cases: e.g., a sorted sequence, length greater than 2, with items in ascending order with no duplicates We need a structure to support test execution 46
47 Why Scaffolding? To test in small: independent drivers just test some functionalities of a large user interface To provide hooks for scripting To drive coding (TDD) 47
48 Elements Test driver Test stub Test harness Oracle Barbara Russo 48
49 Test driver To drive program under test through test cases It is a software module used to invoke a module under test and, It often provides test inputs, control and monitor execution, and report test results Drivers can become automated test cases 49
50 Example moveplayer(player1, 2); It calls moveplayer and passes Player1 and moves it two spaces The drivers would likely to be called from main method A white-box test case would execute this driver line of code and check Player.getPosition() to make sure the player is now on the expected cell on the board Barbara Russo 50
51 Test stub A stub is a program statement substituting for the body of a software module that is or will be defined elsewhere or A dummy component or object used to simulate the behaviour of a real component until that component has been developed 51
52 Test stub Developing stubs allows programmers to call a method in the code being developed, even if the method does not yet have the desired behaviour Stubs can be filled in to form the actual method Barbara Russo 52
53 Example If the moveplayer() has not been written yet public void moveplayer(player aplayer, int dicevalue) { player.setposition(1); } or public Cell moveplayer(player aplayer, int dicevalue) { return new Cell(); } or public Cell moveplayer(player aplayer, int dicevalue) { Player player=aplayer; player.setposition(dicevalue); return player.getposition(player); } Barbara Russo 53
54 Test harness Environment in which to execute the tests Substitutes for other parts of the deployed environment Ex: Software simulation of a hardware device 54
55 Oracle A test oracle is a piece of software that provides a pass/fail service to the program execution (e.g., assert) In principle, an oracle classifies every execution and detects every failure, but it can even give false alarms False alarms increase cost of maintenance and reduce resources to dedicate to real failures Thus, there is no perfect oracle 55
56 Using stubs and drivers with TDD Barbara Russo 56
57 What are drivers, stubs, and oracles? public void testcenterline() { Formatter f = new Formatter(); f.setlinewidth(10); assertequals(" word ", f.center("word")); } public void testoddcenterline(){ Formatter f = new Formatter(); f.setlinewidth(10); assertequals( " hello ", f.center("hello")); } public String center(string line) { return a ; }! 57
58 What are drivers, stubs, and oracles? public void testcenterline() { Formatter f = new Formatter(); f.setlinewidth(10); assertequals(" word ", f.center("word")); } public void testoddcenterline(){ Formatter f = new Formatter(); f.setlinewidth(10); assertequals( " hello ", f.center("hello")); } public String center(string line) { return a ; }! 58
59 More on Oracles Software Reliability and Testing - Barbara Russo SERG - Laboratory of Empirical Software Engineering 59
60 Comparison-based oracles To judge oracle correctness: compare the actual with predicted program behaviour Predicted behaviour: either pre-computed as part of test case specifications (when test specifications are simple) or derived in some way independent from the program under test 60
61 Comparison-based oracles Test harnesses often include support for comparison -based oracles: frameworks like JUnit provide methods like assertequals 61
62 Comparison-based oracles Comparison-based oracles can be suitable for more complex programs when supported by other techniques like the capture and replay testing Capture - replay testing saves the predicted behaviour from an earlier execution It useful when we cannot derive the expected behaviour from specification It can be expensive as it requires other implementations of the same feature under test 62
63 Example Save the behaviour (execution) of a trusted alternate version of the program under test For some reason, the current version is not adequate for the product under test Think of OSS development: the open and the enterprise release Replay the open version to test the enterprise one 63
64 Example Save system behaviour (use): used when behaviour cannot avoid the direct intervention of the user Use log of use: they can be reused until the programmer changes that functionality and cannot ensure the same behaviour anymore Sometime useful to model the input in a more abstract way (e.g. instead of mouse click use object selection) 64
65 Other approaches for complex input-output Determine input by knowing the output: It is a misconception that oracles always require a predicted output! 65
66 Example - partial oracles If a program is required to find a bus route from A to B, the oracle needs not to check that a there is a valid route between A and B If a program is required to find the optimal route between A and B, the oracle needs not to check that the valid route is also optimal These oracles are called partial Partial oracles are cheap 66
67 Self-check oracles Self-check: an oracle that is not paired with a specific test case Good design practice: not connected with program states Self-checks can use assertions and can focus on data structure invariants 67
68 Example package org.eclipse.jdt.internal.ui.text; import java.text.characteriterator; import jorg.eclipse.jface.text.assert;... public class SequenceCharacterIterator implements CharacterIteratorf{ //Check the index of iterations; self-check oracle private void invariant(){ Assert.isTrue(fIndex >= ffirst); Assert.isTrue(fIndex <= flast); } it continues 68
69 Example public SequenceCharacterIterator(CharSequence sequence, int first, int last) throws IllegalArgumentException{ if(sequence==null) throw new NullPointerException; if(first<0 first>last) throw new IllegalArgumentException; if(last>sequence.length()) throw new NullPointerException; fsequence = sequence; ffirst = first; flast = last; findex = index; invariant();//check the index of iterations } 69
70 Example... public char setindex(int position){ } if(position>=getbeginindex() && position <= getendindex()) findex=position; else throw new IllegalArgumentException(); invariant(); //Check the index of iterations return current(); } 70
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 informationTest-Driven Development (a.k.a. Design to Test) CSE260, Computer Science B: Honors Stony Brook University
Test-Driven Development (a.k.a. Design to Test) CSE260, Computer Science B: Honors Stony Brook University http://www.cs.stonybrook.edu/~cse260 Person-hours Labor is sometimes measured in person-hours,
More informationAccessibility. Adding features to support users with impaired vision, mobility, or hearing
Accessibility Adding features to support users with impaired vision, mobility, or hearing TalkBack TalkBack is an Android screen reader made by Google. It speaks out the contents of a screen based on what
More informationTesting Driven Development. Advanced Programming
Testing Driven Development Advanced Programming Test Driven Development (TDD) Practice for writing unit tests and production code concurrently and at a very fine level of granularity Programmers first
More informationTest Execution and Automation. CSCE Lecture 15-03/20/2018
Test Execution and Automation CSCE 747 - Lecture 15-03/20/2018 Executing Tests We ve covered many techniques to derive test cases. How do you run them on the program? You could run the code and check results
More informationSoftware 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 informationProgrammieren II. Unit Testing & Test-Driven Development. Alexander Fraser.
Programmieren II Unit Testing & Test-Driven Development Alexander Fraser fraser@cl.uni-heidelberg.de (Based on material from Lars Vogel and T. Bögel) July 2, 2014 1 / 62 Outline 1 Recap 2 Testing - Introduction
More informationAgenda. JUnit JaCoCo Project. CSE 4321, Jeff Lei, UTA
Agenda JUnit JaCoCo Project 1 JUnit Introduction A JUnit Example Major APIs Practical Tips 2 Unit Testing Test individual units of source code in isolation Procedures, functions, methods, and classes Engineers
More informationTesting. 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 informationTest-Driven Development JUnit
Test-Driven Development JUnit Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level Wednesday, January 18, 2017 1 Simulator submission
More informationCS159. 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 informationTesting on Steriods EECS /30
1/30 Testing on Steriods EECS 4315 www.eecs.yorku.ca/course/4315/ How to test code? 2/30 input code output Provide the input. Run the code. Compare the output with the expected output. White box testing
More informationJump into JUnit 4. Streamlined testing with Java 5 annotations. Before you start. About this tutorial. Objectives. Prerequisites.
Jump into JUnit 4 Streamlined testing with Java 5 annotations Andrew Glover President Stelligent Incorporated 20 February 2007 JUnit 4 has dropped the strict naming conventions and inheritance hierarchies
More informationTesting. 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 informationTopics covered. Introduction to JUnit JUnit: Hands-on session Introduction to Mockito Mockito: Hands-on session. JUnit & Mockito 2
JUnit & Mockito 1 Topics covered Introduction to JUnit JUnit: Hands-on session Introduction to Mockito Mockito: Hands-on session JUnit & Mockito 2 Introduction to JUnit JUnit & Mockito 3 What is JUnit?
More informationLarvaLight User Manual
LarvaLight User Manual LarvaLight is a simple tool enabling the user to succinctly specify monitors which trigger upon events of an underlying Java system, namely method calls and returns. If the events
More informationxtreme 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 informationOverview. 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 informationAn introduction to formal specifications and JML. Invariant properties
An introduction to formal specifications and JML Invariant properties Yves Ledru Université Grenoble-1 Laboratoire d Informatique de Grenoble Yves.Ledru@imag.fr 2013 Page 1 Invariant properties Invariants
More informationUnit 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 informationObject 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 informationTest automation / JUnit. Building automatically repeatable test suites
Test automation / JUnit Building automatically repeatable test suites Test automation n Test automation is software that automates any aspect of testing n Generating test inputs and expected results n
More informationTest automation Test automation / JUnit
Test automation Test automation / JUnit Building automatically repeatable test suites Test automation is software that automates any aspect of testing Generating test inputs and expected results Running
More informationUnit Testing. CS 240 Advanced Programming Concepts
Unit Testing CS 240 Advanced Programming Concepts F-22 Raptor Fighter 2 F-22 Raptor Fighter Manufactured by Lockheed Martin & Boeing How many parts does the F-22 have? 3 F-22 Raptor Fighter What would
More informationTest-Driven Development JUnit
Test-Driven Development JUnit Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level Wednesday, January 24, 2018 1 Unit Testing Testing
More informationTools for Unit Test JUnit
Tools for Unit Test JUnit Stuart Anderson JUnit is a framework for writing tests JUnit 1 Written by Erich Gamma (Design Patterns) and Kent Beck (extreme Programming) JUnit uses Java s reflection capabilities
More informationTools for Unit Test - JUnit
Tools for Unit Test - JUnit Conrad Hughes School of Informatics Slides thanks to Stuart Anderson 15 January 2010 Software Testing: Lecture 2 1 JUnit JUnit is a framework for writing tests Written by Erich
More informationCSCE 747 Unit Testing Laboratory Name(s):
CSCE 747 Unit Testing Laboratory Name(s): You have been hired to test our new calendar app! Congrats!(?) This program allows users to book meetings, adding those meetings to calendars maintained for rooms
More informationAgile 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 informationEECS 4313 Software Engineering Testing
EECS 4313 Software Engineering Testing Topic 03: Test automation / JUnit - Building automatically repeatable test suites Zhen Ming (Jack) Jiang Acknowledgement Some slides are from Prof. Alex Orso Relevant
More informationProgram Correctness and Efficiency. Chapter 2
Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you
More informationJUnit Framework. Terminology: assertions, annotations, fixtures. Dr. Siobhán Drohan Mairead Meagher. Produced by:
JUnit Framework Terminology: assertions, annotations, fixtures Produced by: Dr. Siobhán Drohan Mairead Meagher Department of Computing and Mathematics http://www.wit.ie/ Topic List General Terminology
More informationSection 4: Graphs and Testing. Slides by Erin Peach and Nick Carney
Section 4: Graphs and Testing Slides by Erin Peach and Nick Carney with material from Vinod Rathnam, Alex Mariakakis, Krysta Yousoufian, Mike Ernst, Kellen Donohue AGENDA Graphs JUnit Testing Test Script
More informationEfficient Regression Test Model for Object Oriented Software
Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration
More informationSoftware 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 informationTesting and Debugging
Testing and Debugging Comp-303 : Programming Techniques Lecture 14 Alexandre Denault Computer Science McGill University Winter 2004 March 1, 2004 Lecture 14 Comp 303 : Testing and Debugging Page 1 Announcements...
More informationIn this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.
In this Lecture you will Learn: Testing in Software Development Process Examine the verification and validation activities in software development process stage by stage Introduce some basic concepts of
More informationICOM 4015 Advanced Programming Laboratory. Chapter 1 Introduction to Eclipse, Java and JUnit
ICOM 4015 Advanced Programming Laboratory Chapter 1 Introduction to Eclipse, Java and JUnit University of Puerto Rico Electrical and Computer Engineering Department by Juan E. Surís 1 Introduction This
More informationTesting 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 informationCS211 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 informationCSE 331 Summer 2016 Final Exam. Please wait to turn the page until everyone is told to begin.
Name The exam is closed book, closed notes, and closed electronics. Please wait to turn the page until everyone is told to begin. Score / 54 1. / 12 2. / 12 3. / 10 4. / 10 5. / 10 Bonus: 1. / 6 2. / 4
More informationCS11 Advanced Java. Winter Lecture 2
CS11 Advanced Java Winter 2011-2012 Lecture 2 Today s Topics n Assertions n Java 1.5 Annotations n Classpaths n Unit Testing! n Lab 2 hints J Assertions! n Assertions are a very useful language feature
More informationCMSC 132: OBJECT-ORIENTED PROGRAMMING II
CMSC 132: OBJECT-ORIENTED PROGRAMMING II Program Testing Department of Computer Science University of Maryland, College Park Debugging Is Harder Than Coding! Debugging is twice as hard as writing the code
More informationCarrera: Analista de Sistemas/Licenciatura en Sistemas. Asignatura: Programación Orientada a Objetos
Carrera: / Asignatura: Programación Orientada a Objetos REFACTORING EXERCISE WITH ECLIPSE - 2008- Observation: This refactoring exercise was extracted of the web site indicated in the section Reference
More informationACORN.COM CS 1110 SPRING 2012: ASSIGNMENT A1
ACORN.COM CS 1110 SPRING 2012: ASSIGNMENT A1 Due to CMS by Tuesday, February 14. Social networking has caused a return of the dot-com madness. You want in on the easy money, so you have decided to make
More informationJUnit + JMock Tomáš Soukup
JUnit + JMock 29.11.2011 Tomáš Soukup JUnit - intro Java framework for creating and running unit tests Test case method 1 public(protected) method 1+ test methods Test suite class set of test cases (methods)
More informationThe most frequently asked questions about JUnit are answered here (especially sections 4, 5 and 7):
Java JUnit Tutorial Author: Péter Budai, BME IIT, 2011. The description of the annotations of JUnit can be found here: http://junit.sourceforge.net/javadoc/ The most frequently asked questions about JUnit
More informationAdvanced Software Engineering
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Implementation and Maintenance Prof. Agostino Poggi Implementation
More informationTest automation / JUnit. Building automatically repeatable test suites
Test automation / JUnit Building automatically repeatable test suites JUnit in Eclipse For this course, we will use JUnit in Eclipse It is automatically a part of Eclipse One documentation site (all one
More informationTesting. Topics. Types of Testing. Types of Testing
Topics 1) What are common types of testing? a) Testing like a user: through the UI. b) Testing like a dev: through the code. 2) What makes a good bug report? 3) How can we write code to test code (via
More informationSoftware Development Tools. COMP220/COMP285 Sebastian Coope Eclipse and JUnit: Creating and running a JUnit test case
Software Development Tools COMP220/COMP285 Sebastian Coope Eclipse and JUnit: Creating and running a JUnit test case These slides are mainly based on Java Development with Eclipse D.Gallardo et al., Manning
More informationINTRODUCTION TO JAVA PROGRAMMING JAVA FUNDAMENTALS PART 2
INTRODUCTION TO JAVA PROGRAMMING JAVA FUNDAMENTALS PART 2 Table of Contents Introduction to JUnit 4 What is a Test Driven approach? 5 The benefits of a Test Driven Approach 6 What is Continuous Integration?
More informationPrinciples of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems)
Principles of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems) More Analysis for Functional Correctness Jonathan Aldrich Charlie Garrod School of Computer Science
More informationObject Oriented Programming. Week 1 Part 3 Writing Java with Eclipse and JUnit
Object Oriented Programming Part 3 Writing Java with Eclipse and JUnit Today's Lecture Test Driven Development Review (TDD) Building up a class using TDD Adding a Class using Test Driven Development in
More informationDefensive Programming
Defensive Programming Software Engineering CITS1220 Based on the Java1200 Lecture notes by Gordon Royle Lecture Outline Why program defensively? Encapsulation Access Restrictions Documentation Unchecked
More informationDocumentation Requirements Computer Science 2334 Spring 2016
Overview: Documentation Requirements Computer Science 2334 Spring 2016 These requirements are based on official Java coding conventions but have been adapted to be more appropriate to an academic environment.
More informationClasses, interfaces, & documentation. Review of basic building blocks
Classes, interfaces, & documentation Review of basic building blocks Objects Data structures literally, storage containers for data constitute object knowledge or state Operations an object can perform
More informationSoftware Testing Lecture 1. Justin Pearson
Software Testing Lecture 1 Justin Pearson 2017 1 / 50 Four Questions Does my software work? 2 / 50 Four Questions Does my software work? Does my software meet its specification? 3 / 50 Four Questions Does
More informationCS 215 Software Design Homework 3 Due: February 28, 11:30 PM
CS 215 Software Design Homework 3 Due: February 28, 11:30 PM Objectives Specifying and checking class invariants Writing an abstract class Writing an immutable class Background Polynomials are a common
More informationDhanya Kumar K.V Jan 07, (Graham Hamilton, Jonathan Schwartz, and James Gosling)
Dhanya Kumar K.V Jan 07, 2008 (Graham Hamilton, Jonathan Schwartz, and James Gosling) Overview Open Source has further evolved to simplify the programming and to improve the performance. The Java 2 Platform
More informationUnit Testing Activity
Unit Testing Activity SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Your activity for the Unit Testing lesson is to build tests for
More informationCE221 Programming in C++ Part 1 Introduction
CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab
More informationJUnit 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 informationJUnit Testing Framework Architecture
JUnit Testing Framework Architecture Unit under test (usually a class or a small number of classes) Test environment (fixture) Program state (e.g., some collection of variables/objects that will be used
More informationManuel Oriol, CHCRC-C, Software Testing ABB
Manuel Oriol, CHCRC-C, 08.11.2017 Software Testing Slide 1 About me 1998 2004 2005 2008 2011 Slide 2 Introduction Why do we test? Did you have to deal with testing in the past? Slide 3 Ariane 5 http://www.youtube.com/watch?v=kyurqduyepi
More informationInf1-OP. Inf1-OP Exam Review. Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein. March 20, School of Informatics
Inf1-OP Inf1-OP Exam Review Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics March 20, 2017 Overview Overview of examinable material: Lectures Week 1
More informationException-Handling Overview
م.عبد الغني أبوجبل Exception Handling No matter how good a programmer you are, you cannot control everything. Things can go wrong. Very wrong. When you write a risky method, you need code to handle the
More informationSoftware Engineering Testing and Debugging Testing
Software Engineering Testing and Debugging Testing Prof. Dr. Peter Thiemann Universitt Freiburg 08.06.2011 Recap Testing detect the presence of bugs by observing failures Debugging find the bug causing
More informationASSIGNMENT 5 Objects, Files, and a Music Player
ASSIGNMENT 5 Objects, Files, and a Music Player COMP-202A, Fall 2009, All Sections Due: Thursday, December 3, 2009 (23:55) You MUST do this assignment individually and, unless otherwise specified, you
More informationSection 4: Graphs and Testing
Section 4: Graphs and Testing Slides by Kevin Pusich and Cody Kesting with material from Erin Peach and Nick Carney, Vinod Rathnam, Alex Mariakakis, Krysta Yousoufian, Mike Ernst, Kellen Donohue Agenda
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More informationCSE : Python Programming. Packages (Tutorial, Section 6.4) Announcements. Today. Packages: Concretely. Packages: Overview
Announcements CSE 399-004: Python Programming Lecture 07: Packages, Command-line arguments, and Unit testing February 26, 2007 http://www.seas.upenn.edu/~cse39904/ No homework this week There may be one
More informationTest-Driven Development (TDD)
Test-Driven Development (TDD) CS 4501 / 6501 Software Testing [Lasse Koskela, Test Driven, Chapters 2-3] 1 Agile Airplane Testing Test harness: Appearance matches Color coding in place Fly 6ft (or 2m)
More informationJtest Tutorial. Tutorial
Jtest Jtest Welcome to the Jtest. This tutorial walks you through how to perform common Jtest tasks using example files. Please note that although the four types of tests (static analysis, white-box testing,
More informationNote that if both p1 and p2 are null, equals returns true.
258 students took the exam. The average was 26.4 out of 36; the median was 27.5; scores ranged from 3 to 35.5. 133 students scored between 27.5 and 36, 99 between 18.5 and 27, 24 between 9.5 and 18, and
More informationStarting to Program in C++ (Basics & I/O)
Copyright by Bruce A. Draper. 2017, All Rights Reserved. Starting to Program in C++ (Basics & I/O) On Tuesday of this week, we started learning C++ by example. We gave you both the Complex class code and
More information11 Using JUnit with jgrasp
11 Using JUnit with jgrasp jgrasp includes an easy to use plug-in for the JUnit testing framework. JUnit provides automated support for unit testing of Java source code, and its utility has made it a de
More informationWhy testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties
Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be
More informationCS18000: Programming I
CS18000: Programming I Testing Basics 19 April 2010 Prof. Chris Clifton Testing Programs Your programs are getting large and more complex How do you make sure they work? 1. Reason about the program Think
More informationTesting on Android. Mobile Application Development. Jakob Mass MTAT Fall MTAT
Testing on Android Mobile Application Development MTAT.03.262 2017 Fall Jakob Mass jakob.mass@ut.ee Introduction. Perfect codewriting...or? Conventional (unit) Java testing with JUnit How is mobile/android
More informationTuesday, 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 informationUnit testing. JUnit. JUnit and Eclipse. A JUnit test class 3/6/17. A method is flagged as a JUnit test case.
Unit testing JUnit ENGI 5895 unit testing: Looking for errors in a subsystem in isolation. Generally a "subsystem" means a particular class or object. The Java library JUnit helps us to easily perform
More informationPace University. Fundamental Concepts of CS121 1
Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction
More informationWhat is software testing? Software testing is designing, executing and evaluating test cases in order to detect faults.
ϖοιδ τεσταδδανδχουντ() { ασσερ τεθυαλσ(1, ο.αδδανδχουντ(νεω ΑρραψΛιστ()); ϖοιδ τεσταδδανδχουντ() { ασσερ τεθυαλσ(1, ο.αδδανδχουντ(νεω ΑρραψΛιστ()); ιντ αδδανδχουντ(λιστ λιστ) { ρετυρν λιστ.σιζε(); ιντ
More informationMain concepts to be covered. Testing and Debugging. Code snippet of the day. Results. Testing Debugging Test automation Writing for maintainability
Main concepts to be covered Testing and Debugging Testing Debugging Test automation Writing for maintainability 4.0 Code snippet of the day public void test() { int sum = 1; for (int i = 0; i
More informationUnit Tes2ng Ac2vity. SWEN-261 Introduc2on to So3ware Engineering. Department of So3ware Engineering Rochester Ins2tute of Technology
Unit Tes2ng Ac2vity SWEN-261 Introduc2on to So3ware Engineering Department of So3ware Engineering Rochester Ins2tute of Technology Your activity for the Unit Testing lesson is to build tests for existing
More informationAnnotations 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 informationProgramming - 2. Common Errors
Common Errors There are certain common errors and exceptions which beginners come across and find them very annoying. Here we will discuss these and give a little explanation of what s going wrong and
More informationUnit Testing : Software Testing
Unit Testing 219343: Software Testing Some materials are from Alberto Savoia's slides on unit testing, George Necula's software engineering course, and Hunt and Thomas, Pragmatic Unit Testing, 2003. 11/24/07
More informationFunctional Testing (Testování funkčnosti)
Functional Testing (Testování funkčnosti) http://d3s.mff.cuni.cz Pavel Parízek parizek@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Nástroje pro vývoj software Functional
More information1 Shyam sir JAVA Notes
1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write
More informationUnit testing. unit testing: Looking for errors in a subsystem in isolation. The basic idea: JUnit provides "assert" commands to help us write tests.
JUnit ENGI 5895 Adapted from slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia http://www.cs.washington.edu/331/ 1 Unit testing unit testing: Looking
More informationFrequently Asked Questions
Frequently Asked Questions This PowerTools FAQ answers many frequently asked questions regarding the functionality of the various parts of the PowerTools suite. The questions are organized in the following
More informationUsing Eclipse Europa - A Tutorial
Abstract Lars Vogel Version 0.7 Copyright 2007 Lars Vogel 26.10.2007 Eclipse is a powerful, extensible IDE for building general purpose applications. One of the main applications
More informationCSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques
CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques Review from Lecture 12 Rules for writing recursive functions: 1. Handle the base case(s). 2. Define the problem solution in terms
More informationTopics in Software Testing
Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the
More informationASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists
ASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists COMP-202B, Winter 2009, All Sections Due: Tuesday, April 14, 2009 (23:55) You MUST do this assignment individually and, unless otherwise
More informationDesigning Robust Classes
Designing Robust Classes Learning Goals You must be able to:! specify a robust data abstraction! implement a robust class! design robust software! use Java exceptions Specifications and Implementations
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 9 (Part II) Recursion MOUNA KACEM Recursion: General Overview 2 Recursion in Algorithms Recursion is the use of recursive algorithms to solve a problem A recursive algorithm
More informationApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum
ApacheCon NA 2015 How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum 1Tech, Ltd. 29 Harley Street, London, W1G 9QR, UK www.1tech.eu 1 Overview Common Getting Started Problems Common
More information