我刚开始接触Selenium和模糊测试。我发现Selenium IDE只允许使用固定的测试用例,但是模糊测试似乎很有帮助。
那么,模糊测试背后的原理是什么?Selenium提供哪些类型的测试?这是黑盒测试还是白盒测试?
感谢您的帮助。
那么,模糊测试背后的原理是什么?Selenium提供哪些类型的测试?这是黑盒测试还是白盒测试?
感谢您的帮助。
简短回答:
详细解释如下:
本文将尝试解释如何使用Selenium RC随机测试您的Web应用程序。
通常来说,像Selenium这样的黑盒测试技术可以给您很好的自由度:
基本上,您可以
请注意,即使从理论上讲,测试程序的所有状态(由所有变量的可能组合构成)也是不可能的(例如:考虑测试用于解析字符串的小函数,那么一个字符串有多少个可能的值?)。因此,在现实中,鉴于有限的资源(时间、金钱、人员),您只想测试Web应用程序的“最关键”的执行路径。如果一个路径具有更多的属性,则称其为更“关键”:(a)经常执行,(b)与规范的偏差会导致严重的损失。
很遗憾,除非您记录了应用程序的所有用例并选择最常见的用例,否则很难知道哪些执行案例是关键的,这是一个非常耗时的过程。此外,即使在最少执行的用例中出现一些错误,如果它是安全漏洞(例如,在某个PHP页面的URL处理中出现微小的错误,可能会导致某人窃取所有客户的密码),也会造成很多麻烦。这就是为什么您需要随机扫描测试空间(即这些用例中使用的值的空间),希望运行某些内容并扫描所有内容。这被称为模糊测试。
使用Selenium RC,您可以轻松完成所有阶段(1)、(2)和(3):通过使用支持的语言如Java、PHP、CSharp、Ruby、Perl、Python进行编程,测试任何字段中的任何值在任何执行步骤下。
以下是执行所有这些阶段(1)、(2)和(3)的步骤: