27.07.2013 Views

2 Why We Need Model-Based Testing

2 Why We Need Model-Based Testing

2 Why We Need Model-Based Testing

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

62<br />

63<br />

61<br />

60<br />

31<br />

Systems with Finite <strong>Model</strong>s 139<br />

13<br />

3<br />

ServerSocket()<br />

65<br />

66<br />

70<br />

64<br />

29<br />

22<br />

20<br />

21<br />

7<br />

8<br />

19<br />

6<br />

Test(0) Test(5) Test(3) Test(2)<br />

ServerSocket()<br />

ServerBind()<br />

ServerListen()<br />

ClientSocket()<br />

ClientConnect()<br />

ServerAccept()<br />

ClientSend()<br />

ServerReceive()<br />

ServerSend(double("100"))<br />

ClientReceive_Start()<br />

ClientReceive_Finish(double("99.9")) ClientReceive_Finish(double("100"))<br />

ClientClose()<br />

30<br />

18<br />

17<br />

14<br />

15<br />

16<br />

ServerAccept()<br />

ClientSocket()<br />

ServerBind()<br />

ServerListen()<br />

ClientConnect()<br />

ServerSend(double("99.9"))<br />

ServerCloseConnection()<br />

ServerClose()<br />

ClientReceive_Start()<br />

67<br />

68<br />

69<br />

ServerCloseConnection()<br />

ServerClose()<br />

ClientClose()<br />

77<br />

74<br />

75<br />

76<br />

9<br />

10<br />

71<br />

72<br />

73<br />

5<br />

80<br />

0<br />

ClientSocket()<br />

ServerSocket()<br />

ServerBind()<br />

ServerListen()<br />

ClientConnect()<br />

ServerAccept()<br />

4<br />

48<br />

Test(4)<br />

1<br />

ClientSocket()<br />

49<br />

ServerSocket()<br />

50<br />

ServerBind()<br />

51<br />

ServerSend(double("99.9"))<br />

ServerCloseConnection()<br />

ClientReceive_Start()<br />

ServerListen()<br />

52<br />

59<br />

23<br />

ClientConnect()<br />

53<br />

Test(1)<br />

ServerSocket()<br />

24<br />

ServerBind()<br />

25<br />

ClientSocket()<br />

26<br />

ServerAccept()<br />

54<br />

ServerListen()<br />

27<br />

2<br />

ClientConnect()<br />

ServerSend(double("100"))<br />

55<br />

ServerCloseConnection()<br />

ClientReceive_Start()<br />

56<br />

57<br />

ClientSocket()<br />

28<br />

11<br />

ServerSocket()<br />

12<br />

ServerBind()<br />

32<br />

ServerListen()<br />

33<br />

ServerAccept()<br />

ClientReceive_Finish(double("99.9")) ClientReceive_Finish(double("100"))<br />

78<br />

ServerClose()<br />

79<br />

ClientClose()<br />

58<br />

ClientClose()<br />

ServerClose()<br />

42<br />

ClientConnect()<br />

34<br />

ServerSend(double("99.9"))<br />

43<br />

ClientReceive_Start()<br />

Figure 8.1. Client/server: test suite generated from contract model program.<br />

8.2 Traces and terms<br />

47<br />

ServerAccept()<br />

35<br />

ServerSend(double("100"))<br />

36<br />

ServerCloseConnection()<br />

ClientReceive_Finish(double("99.9")) ServerClose()<br />

44<br />

ClientClose()<br />

45<br />

46<br />

ServerCloseConnection()<br />

ServerClose()<br />

37<br />

38<br />

ClientReceive_Start()<br />

39<br />

ClientReceive_Finish(double("100"))<br />

40<br />

41<br />

ClientClose()<br />

In order to write the test harness that connects the implementation to the test runner,<br />

you must understand how test suites are represented in the files written by the test<br />

generator.<br />

more free ebooks download links at:<br />

http://www.ebook-x.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!