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.
[Extra] 100 fish If 100 people trying to catch 100 piranha fish. How long will they take to catch all fish? Less than 1 hour Around 1 hour About 100 hours Forever If 100 people trying to catch 100 piranha fish. On average, one person can catch one fish within 1 hour
[Extra] 100 fish If 100 people trying to catch 100 piranha fish. How long will they take to catch all fish? Less than 1 hour Around 1 hour About 100 hours Forever If 100 people trying to catch 100 piranha fish. On average, one person can catch one fish within 1 hour
[Extra] 100 fish If 100 people trying to catch 100 piranha fish. How long will they take to catch all fish? Less than 1 hour Around 1 hour About 100 hours Forever If 100 people trying to catch 100 piranha fish. On average, one person can catch one fish within 1 hour
System testing SUT
System testing SUT
System testing SUT
[Extra] who wants maximum publicity Do you want maximum publicity for your mistakes?
[Extra] who wants maximum publicity Do you want maximum publicity for your mistakes?
An Introduction to Early Developer Testing Never too early to test: An Introduction to Early Developer Testing
MSLogic Unit testing History UI MSLogic History UI Storage Storage
MSLogic Unit testing History UI MSLogic History UI Storage Storage
Unit testing Test Driver Stub String item = msLogic.getItem(1); UI SUT== MSLogic MSLogic History Storage Stub String item = msLogic.getItem(1); if(!item.equals(“Item1”) print(“Case 1 failed”); …
Unit testing Test Driver Stub String item = msLogic.getItem(1); UI SUT== MSLogic MSLogic History Storage Stub String item = msLogic.getItem(1); if(!item.equals(“Item1”) print(“Case 1 failed”); …
Testing frameworks String item = msLogic.getItem(1); if(!item.equals(“Item1”) print(“Case 1 failed”); … Testing frameworks assertEquals(msLogic.getItem(1), “Item1”); JUnit
Unit testing Developer testing Automated A type of UI History MSLogic Storage Developer testing A type of
Test-Driven Development (TDD) SUT
Test-Driven Development (TDD) Write a failing test Write code to pass test
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
Write the java code for the above CityConnectTest.java CityConnect.java We want have this. Clementi true Novena true Eunos true Changi false Clementi, Eunos, 20 Eunos, Novena, 40 Write the java code for the above
CityConnectTest.java CityConnect.java Rule 1/3: Do not write functional code unless there is a failing test case.
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java Rule 2/3: Write minimal code to pass the test cases.
CityConnectTest.java CityConnect.java Rule: No more test code than is necessary to fail.
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java CityConnect.java
CityConnectTest.java Note: more test cases required. CityConnect.java Refactor as necessary.
Test-Driven Development (TDD) Write a failing test Write code to pass test
[Extra] who wants maximum publicity When the system test fails... Do you want maximum publicity for your mistakes?
Must have automated developer tests!
It can save your reputation. Must do developer testing Can do in TDD fashion Only system testing? NO Use automated test driver frameworks