|
状态转换图(STD)可以用来帮助导出类的动态行为的测试序列,以及这些类与之合作的类的动态行为测试序列。
|
|
|
为了说明问题,仍使用前面讨论过的account类。开始由empty acct状态转换为setup acct状态。类实例的大多数行为发生在working acct状态中。而最后,取款和关闭分别使account类转换到non-working acct和dead acct状态。如下图所示为状态转换图(STD)。
|
|
|
|
|
这样,设计的测试用例应当是完成所有的状态转换。换句话说,操作序列应当能导致account类所有允许的状态进行转换。
|
|
|
测试用例1:open+setupAcct+deposit(initial)+withdraw(final)+close;
|
|
|
应该注意,该序列等同于一个最小测试序列,加入其他测试序列到最小序列中。
|
|
|
测试用例2:open+setupAccnt+deposit(initial)+deposit+balance+credit+withdraw(final)+ close;
|
|
|
测试用例3:open+setupAccnt+deposit(initial)+deposit+withdraw+accntInfo+withdraw(final)+close。
|
|
|
还可以导出更多的测试用例,以保证该类所有行为被充分检查,在类行为导致与一个或多个类协作的情况下,可使用多个STD去跟踪系统的行为流。
|
|
|
面向对象测试的整体目标——以最小的工作量发现最多的错误,和传统软件测试的目标是一致的,但是由于OO软件具有的特殊性质,在测试的策略和战术上有很大不同。测试的视角扩大到包括复审分析和设计模型,此外,测试的焦点从过程构件(模块)移向了类。
|
|
|
①OOA(Object-Oriented Analysis)和OOD(Object-Oriented Design)的评审与传统软件的分析和设计相同,应给出相应的评审检查表。
|
|
|
②OOP(Object-Oriented Programming)后,单元和组装测试策略必须作相应的改变。
|
|
|
|