
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
白盒测试在软件测试领域算是使用频率非常高的一个测试方式了,而本文我们就通过案例分析来简单了解一下,面向对象白盒测试用法分析。
1、面向对象的白盒测试
对软件的类测试相当于传统软件的单元测试。和传统软件的单元测试不同,他往往关注模块的算法细节和模块接口间流动的数据,软件的类测试是由封装在类中的操作和类的状态行为所驱动的。软件测试的特点:
因为属性和操作是被封装的,对类之外操作的测试通常是徒劳的。封装使对对象的状态快照难于获得。
继承也给测试带来了难度,即使是彻底复用的,对每个新的使用语境也需要重新测试。
多重继承更增加了需要测试的语境的数量,使测试进一步复杂化。如果从超类导出的测试用例被用于相同的问题域,有可能对超类导出的测试用例集可以用于子类的测试,然而,如果子类被用于完全不同的语境,则超类的测试用例将没有多大用途,必须设计新的测试用例集。
2、类测试方式
类测试一般有两种主要的方式:
功能性测试和结构性测试,即对应于传统结构化软件的黑盒测试和白盒测试:
功能性测试以类的规格说明为基础,它主要检查类是否符合其规格说明的要求。例如,对于Stack类,即检查它的操作是否满足LIFO规则;
结构性测试则从程序出发,它需要考虑其中的代码是否正确,同样是Stack类,就要检查其中代码是否动作正确且至少执行过一次。
3、结构性测试
结构性测试对类中的方法进行测试,它把类作为一个单元来进行测试。测试分为两层:
一层考虑类中各独立方法的代码;
二层考虑方法之间的相互作用。
每个方法的测试要求能针对其所有的输入情况,但这样还不够,只有对这些方法之间的接口也做同样测试,才能认为测试是完整的。
对于一个类的测试要保证类在其状态的代表集上能够正确工作,构造函数的参数选择以及消息序列的选择都要满足这一准则。因此,在这两个不同的测试层次上应分别做到:
方法的单独测试:结构性测试的一层是考虑各独立的方法,这可以与过程的测试采用同样的方法,两者之间大的差别在于方法改变了它所在实例的状态,这就要取得隐藏的状态信息来估算测试的结果,传给其它对象的消息被忽略,而以桩来代替,并根据所传的消息返回相应的值,测试数据要求能完全覆盖类中代码,可以用传统的测试技术来获取。
方法的综合测试:二层要考虑一个方法调用本对象类中的其它方法和从一个类向其它类发送信息的情况。单独测试一个方法时,只考虑其本身执行的情况。而没有考虑动作的顺序问题,测试用例中加入了激发这些调用的信息,以检查它们是否正确运行了对于同一类中方法之间的调用,一般只需要极少甚至不用附加数据,因为方法都是对类进行存取,故这一类测试的准则是要求遍历类的所有主要状态。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。