warning
DESCRIPTION
WARNING. These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010. They may not show up well on other PowerPoint versions . You can download PowerPoint 2010 viewer from here . - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/1.jpg)
WARNING
These slides are not optimized for printing or exam preparation. These are for lecture delivery only.
These slides are made for PowerPoint 2010. They may not show up well on other PowerPoint versions. You can download PowerPoint 2010 viewer from here.
These slides contain a lot of animations. For optimal results, watch in slideshow mode.
![Page 2: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/2.jpg)
How long will they take to catch all fish?a) Less than 1 hourb) Around 1 hourc) About 100 hoursd) Forever
fish {a|b|c|d}e.g. fish c 77577
If 100 people trying to catch 100 piranha fish in a lake. On average, one person can catch one fish within 1 hour
![Page 3: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/3.jpg)
![Page 4: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/4.jpg)
System testing
SUT
![Page 5: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/5.jpg)
![Page 6: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/6.jpg)
System testing
SUT
![Page 7: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/7.jpg)
System testing
SUT
![Page 8: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/8.jpg)
Do you want maximum publicity for your mistakes?
![Page 9: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/9.jpg)
Do you want maximum publicity for your mistakes?
![Page 10: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/10.jpg)
Never too early to test:
An Introduction to Early Developer Testing
CS2103/T, Lecture 4, Part 2, [Sep 6, 2013]
![Page 11: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/11.jpg)
UI
MSLogic
Storage
Hist
ory
UI
MSLogic
Storage
Hist
ory
Unit testing
![Page 12: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/12.jpg)
UI
MSLogic
Storage
Hist
ory
UI
MSLogic
Storage
Hist
ory
Unit testing
![Page 13: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/13.jpg)
UI
MSLogic
Storage
Hist
ory
SUT
Unit testing
![Page 14: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/14.jpg)
UI
MSLogic
Storage
Hist
ory
SUT
Unit testing
![Page 15: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/15.jpg)
UI
MSLogic
Storage
Hist
ory
SUT
Stub
Stub
Test
Driv
er
Unit testing
![Page 16: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/16.jpg)
UI
MSLogic
Storage
Hist
ory
SUT
Stub
Stub
Test
Driv
er
String getItem (int key){ if(key==1) return “Item for key 1”; if(key==2) return “Item for key 2”; …
Unit testing
![Page 17: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/17.jpg)
UI
MSLogic
Storage
Hist
ory
SUT==MSLogic
Stub
Stub
Test
Driv
er
String item = msLogic.getItem(1);if(!item.equals(“Item1”) print(“Case 1 failed”);…
Unit testing
![Page 18: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/18.jpg)
String item = msLogic.getItem(1);if(!item.equals(“Item1”) print(“Case 1 failed”);…
assertEquals(msLogic.getItem(1), “Item1”);…
Testing frameworks
![Page 19: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/19.jpg)
![Page 20: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/20.jpg)
![Page 21: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/21.jpg)
Unit testing
UI
MSLogic
Storage
Hist
ory
![Page 22: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/22.jpg)
Unit testing
UI
MSLogic
Storage
Hist
ory
![Page 23: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/23.jpg)
Integration testing
UI
MSLogic
Storage
Hist
ory
![Page 24: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/24.jpg)
Integration testing
UI
MSLogic
Storage
Hist
ory
![Page 25: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/25.jpg)
Integration testing
UI
MSLogic
Storage
Hist
ory
![Page 26: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/26.jpg)
Test-Driven Development (TDD)
SUT
![Page 27: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/27.jpg)
Write a failing test
Write code to pass test
Test-Driven Development (TDD)
![Page 28: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/28.jpg)
CityConnect.java
CityConnectTest.java
![Page 29: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/29.jpg)
CityConnect.java
CityConnectTest.java
![Page 30: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/30.jpg)
CityConnect.java
CityConnectTest.java
Clementi --- EunosEunos --- Novena
Clementi trueNovena trueEunos trueChangi false
![Page 31: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/31.jpg)
CityConnect.java
CityConnectTest.java
![Page 32: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/32.jpg)
CityConnect.java
CityConnectTest.java
![Page 33: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/33.jpg)
CityConnect.java
CityConnectTest.java
![Page 34: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/34.jpg)
CityConnect.java
CityConnectTest.java
![Page 35: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/35.jpg)
CityConnect.java
CityConnectTest.java
![Page 36: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/36.jpg)
CityConnect.java
CityConnectTest.java
![Page 37: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/37.jpg)
CityConnect.java
CityConnectTest.java
![Page 38: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/38.jpg)
CityConnect.java
CityConnectTest.java
![Page 39: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/39.jpg)
CityConnect.java
CityConnectTest.java
![Page 40: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/40.jpg)
CityConnect.java
CityConnectTest.java
![Page 41: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/41.jpg)
CityConnect.java
CityConnectTest.java
![Page 42: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/42.jpg)
CityConnect.java
CityConnectTest.java
![Page 43: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/43.jpg)
CityConnect.java
CityConnectTest.java
![Page 44: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/44.jpg)
CityConnect.java
CityConnectTest.java
![Page 45: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/45.jpg)
CityConnect.java
CityConnectTest.java
![Page 46: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/46.jpg)
CityConnect.java
CityConnectTest.java
![Page 47: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/47.jpg)
CityConnect.java
CityConnectTest.java
![Page 48: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/48.jpg)
CityConnect.java
CityConnectTest.java
Note: more test cases required.
![Page 49: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/49.jpg)
Test-Driven Development (TDD)
Write a failing test
Write code to pass test
![Page 50: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/50.jpg)
![Page 51: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/51.jpg)
![Page 52: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/52.jpg)
60+ developers
75,000 Lines of Code
![Page 53: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/53.jpg)
![Page 54: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/54.jpg)
Automated tests
![Page 55: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/55.jpg)
![Page 56: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/56.jpg)
When the system test fails...
![Page 57: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/57.jpg)
Must have automated developer tests!
![Page 58: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/58.jpg)
Only system testing? NO
It can save your career.
Automated test driver
frameworks
Can do in TDD fashion
Must do developer testing
![Page 59: WARNING](https://reader036.vdocuments.site/reader036/viewer/2022070420/56815df5550346895dcc2c2d/html5/thumbnails/59.jpg)
↙ ?Should do this too
Everyone should do some
Use these
Do in CE2,Optional in project