借助购买商品的流程可以对服务进行白盒测试。白盒测试主要进行基本路径测试,我们在这里主要设计语句覆盖测试和分支覆盖测试,来设计面向对象软件的白盒测试的测试用例,测试用例的设计原则是保证在测试中程序的每一个可执行语句至少执行一次,针对购买商品的流程得出的具体路径有两条,路径1:1-2-3-4-5;路径2:1-3a-2-3-5a-4-4a-5。
根据路径生成测试用例:根据判断节点给出的条件,选择适当的数据以保证每一条路径可以被测试到。只要设计出的测试用例能够保证控制流程图中的所有路径都能被执行到,就可以使得程序中的每一个可执行语句至少执行一次,则服务中每个条件的真假两种取值都可以得到测试,从而实现可以检查程序的主要执行路径,又可以覆盖程序的所有分支,而且可以满足语句覆盖的要求。
5 小结
由于面向对象软件自身的特点,使得面向对象的白盒测试有别于传统的白盒测试思想。到目前为止,现有的面向对象软件测试方法还存在许多问题,对面向对象软件的白盒测试技术还有待进一步的深入研究,以便做出对软件测试的理论和实践有指导意义、有影响的成果。
参考文献
[1]LARMAN C.UML和模式应用:面向对象分析与设计导论[M].姚淑珍,李虎,译.北京:机械工业出版社,2001.
[2]JACOBSON I, BOOCH G, RUMBAUGH J.统一软件开发过程[M].周伯生,冯学民,樊东平,译.北京:机械工业出版社,2001.
[3]PRESSMAN R S.软件工程:实践者的研究方法[M].黄柏素,梅宏,译.北京:机械工业出版社,1999.
面向对象的白盒测试通常不能独立地测试一个方法(操作),这个方法相当于传统的测试单元,而是将这个方法作为一个测试类的一部分。
如果一个基类中有一个方法,继承类也继承了这个方法,但是这个方法可能在继承类中被私有数据和方法使用,所以尽管基类中已经测试了这个方法,但是每个继承类也需要考虑对这个方法进行测试。一般从下面两个方面进行考虑。
(1)继承的成员函数是否都不需要测试。一般来说,对父类中已经测试过的成员函数,两种情况需要在子类中重新测试,即继承的成员函数在子类中作了改动,或成员函数调用了改动过的成员函数的部分。
(2)对父类的测试是否能照搬到子类。多态有几种不同的形势,如参数多态,包含多态,过载多态。包含多态和过载多态在面向对象语言中通常体现在子类与父类的继承关系上。对具有包含多态的成员函数测试时,只需要在原有的测试分析的基础上扩大测试用例中输入数据的类型。
从上面的分析可以看出,面向对象的软件的白盒测试主要是针对软件设计中的类和对象来进行测试的。因此链接被测试的软件的类结构,是进行白盒测试的关键。由于封装的原则,在面向对象软件的类一般设计为私有或受保护类型,即类的属性和方法是无法从外部直接访问的,必须通过类中的公有方法来实现。因此设计测试用例时必须要注意对这些公有成员的才做。白盒测试逻辑覆盖的方法主要包括语句覆盖、分支覆盖、条件覆盖、条件组合覆盖等。穷举测试要求对所有可能的输入和状态执行所有的路径,除非对一些小实例,穷举测试是不现实的,通常是通过从所有可能的测试用例中确定最有可能检测出最多错误的子集,进行有限的测试来发现尽可能多的错误。但是为了实现对类中所有方法的有效测试,必须设计足够多的测试用例。
下面我们就以一个自动售货机为例设计一个软件系统的白盒测试用例。一个软件系统是有很多的服务组成的,而每个服务时由很多的用例组成的,下面我们给出自动售货机的用例和服务,如表1所示,描述用例的用例图如图1所示。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机面向对象的白盒测试技术的研究与分析(2)在线全文阅读。