软件测试中的随机测试
随机测试是软件测试,其中借助生成随机和独立的输入和测试用例来测试系统。随机测试也称为猴子测试。这是一种黑盒评估大纲技术,其中随机选择测试并通过某些软件识别比较结果以检查输出是否正确。
关于随机测试的一些要点:
- Melvin Breuer 在 1971 年首次对随机测试进行了研究。
- 该测试最初由 Pratima 和 Vishwani Agrawal 在 1975 年进行评估,以检查软件的成功输出。
- 对于随机测试,还有一本书包含一些公式,用于计算可以进行的测试次数以及成功结果和失败结果的数量。
工作随机测试:
步骤 1:识别输入域
步骤 2:从输入域中独立/随机选择测试输入
Step-3:在这些输入上测试系统并形成一个随机测试集
步骤 4:将结果与系统规范进行比较
第 5 步:如果报告失败,则采取必要的措施。
下图更清楚地表示了随机测试的工作。
随机测试的类型
1. 随机输入序列生成:也称为随机数生成器 (RNG),其中生成随机序列号或符号,在随机选择期间无法假设。
2. 数据输入的随机序列:在这种情况下,所有数据都是随机选择的,用于测试期间可以使用的输入。
3.从现有数据库中随机选择数据:所有数据都可以从该记录中获得的记录,只有可以选择数据进行测试,然后不能添加记录中不可用的其他数据。
随机测试的特点:
- 当应用程序中的错误未被识别时,将实施随机测试。
- 它用于检查系统的执行性和可靠性。
- 它节省了我们的时间,不需要任何额外的努力。
- 随机测试成本较低,它不需要额外的知识来测试程序。
实施随机测试的方法:
为了基本实现随机测试,应用了四个步骤:
- 分析用户输入域。
- 之后,从该域中,分别选择测试输入的数据。
- 在这些测试输入的帮助下,测试成功执行。这些输入测试进行随机测试集。
- 将结果与系统识别进行比较。如果任何测试输入与原始输入不匹配,则测试结果将不成功,否则结果始终成功。
随机测试的优点
- 它非常便宜,任何人都可以使用这个软件。
- 在测试期间访问程序不需要任何特殊的智能。
- 可以很容易地追踪错误;它可以在整个测试过程中轻松检测到错误。
- 该软件没有偏见,这意味着它使测试组平均分配,并且它不喜欢重复检查错误,因为在整个测试过程中代码可能会发生一些变化。
随机测试的缺点
- 该软件只发现更改错误。
- 它们不实用。一些测试将在较长时间内无用。
- 大部分时间都花在分析所有测试上。
- 如果测试期间数据不可用,则无法形成新测试。
用于随机测试的工具
- QuickCheck:它是一个著名的测试工具,它是为 Haskell 引入的,它有多种不同的语言版本。该工具为与模型和系统属性相关的 API 调用生成随机顺序,可以在每次测试后给出成功的结果。
- Randoop:此工具在测试期间为类提供方法顺序和构造函数确认,并生成 JUnit 测试。
- Simulant:它是一个Clojure 工具,根据系统的不同规格、模型的行为运行。
- Gram Test:这个随机测试工具基于用Java编写的语法,它利用 BNF 表示法来指定在测试期间用作输入的语法。