Software LEIC/LETI. Lecture 3
|
|
- Kelly Reynolds
- 6 years ago
- Views:
Transcription
1 Software LEIC/LETI Lecture 3
2 Last Lecture System Build Continuous Integration
3 Today Test Automation Verification and Validation Human Error, Fault, Error, Failure Verification vs Validation
4 Test automation
5 During builds we run tests, so we need a tool that help us to automate the testing
6 How can we test a system?
7 through the user interface How can we test a system?
8 through the user interface writing code in the main How can we test a system?
9 through the user interface writing code in the main DISADVANTAGES? How can we test a system?
10 Difficult to manage how to set the state of the system before the test? how to reset the effects of the test in the state after test execution?
11 Expensive to repeat need to interact again through the user interface rewrite the main method for each new test case
12 So, we need a tool
13 So, we need a tool - that stores the test cases
14 So, we need a tool - that stores the test cases - that sets and cleans the context of tests
15 JUnit
16 The tester focus on testing
17 The framework does the plumbing
18 for each test setup context run the test collect results clean the context present results
19 for each test setup context run the test never crashes! collect results clean the context present results
20 @Before public void setup() throws Exception { bank = new Bank( International ); public void deposit() { Account euaccount = new Account( João, EUR ); bank.addaccount(euaccount); euaccount.deposit(new Money(12, EUR )); } asserttrue(euaccount.getbalance().getvalue() == 12); assertequals( EUR, = IncorrectCurrencyException.class) public void depositinadifferentcurrency() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } swaccount.deposit(new Money(12, EUR public void teardown() { for (Account account : bank.getaccounts()) { account.remove(); } bank.remove(); }
21 @Before public void setup() throws Exception { bank = new Bank( International ); } public void deposit() { Account euaccount = new Account( João, EUR ); bank.addaccount(euaccount); euaccount.deposit(new Money(12, EUR )); } asserttrue(euaccount.getbalance().getvalue() == 12); assertequals( EUR, = IncorrectCurrencyException.class) public void depositinadifferentcurrency() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } swaccount.deposit(new Money(12, EUR public void teardown() { for (Account account : bank.getaccounts()) { account.remove(); } bank.remove(); }
22 @Before public void setup() throws Exception { bank = new Bank( International ); } public void deposit() { Account euaccount = new Account( João, EUR ); bank.addaccount(euaccount); euaccount.deposit(new Money(12, EUR )); run } asserttrue(euaccount.getbalance().getvalue() == 12); assertequals( EUR, = IncorrectCurrencyException.class) public void depositinadifferentcurrency() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } swaccount.deposit(new Money(12, EUR public void teardown() { for (Account account : bank.getaccounts()) { account.remove(); } bank.remove(); }
23 @Before public void setup() throws Exception { bank = new Bank( International ); } public void deposit() { Account euaccount = new Account( João, EUR ); bank.addaccount(euaccount); euaccount.deposit(new Money(12, EUR )); run } asserttrue(euaccount.getbalance().getvalue() == 12); assertequals( EUR, = IncorrectCurrencyException.class) public void depositinadifferentcurrency() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } swaccount.deposit(new Money(12, EUR public void teardown() { for (Account account : bank.getaccounts()) { account.remove(); } bank.remove(); } clean
24 @Before public void setup() throws Exception { bank = new Bank( International ); public void deposit() { Account euaccount = new Account( João, EUR ); bank.addaccount(euaccount); euaccount.deposit(new Money(12, EUR )); setup run setup } asserttrue(euaccount.getbalance().getvalue() == 12); assertequals( EUR, = IncorrectCurrencyException.class) public void depositinadifferentcurrency() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } swaccount.deposit(new Money(12, EUR public void teardown() { for (Account account : bank.getaccounts()) { account.remove(); } bank.remove(); } clean
25 @Before public void setup() throws Exception { bank = new Bank( International ); public void deposit() { Account euaccount = new Account( João, EUR ); bank.addaccount(euaccount); euaccount.deposit(new Money(12, EUR )); setup run setup } asserttrue(euaccount.getbalance().getvalue() == 12); assertequals( EUR, = IncorrectCurrencyException.class) public void depositinadifferentcurrency() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); run } swaccount.deposit(new Money(12, EUR public void teardown() { for (Account account : bank.getaccounts()) { account.remove(); } bank.remove(); } clean
26 @Before public void setup() throws Exception { bank = new Bank( International ); public void deposit() { Account euaccount = new Account( João, EUR ); bank.addaccount(euaccount); euaccount.deposit(new Money(12, EUR )); setup run setup } asserttrue(euaccount.getbalance().getvalue() == 12); assertequals( EUR, = IncorrectCurrencyException.class) public void depositinadifferentcurrency() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); run } swaccount.deposit(new Money(12, EUR public void teardown() { for (Account account : bank.getaccounts()) { account.remove(); } bank.remove(); } clean clean
27 In the cases that an exception occurs we may want to verify that the state didn't change
28 @Test(expected = IncorrectCurrencyException.class) public void deposit() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } swaccount.deposit(new Money(12, EUR ));
29 @Test(expected = IncorrectCurrencyException.class) public void deposit() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } swaccount.deposit(new Money(12, EUR )); vs
30 @Test(expected = IncorrectCurrencyException.class) public void deposit() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } swaccount.deposit(new Money(12, EUR )); public void deposit() { Account swaccount = new Account( Jean, CHF ); bank.addaccount(swaccount); } try { swaccount.deposit(new Money(12, EUR )); fail(); } catch(incorrectcurrencyexception e) { assertequals(0, swaccount.getbalance()); }
31 Tests in the project
32 two different trees that share the same naming structure
33 Bank Module * Operation 1 String reference OperationType type int value DateTime time 1 Bank * String code String name 1 Client String ID String name 1 * * Account String IBAN int balance
34
35 pt.ulisboa.tecnico.softeng.bank.domain
36 pt.ulisboa.tecnico.softeng.bank.domain one test class for each method
37
38
39 easier to show the code using eclipse
40 Activity Module ActivityProvider 1 * Activity 1 * ActivityOffer 1 * Booking String name String code String name String code int minage int maxage int capacity LocalDate begin LocalDate end int capacity String reference
41 let s show the code using eclipse
42 Hotel Module Hotel 1 * Room 1 * Booking String code String name String number RoomType type String reference LocalDate arrival LocalDate departure
43 let s show the code using eclipse
44 Broker Module Broker String code Sting name 1 * Adventure String ID LocalDate begin LocalDate end int age String IBAN int amount String bankpayment String roombooking String activitybooking 1 1 AdventureState int raeerrors InitialState PayedState ConfirmedState CanceledState
45 let s show the code using eclipse
46 Software Testing To Err is Human
47 Software has bugs!
48 Why?
49 Why?
50 To err is human
51 Humans write software
52 Computers execute software
53 Human Error
54 Human Error creates
55 Human Error creates Fault
56 Human Error creates Fault generates
57 Human Error creates Fault generates Error
58 Human Error creates Fault generates Error... generates more errors
59 Human Error creates Fault generates Error... generates more errors Failure
60 Human Error creates Fault generates Identify faults Error... generates more errors Failure
61 Human Error creates Fault Identify faults generates Error D I S T... generates more errors A N C E Failure
62 Human Error creates Fault Identify faults generates Error D I S T Time since it was created... generates more errors A N C E Failure
63 Human Error creates Fault generates D Time since it I was created Error S Identify faults T A... generates more errors N C Number of errors before E failure Failure
64 Failure
65 Failure... identify
66 Failure... identify Fault
67 Failure... identify Fault
68 Failure... identify Fault cause
69 Failure... identify Fault cause Human Error
70 Failure... identify Fault cause Human Error
71 Failure... identify Fault cause Human Error infer more
72 Failure... identify Fault cause Human Error infer more Fault
73 Failure... identify Identify the cause of bugs Fault cause Human Error infer more Fault
74 Failure... identify Identify the cause of bugs Fault cause Human Error infer more Fault It helps to identify other faults that have the same cause
75
76 Human Error - an human action which produces software faults
77 Human Error - an human action which produces software faults Fault - an omission, a defect, in the software cause of a human error
78 Human Error - an human action which produces software faults Fault - an omission, a defect, in the software cause of a human error Error - an unexpected change in the system behaviour caused by a fault
79 Human Error - an human action which produces software faults Fault - an omission, a defect, in the software cause of a human error Error - an unexpected change in the system behaviour caused by a fault Failure - an observable error
80 Is it a bug or a feature?
81 Did we build the right product?
82 Did we build the product right?
83 back to basics...
84 Software is language
85 How can we write the right product?
86 problem specification vs client needs
87 Verification - we did it right, according to the specification
88 Validation - we did it according to the client needs
89 Developer
90 Developer builds according to the specification
91 Developer builds according to the specification Software System
92 Developer builds according to the specification Software System Client
93 Developer builds according to the specification Software System uses according to their needs Client
94 Developer builds according to the specification Software System may be a mismatch uses according to their needs Client
95 Software System
96 Software System tests according to the specification
97 Software System tests according to the specification Developer (tester)
98 Software System tests according to the specification tests according to their needs Developer (tester)
99 Software System tests according to the specification tests according to their needs Developer Client (tester)
100 There is a mismatch between the problem specification and the client needs language transformations
101 How can we solve this mismatch?
102 Work with the client there is no problem specification less transformations
103 Is it always possible? if we do not have a client in the team
104 Have precise specifications small transformations
105 So is it a bug or a feature?
106 What can I test?
107 source code
108 source code requirement documents
109 source code requirement documents models
110 source code requirement documents models solution specifications
111 source code requirement documents... models solution specifications
112 source code requirement documents... models solution specifications Tests, reviews, inspections,
113
114 All software development artefacts!
115 How do I test?
116 As a mathematician
117 Prove that the software is correct
118 It is driven by the specification
119 As an accountant
120 Inspect the software
121 It is driven by experience and standards
122 as an engineer
123 run the software enough times
124 When is enough, enough?
125 Both, static (reviews and inspections) and dynamic (tests) verification and validation is important!
126 When should we apply each technique?
127 Reviews and Inspections can be applied to all descriptions humans are good at reading descriptions
128 Tests runtime behaviour of the system computers are good at executing descriptions
Software LEIC/LETI. Lecture 1
Software Engineering @ LEIC/LETI Lecture 1 António Rito Silva Francisco Regateiro David Duarte es18-alameda.slack.com alameda@leic-es.tecnico.ulisboa.pt Logistics Classes Lectures The concepts and real
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 4 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Recap Test in general validation and defect test unit-, component-, system-,
More informationSoftware LEIC/LETI. Lecture 10
Software Engineering @ LEIC/LETI Lecture 10 Last Lecture Project Management Large Number of Features Project Planning Risk Management Agile Planning Scrum (Sommerville, Fig 3.9) (http://en.wikipedia.org/wiki/scrum_(software_development))
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 informationSoftware LEIC/LETI. Lecture 5
Software Engineering @ LEIC/LETI Lecture 5 Last Lecture Verification and Validation Reviews and Inspections Software Testing Coverage Statement, branch, and path coverage Equivalence partitioning Boundary
More informationObjectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process
Objectives Chapter 19 Verification and Validation Assuring that a software system meets a user s need are to introduce software verification and validation (V&V) and to discuss the distinction between
More informationSoftwaretechnik. Lecture 08: Testing and Debugging Overview. Peter Thiemann SS University of Freiburg, Germany
Softwaretechnik Lecture 08: Testing and Debugging Overview Peter Thiemann University of Freiburg, Germany SS 2012 Literature Essential Reading Why Programs Fail: A Guide to Systematic Debugging, A Zeller
More informationSoftwaretechnik. Lecture 08: Testing and Debugging Overview. Peter Thiemann SS University of Freiburg, Germany
Softwaretechnik Lecture 08: Testing and Debugging Overview Peter Thiemann University of Freiburg, Germany SS 2012 Literature Essential Reading Why Programs Fail: A Guide to Systematic Debugging, A Zeller
More informationMutating Object State and Implementing Equality
Mutating Object State and Implementing Equality 6.1 Mutating Object State Goals Today we touch the void... (sounds creepy right... see the movie, or read the book, to understand how scary the void can
More information11 HashMap: Overriding equals ; JUnit; Vistors
11 HashMap: Overriding equals ; JUnit; Vistors Goals In this lab we will first learn how to define the equals method, as well as how to use the HashMap data structure defined in the Java Collections Frameworks.
More informationCS 424 Software Quality Assurance & Testing LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I
LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I WHAT IS SOFTWARE TESTING? Testing can find faults in the software but cannot prove that the software is error-free. OBJECTIVES OF SOFTWARE TESTING To test
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 3 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents Programming Tips and Tricks Booleans Constants Delegation Requirements
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 3 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Recap Requirements Engineering functional / non-functional requirements Elicitation,
More informationPart 5. Verification and Validation
Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this
More informationObject-Oriented and Classical Software Engineering
Slide 1.1 CHAPTER 1 Slide 1.2 Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 THE SCOPE OF SOFTWARE ENGINEERING Stephen R. Schach Outline Slide 1.3 Outline (contd)
More informationLecture 15 Software Testing
Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered
More informationSoftware LEIC/LETI. Lecture 18
Software Engineering @ LEIC/LETI Lecture 18 Last Lecture Web presentation patterns Model View Controller Template View Page Controller Front Controller Transform View Two Step View Presentation logic Services
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 informationObject-Oriented and Classical Software Engineering
Object-Oriented and Classical Software Engineering Slide 1.1 Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach srs@vuse.vanderbilt.edu CHAPTER 1 Slide 1.2 THE SCOPE OF SOFTWARE ENGINEERING 1 Outline
More informationObject Oriented Programming. Week 7 Part 1 Exceptions
Object Oriented Programming Week 7 Part 1 Exceptions Lecture Overview of Exception How exceptions solve unexpected occurrences Catching exceptions Week 7 2 Exceptions Overview Week 7 3 Unexpected Occurances
More informationChapter 10. Testing and Quality Assurance
Chapter 10 Testing and Quality Assurance Different styles of doing code review Human Reviewer Code Inspection with continuous integration infrastructure Pinger s testing set up Testing Related topics 1.
More informationVideo 2.1. Arvind Bhusnurmath. Property of Penn Engineering, Arvind Bhusnurmath. SD1x-2 1
Video 2.1 Arvind Bhusnurmath SD1x-2 1 Topics Why is testing important? Different types of testing Unit testing SD1x-2 2 Software testing Integral part of development. If you ship a software with bugs,
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 informationJUnit in EDA Introduction. 2 JUnit 4.3
Lunds tekniska högskola Datavetenskap, Nov 25, 2010 Görel Hedin EDA260 Programvaruutveckling i grupp projekt Labb 3 (Test First): Bakgrundsmaterial JUnit in EDA260 1 Introduction The JUnit framework is
More informationLecture 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 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 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 informationLaboratorio di Tecnologie dell'informazione
Laboratorio di Tecnologie dell'informazione Ing. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code testing: techniques and tools Testing can show the presence of errors, but not
More informationNo 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 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 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 informationBlack 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 informationSoftware LEIC/LETI. Lecture 15
Software Engineering @ LEIC/LETI Lecture 15 Last Lecture Software Architecture Architectural Patterns Application Architectures Software Architecture in the Project Today Enterprise Application Architecture
More informationFaults, Errors, Failures
Faults, Errors, Failures CS 4501 / 6501 Software Testing [Ammann and Offutt, Introduction to Software Testing ] 1 Software Testing Review Testing = process of finding input values to check against a software
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 informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 3 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2013 Recap Requirements Engineering user- / system requirements functional- / non-functional
More informationhttps://www.lri.fr/ linaye/gl.html
Software Engineering https://www.lri.fr/ linaye/gl.html lina.ye@centralesupelec.fr Sequence 3, 2017-2018 1/61 Software Engineering Plan 1 2 3 4 5 2/61 Software Engineering Software Testing 3/61 Software
More informationFinancial computing with C++
Financial Computing with C++, Lecture 10 - p1/20 Financial computing with C++ LG Gyurkó University of Oxford Michaelmas Term 2015 Financial Computing with C++, Lecture 10 - p2/20 Outline Coding practices
More informationTesting, Debugging, Program Verification
Testing, Debugging, Program Verification Debugging Programs, Part II Wolfgang Ahrendt & Vladimir Klebanov & Moa Johansson & Gabriele Paganelli 14 November 2012 TDV: Debugging II /GU 2011-11-09 1 / 32 Today
More informationTopics. Software Testing Test Driven Development Black Box Testing Unit Testing White Box Testing Coverage Testing Software Debugging
Supplemental Materials: Software esting CS2: Data Structures and Algorithms Colorado State University Chris Wilcox, Russ Wakefield, Wim Bohm, Dave Matthews opics Software esting est Driven Development
More informationPractical 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 informationSoftware Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals
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 informationThree 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 informationExternal Transfers Add and Verify Accounts
Deposit accounts at other financial institutions are eligible to transfer funds to and from your Consumers deposit accounts. These outside accounts must be validated to prove ownership before they can
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 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 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 informationpublic class Account { private int id; private static int nextaccountid = 0; private String name; private double balance;
public class Account { private int id; private static int nextaccountid = 0; private String name; private double balance; public double deposit(double amount) { public double withdraw(double amount) {
More informationSoftware 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 informationLevels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy
Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development
More informationVerification and Validation
Verification and Validation Minsoo Ryu Hanyang University Topics Covered 1. Verification and Validation 2. Software Inspections 3. Automated Static Analysis 4. Verification and Formal Methods 2 2 1. Verification
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 informationAssertions. Assertions - Example
References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 11/13/2003 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,
More informationLevels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy
Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development
More informationIntegrating verification in programming languages
Integrating verification in programming languages Thomas Jensen, INRIA Seminar INRIA Rennes, 04/11/2015 Collège de France Chaire Algorithmes, machines et langages x / y Types For division to make sense,
More informationEECS 4313 Software Engineering Testing. Topic 01: Limits and objectives of software testing Zhen Ming (Jack) Jiang
EECS 4313 Software Engineering Testing Topic 01: Limits and objectives of software testing Zhen Ming (Jack) Jiang Acknowledge Some of the contents are from Prof. Alex Orso, Bil Tzerpos and Gunnar Gotshalks
More informationVerification, Testing, and Bugs
Verification, Testing, and Bugs Ariane 5 Rocket First Launch Failure https://www.youtube.com/watch?v=gp_d8r- 2hwk So What Happened? The sequence of events that led to the destruction of the Ariane 5 was
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 informationThe requirements engineering process
3 rd Stage Lecture time: 8:30-12:30 AM Instructor: Ali Kadhum AL-Quraby Lecture No. : 5 Subject: Software Engineering Class room no.: Department of computer science Process activities The four basic process
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 informationSoftware 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 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 informationCS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING
1 CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING Outline 2 Quiz Black-Box Testing Equivalence Class Testing (Equivalence Partitioning) Boundary value analysis Decision Table Testing 1 3 Quiz - 1
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 informationVerification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1
Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should
More informationIntroduction 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 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 informationSecond assignment came out Monday evening. Find defects in Hnefetafl rules written by your classmates. Topic: Code Inspection and Testing
Announcements Second assignment came out Monday evening Topic: Code Inspection and Testing Find defects in Hnefetafl rules written by your classmates Compare inspection, coverage testing, random testing,
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 informationIntroduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS
Introduction To Software Testing Brian Nielsen bnielsen@cs.aau.dk Center of Embedded Software Systems Aalborg University, Denmark CSS 1010111011010101 1011010101110111 What is testing? Testing Testing:
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 informationCSCE 548 Building Secure Software Software Analysis Basics
CSCE 548 Building Secure Software Software Analysis Basics Professor Lisa Luo Spring 2018 Previous Class Ø Android Background Ø Two Android Security Problems: 1. Android App Repackaging o Very easy to
More informationAdvanced Java Concepts Unit 2: Linked Lists.
Advanced Java Concepts Unit 2: Linked Lists. The List interface defines the structure of a linear collection. Here are some of its methods. boolean add( E element ) Appends the element to the end of the
More information1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE
1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE LECTURE-1 Syllabus Introduction 1.1 Introduction to Object Oriented 1.2 Introduction to UML 1.3 Software Process and OOA&D 1.4 Component and CBSD 1.5 Patterns
More informationProblem other classes messing with my stuff!
Cloning Problem other classes messing with my stuff! Java Message passing is pass by reference Setting a instance field equal to a constructor parameter that is a mutable object means that if that object
More informationAgile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?
Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.
More informationSkyware Systems Release Notes 8/9/16 Page 1 of 6
System Release Notes Release Date: Aug, 2016 Skyware Release Notes Here are the MANY great ideas you ve given us to make the system better! I. New Quick Quote Screen! Skyware has a new Quick Quote screen
More informationIan Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1
Verification and Validation Slide 1 Objectives To introduce software verification and validation and to discuss the distinction between them To describe the program inspection process and its role in V
More informationTeam One Mobile Banking App DETAILED ENHANCEMENTS
Team One Mobile Banking App DETAILED ENHANCEMENTS Team One Mobile Banking App DETAILED ENHANCEMENTS Table of Contents Page Touch ID 3 QuickBalance 4 MiSnap 6 Bill Pay Enhancement 6 AnyWhereMobile Set Up
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 informationCOMP 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 informationAutomated Acceptance testing by Developers & Automated Functional Testing by Testers
Automated Acceptance testing by Developers & Automated Functional Testing by Testers Gowrishankar Sundararajan QA Manager Tata Consultancy Services, Canada Executive Summary Overview on Traditional Agile
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 informationCredit where Credit is Due. Lecture 29: Test-Driven Development. Test-Driven Development. Goals for this lecture
Lecture 29: Test-Driven Development Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some of the material for this lecture is taken from
More informationTesting. 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 informationLaboratorio di Programmazione. Prof. Marco Bertini
Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code testing: techniques and tools Testing can show the presence of errors, but not their absence.
More informationLaboratorio di Tecnologie dell'informazione
Laboratorio di Tecnologie dell'informazione Ing. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code testing: techniques and tools Testing can show the presence of errors, but not
More informationEnterprise JavaBeans: BMP and CMP Entity Beans
CIS 386 Course Advanced Enterprise Java Programming Enterprise JavaBeans: BMP and CMP Entity Beans René Doursat Guest Lecturer Golden Gate University, San Francisco February 2003 EJB Trail Session Beans
More informationBeyond JUnit: Introducing TestNG The Next Generation in Testing
Beyond JUnit: Introducing TestNG The Next Generation in Testing Hani Suleiman CTO Formicary http://www.formicary.net hani@formicary.net TS 3097 2006 JavaOne SM Conference Session TS-3097 Testing Renewed
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 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 informationBinghamton University. CS-140 Fall Unit Testing
Unit Testing 1 Test Early, Test Often 2 Informal Unit Testing package lab05; import java.lang.illegalargumentexception; public class ProfTest { public static void main(string[] args) { System.out.println("Professor
More informationStatic program checking and verification
Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness
More informationSoftware Engineering
Software Engineering Lecture 13: Testing and Debugging Testing Peter Thiemann University of Freiburg, Germany SS 2014 Recap Recap Testing detect the presence of bugs by observing failures Recap Testing
More informationWeek 3 Classes and Objects
Week 3 Classes and Objects written by Alexandros Evangelidis, adapted from J. Gardiner et al. 13 October 2015 1 Last Week Last week, we looked at some of the different types available in Java, and the
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 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 informationPatterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture CS446/ECE452/SE464 Majed Al-Shawa Q1: Performance There are two systems, Shark and Whale. Each system is running on a single processor, but Shark produces
More informationUNIT 3 ARRAYS, RECURSION, AND COMPLEXITY CHAPTER 11 CLASSES CONTINUED
UNIT 3 ARRAYS, RECURSION, AND COMPLEXITY CHAPTER 11 CLASSES CONTINUED EXERCISE 11.1 1. static public final int DEFAULT_NUM_SCORES = 3; 2. Java allocates a separate set of memory cells in each instance
More information