什么是软件测试及为什么重要?

视频编/译自:Guru99,国外的一个免费IT教育平台,很喜欢这种短而精的视频教学形式,分享给大家。本人英语水平有限,字幕是机器翻译后再修改的,不当之处敬请谅解。

什么是软件测试?

“软件测试”定义为一项活动,以检查实际结果是否与预期结果相符并确保软件系统无缺陷。它涉及执行软件组件或系统组件以评估一个或多个感兴趣的属性。软件测试还有助于识别与实际需求相反的错误,空白或遗漏的需求。它可以手动完成,也可以使用自动化工具完成。有些人更喜欢将软件测试称为“白盒测试”和“ 黑盒测试”。

简而言之,软件测试意味着对被测应用程序(AUT)的验证。

为什么软件测试很重要?

测试很重要,因为软件错误可能代价高昂甚至危险。软件错误可能会导致金钱和人员损失,历史上充斥着此类示例。

  • 2015年4月,伦敦的彭博终端因软件故障而崩溃,这影响了金融市场上300,000多名交易员。它迫使政府推迟30亿英镑的债务出售。
  • 由于安全气囊感应器软件故障,日产汽车不得不从市场召回超过100万辆汽车。据报告,由于该软件故障,发生了两次事故。
  • 由于POS系统软件故障,星巴克被迫关闭美国和加拿大约60%的商店。商店在一时免费提供咖啡,因为他们无法处理交易。
  • 亚马逊的一些第三方零售商由于软件故障而将其产品价格降低到了1便士。他们损失惨重。
  • Window 10中的漏洞。此错误使用户可以通过win32k系统中的漏洞逃离安全沙箱。
  • 2015年,战斗机F-35成为软件漏洞的受害者,使其无法正确检测目标。
  • 1994年4月26日,中华航空空中客车A300因软件错误坠毁,造成264名无辜平民丧生
  • 1985年,加拿大的Therac-25放射治疗机由于软件错误而发生故障,并向患者提供了致命的放射剂量,造成3人死亡,3人重伤。
  • 1999年4月,一个软件错误导致价值12亿美元的军用卫星发射失败,这是历史上最昂贵的事故
  • 1996年5月,一个软件漏洞导致美国一家主要银行的823个客户的银行帐户记入9.2亿美元。

软件测试的类型

通常,测试分为三类。

  • 功能测试
  • 非功能测试或性能测试
  • 维护(回归和维护)
测试类别 测试类型
功能测试
  • 单元测试
  • 系统测试
  • 冒烟
  • UAT(用户验收测试)
  • 本土化
  • 全球化
  • 互通性
  • 依此类推
非功能测试
  • 性能
  • 压力
  • 负载
  • 大数据
  • 可扩展性
  • 易用性
  • 依此类推
维护
  • 回归
  • 维护

这是不完整的列表,因为有150多种测试类型并且仍在增加。另外,请注意,并非所有测试类型都适用于所有项目,但取决于项目的性质和范围。