软件测试
编辑软件测试是为了向利益相关者提供有关被测软件产品或服务质量的信息而进行的调查。软件测试还可以提供客观,独立的软件视图,以使企业能够理解和理解软件实施的风险。测试技术包括执行程序或应用程序的过程,目的是发现软件错误(错误或其他缺陷),并验证软件产品是否适合使用。
软件测试涉及软件组件或系统组件的执行,以评估一个或多个感兴趣的属性。通常,这些属性指示受测组件或系统的程度:
由于即使是简单的软件组件,可能进行的测试数量实际上都是无限的,因此所有软件测试都使用某种策略来选择在可用时间和资源上可行的测试。结果,软件测试通常(但不是排他性地)试图执行程序或应用程序,目的是发现软件错误(错误或其他缺陷)。测试工作是一个反复的过程,因为当一个错误被修复时,它可以阐明其他更深层次的错误,甚至可以创建新的错误。
软件测试可以提供有关软件质量及其对用户或赞助商失败的风险的客观、独立的信息。
只要存在可执行软件(即使已部分完成),就可以进行软件测试。软件开发的总体方法通常决定何时以及如何进行测试。例如,在分阶段的过程中,大多数测试是在定义系统要求并在可测试程序中实施之后进行的。相反,在敏捷方法下,需求、编程和测试通常是同时进行的。
概述
尽管在某些特定假设的假设下软件测试可以确定软件的正确性,但是测试无法识别软件中的所有缺陷。相反,它提供了一种批评或比较,将产品的状态和行为与测试预言进行比较-有人可能会识别问题的原理或机制。这些预言可以包括(但不限于)规格、合同、可比较产品、同一产品的过去版本、对预期或预期目的、用户或客户期望、相关标准、适用法律或其他标准的推断。
测试的主要目的是检测软件故障,以便可以发现并纠正缺陷。测试不能确定产品在所有条件下都能正常运行,而只能确定产品在特定条件下不能正常运行。软件测试的范围通常包括检查代码以及在各种环境和条件下执行该代码以及检查代码的各个方面:它是否执行了应做的事情和需要做的事情去做。在当前的软件开发文化中,测试组织可能与开发团队分开。测试团队成员有各种角色。从软件测试中获得的信息可用于更正软件开发过程。
每个软件产品都有一个目标受众。例如,视频游戏软件的受众与银行软件完全不同。因此,当组织开发或以其他方式投资软件产品时,它可以评估该软件产品对于最终用户,其目标受众、购买者和其他利益相关方是否可接受。软件测试有助于进行此评估。
缺陷和失败
并非所有软件缺陷都是由编码错误引起的。代价高昂的缺陷的一种常见来源是需求缺口,即无法识别的需求导致程序设计人员遗漏错误。需求缺口通常是非功能性需求,例如可测试性、可伸缩性、可维护性、性能和安全性。
通过以下过程会发生软件故障。程序员会犯错误(错误),从而导致软件源代码中存在缺陷(错误)。如果执行此缺陷,则在某些情况下,系统将产生错误的结果,从而导致故障。并非所有缺陷都必然会导致失败。例如,无效代码中的缺陷将永远不会导致失败。当环境改变时,缺陷可能会变成故障。这些环境变化的示例包括在新的计算机硬件平台上运行的软件,源数据的更改或与其他软件的交互。单个缺陷可能导致各种各样的故障症状。
输入组合和前提条件
软件测试的一个基本问题是,即使使用简单的产品,在输入和前提条件(初始状态)的所有组合下进行测试也不可行。这意味着软件产品中的缺陷数量可能非常大,并且很难在测试中发现不经常出现的缺陷。更显著,非功能性质量(它应该是怎样的尺寸是相对于什么是应该做的)-可用性、可扩展性、性能、兼容性、可靠性-可以是高度主观的;对一个人构成足够价值的事物可能对另一个人是无法忍受的。
软件开发人员无法测试所有内容,但是他们可以使用组合测试设计来确定获得所需覆盖范围所需的最少测试数量。组合测试设计使用户能够以更少的测试获得更大的测试覆盖率。不管他们是在寻找速度还是测试深度,他们都可以使用组合测试设计方法将结构化的变化构建到他们的测试用例中。
经济学
NIST在2002年进行的一项研究报告称,软件漏洞每年给美国经济造成595亿美元的损失。如果执行更好的软件测试,则可以避免三分之一以上的成本。
由于成本原因,外包软件测试非常普遍,菲律宾和印度是首选目的地。
角色
软件测试可以由专门的软件测试人员完成;直到1980年代,“软件测试器”一词被普遍使用,但后来也被视为一个独立的专业。关于软件测试的时间段和不同的目标,已经建立了不同的角色,例如测试经理、测试主管、测试分析师、测试设计师、测试人员、自动化开发人员和测试管理员。软件测试也可以由非专用软件测试人员执行。
测试工具
测试工具和调试器可以xxx帮助进行程序测试和故障检测。测试/调试工具包括以下功能:
- 程序xxx器,允许完全或部分xxx程序代码,包括:
- 格式化的转储或符号调试,工具允许检查错误或选定点的程序变量
- 自动化功能图形用户界面(GUI)测试工具用于通过GUI重复系统级测试
- 基准测试,可以进行运行时性能比较
- 性能分析(或性能分析工具)可帮助突出显示热点和资源使用情况
这些功能中的某些功能可以合并到单个复合工具或集成开发环境(IDE)中。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/116249/