大数据量组合测试
与其考虑测试接收几个输入值的单一功能,不如想象测试一些更加复杂的功能。程序对若干输入值进行处理,也许有一系列功能,然后报告结果。同样,传统的测试方法旨在将冗余最小化。当我们进行组合测试时(若干个变量放在一起测试),那么测试的数量是巨大的。若变量是相互独立的,我们可以通过组合测试(成对测试或者all-triples(三次))将组合测试用例数量最小化。若变量是相关的,我们可以使用因果图技术来取代。但是如果我们认为程序只有当用小部分特定的值的组合进行测试时才会出现问题(当然我们不知道这些特定的组合),那么我们必须生成输入值,计算每个组合的预期结果来测试更大数量的值的组合。
对于生成输入值有以下几种不同的策略。
穷尽取样。这种测试方法测试了所有的组合情况。但是数量相当大而不可取。
随机取样。生成随机值作为输入,直到测试了某些庞大的数据。
优化取样。使用一个以某种方式优化组合集的算法。举一个相当简单的例子,如果你即将测试一百万个组合,那么你可以将组合的空间划分成一百万个同样大小的,不重叠的子集,或者你也可以使用给下一个组合分配值的排序算法,每生成一个测试用例都与之前的测试有一定的“距离”(根据某些距离函数)。
……………………
查看全文请点击下载:http://www.51testing.com/html/73/n-849173.html
一个准则为高容量自动化测试奠定了强大的基础。一切要求是为被测程序产生输入数据,驱动程序处理这些输入数据。在得到结果的情况下,你可以运用这些准则来检查程序是否通过测试。没有任何准则是完美的:因为即使输出结果与准则相匹配,程序也有可能没有通过测试。虽然依靠一项准则,你不可能学会所有,有可能是有趣的,但是通过运行大量用来充分检查若干类型的错误而设计的测试,奠定了良好的基础,并且让你有机会找到其他类型的错误(比如由内存泄露引起的崩溃),你之前并没有特意设计测试用例针对这些错误。至于其他方法,你可以根据需要设计一些简单而合适的测试用例,使程序不能通过测试。
在一项准则的基础上进行高容量测试,你不能做到完全测试程序(所有可能的风险),但是这样可以达到手工不能完成的一定的覆盖率。
功能等价测试
功能等价测试开始于一项指导——一个与被测功能以同样方式运行的参考功能。在给定参考功能的情况下,你可以向被测功能提供输入值,获得结果,并检查参考功能是否输出同样的结果。无论你想测试多少个输入值,都可以如愿以偿。也许会生成大量随机输入值(如果你有充分的可用时间)或者测试了每一个可能的输入值。
在我的程序员-测试课程的期终考试中,我说明了函数等价测试。学生们必须回答的问题是Open Office Calc的计算方式是否与Excel相同。我们采纳了一条质量标准:如果Calc与Excel计算方式相同,即使Excel犯了一些计算错误,那么也足够好了。
回答这个问题,学生应该做以下几步:
1、单独测试若干个功能
2、通过把加减乘除中的几项法则结合起来同时测试几种功能
3、做好这些,学生们应在Calc中挑选出若干个单一的功能
4、然后测试每个功能,向Calc中输入随机值,并向相应的Excel功能中输入同样的值
5、然后生成包含几项功能的随机法则,输入随机数据,比较结果
如果你测试了足够多的输入值,那么Calc的结果和Excel总是一致的(允许少量的误差)。我们能合理的总结出Calc中的计算功能与Excel中的计算功能是等同的。
......
查看全文请点击下载:http://www.51testing.com/html/73/n-849173.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。