编程基础/软件测试
软件测试涉及执行软件组件或系统组件以评估一个或多个感兴趣的属性。一般来说,这些属性表明被测试的组件或系统在以下方面达到了什么程度:[1]
- 满足指导其设计和开发的要求
- 对各种输入做出正确响应
- 在可接受的时间内执行其功能
- 具有足够的可用性
- 可以在其预期环境中安装和运行
- 实现利益相关者期望的总体结果
测试数据由用户提供一些输入值并预测输出组成。对于简单的程序来说,这可能很容易,并且测试数据可以重复使用两次。
- 检查模型以查看它是否产生正确的结果(模型检查)
- 检查编码后的程序以查看它是否产生正确的结果(代码检查)
测试数据是通过使用程序的算法开发的。这种算法通常在程序设计期间使用流程图或伪代码进行记录。以下是描述用于计算每小时工作的总工资的程序的输入、处理和输出的概要形式的伪代码。
使用 IPO 概要计算总工资的伪代码
Input display a message asking user for their hours worked get the hours from the keyboard display a message asking user for their pay rate get the rate from the keyboard Processing calculate the gross pay by: multiplying the hours worked by the hourly rate Output display the gross pay on the monitor pause so the user can see the answer
测试数据用于验证输入、处理和输出是否正常工作。在最初开发测试数据时,它可以验证记录的算法(在本例中是我们的伪代码)是否正确。它帮助我们理解甚至可视化程序的输入、处理和输出。
输入:本周我工作了 37.5 小时,我的时薪为 15.50 美元。我们应该验证伪代码是否在向用户索要此数据。
处理:使用我的太阳能手持计算器,我可以计算出我的总工资将是:37.5 * 15.50 或 581.25 美元。我们应该验证伪代码是否执行了正确的计算。
输出:仅显示重要的信息(总工资),供用户查看。我们应该验证是否显示了适当的信息。
测试数据可以开发并用于测试在程序设计阶段记录的算法(在本例中是我们的伪代码)。一旦程序用编译器和链接器错误解决后,程序员就可以扮演用户的角色,并应该使用开发的测试数据测试程序。当你运行你的程序时,你如何知道它是否正常工作?你是否正确地计划了你的逻辑来完成你的目的?即使你的计划是正确的,它是否正确地转换为(编码)到你选择的编程语言中?所有这些问题的答案(或解决方案)都是我们的测试数据。
通过开发测试数据,我们预测了应该得到的结果,因此我们可以验证我们的程序是否正常工作。当我们运行程序时,我们将输入我们在测试数据中使用的输入值。希望程序会输出预测的值。如果没有,那么我们的问题可能是以下任何一种
- 计划(IPO 概要或其他项目)可能错误
- 计划转换为代码可能错误
- 测试数据的计算结果错误
解决此类问题可能是程序员遇到的最困难的问题。您必须审查上述所有内容以确定错误在哪里。修复错误并重新测试您的程序。
- 代码检查
- 使用测试数据检查用特定语言(如 C++)编码的程序。
- 模型检查
- 使用测试数据检查设计模型(通常在伪代码中完成)。