软件测试方法 - 学习 QA 模型
什么是软件测试方法论?
用于确保被测应用程序满足客户需求的策略和测试类型被称为软件测试方法。为了验证AUT,测试方法包括功能和非功能测试。单元测试、集成测试、系统测试、性能测试和其他测试方法都是例子。每个测试方法中都概述了测试目标、测试策略和可交付成果。
许多公司交替使用术语开发方法和测试方法,因为软件测试是任何开发方法的重要方面。与之前对测试方法的定义相反,测试方法也可能指瀑布、敏捷和其他QA方法。对各种形式的测试的讨论对读者几乎没有什么价值。因此,我们将讨论各种开发模型。
瀑布模型
瀑布范式中的软件开发通过许多阶段逐步进行,例如需求分析、设计等。在这个范式中,下一个阶段直到前一个阶段完成后才开始。
什么是测试方法?
需求阶段是瀑布范式的第一个阶段,在此阶段,所有项目需求在测试开始之前都已完全确定。测试团队在此阶段集思广益测试范围,制定测试策略,并制定全面的测试计划。
只有在软件设计完成后,团队才会开始执行测试用例以确认构建的程序按计划工作。
在此过程中,测试团队只有在上一步完成后才会进入下一步。
优势-这种软件工程范式相对容易设计和管理。因此,可以使用瀑布方法轻松测试具有明确定义和表达的需求的项目。
缺点-只有在前一阶段完成后,您才能继续进行瀑布模型的下一步。因此,该模型无法解释意外事件和不确定性。这种技术不适用于需求经常变化的项目。
迭代开发
在这种范式下,一个大项目被拆分成小块,每个部分都经过多次瀑布迭代。在每个周期结束时创建一个新模块或改进现有模块。该模块内置于软件架构中,整个系统都按照它的步伐运行。
测试的方法是什么?
整个系统在迭代完成后立即进行测试。测试反馈可立即访问,并包含在下一个周期中。
根据先前迭代的经验,可以最大限度地减少后续轮次所需的测试时间。
优点-迭代开发的基本好处是在每个周期结束时,测试反馈立即可用。
缺点-因为必须在每个周期结束时提供关于可交付成果、努力和其他因素的反馈,所以这种范式会大大增加沟通开销。
敏捷方法论
传统的软件开发方法基于这样一个假设,即软件需求在项目期间不会发生变化。然而,随着标准变得越来越复杂,它们会经历多次调整并随着时间的推移而演变。有时,买家不确定他想要什么。尽管迭代模型克服了这个问题,但它仍然遵循瀑布方法。
软件采用敏捷方法以增量、快速的周期构建。客户、开发人员和客户交互的优先级高于程序和工具。敏捷技术不是重要的准备,而是专注于适应变化。
什么是测试方法?
敏捷开发方法采用增量测试,确保每个项目发布都经过充分测试。这保证在下一个版本之前解决任何系统问题。
优势-可以随时更改项目以确保其符合标准。这种渐进式测试方法降低了风险。
缺点-持续的客户参与会给所有相关方带来额外的时间压力,包括客户、软件开发和测试团队。
极限编程
极限编程是一种强调快速开发周期的敏捷技术。简单的工程活动被分组到一个项目中。程序员创建一个基本的软件,然后向消费者提供反馈。客户的反馈会被考虑在内,工程师将继续进行下一项任务。
极限编程通常以两人一组的形式进行。
极限编程用于客户需求经常变化的环境中。
什么是测试方法?
极限编程基于测试驱动开发方法,其定义如下-
要检查尚未实现的新功能,请将测试用例添加到测试套件中。
运行所有测试,由于功能尚未开发,新的测试用例必须失败。
要实现特性/功能,请编写一些代码。
重新运行测试套件。既然功能已经写好了,这次新的测试用例应该会通过。
优点-考虑到软件设计模糊的客户可能会使用极限编程。次要版本的持续测试和集成可确保提供高质量的软件代码。
缺点-软件开发团队和客户之间的会议增加了所需的时间。
您应该选择哪种软件方法?
对于软件开发和测试,有多种方法可供选择。每种测试方法和方法都是针对特定目标量身定制的,并且各有优缺点。
项目类型、客户要求、项目时间表和其他考虑因素都会影响所使用的方法。
某些技术在开发生命周期的早期鼓励测试输入,而其他技术则等到系统的功能模型可用。
建立软件测试方法的最佳方法是什么?
测试软件代码不应该是软件测试方法的唯一目的。应该检查整体情况,测试方法应该满足项目的主要目标。
调度-实施良好测试技术的关键是切合实际的调度,该计划应满足每个团队成员的需求。
已定义的可交付成果-应提供明确定义的可交付成果,以使团队的所有成员保持在同一页面上。交付物的内容不应有任何不确定性。
测试方法-测试团队应该能够在计划完成并且规定的可交付成果可以访问后创建适当的测试方法。应该通过定义文档和开发会议向团队通报项目的最佳测试方法。
报告-很难获得透明的报告,但此阶段定义了项目的测试策略的功效。
验证和验证
V方法是瀑布模型的一个分支,用于具有明确定义的软件需求的小型项目。它以“V形”形式组织,包括编码、验证和确认。因为编码是模型的基础,所以每个开发阶段都伴随着测试,可以及早发现每个阶段的错误。
测试方法
就在每个开发步骤进行的并行测试过程而言,“V模型”与瀑布方法不同。验证过程保证产品的生产是正确的,而验证阶段则确保它是适合工作的产品。
模型中的静态验证阶段从业务需求分析开始,然后是系统设计、架构设计和模块设计。随后,编码步骤确保根据编码标准和规则选择合适的语言和工具。最后,验证过程保证在每个模块和开发阶段执行单元测试、集成测试、系统测试和应用程序测试。
好处
每个级别的测试和验证都可以在开发过程中及早发现故障。
这是一种低成本、快速周转的测试方法。
由于其刚性,它非常适合小型作业。
验证和验证过程包括每个级别的明确定义的目标。
缺点
在测试过程中,没有固有的响应故障的能力。
没有清除软件缺陷的明确方法。
这种方法对于修改可能性很大的大型项目是无效的。
它无法同时处理多个事件。
模块进入测试阶段后,就没有回头路了。
实例探究
医疗设备和软件应用程序是两种类型的医疗小工具。
政府的应用程序和软件计划。
国防项目和应用。
商业应用程序可用。
快速行动发展的方法论
测试模型是一种源自敏捷软件开发过程的增量方法。RAD的核心是原型设计,同时构建软件组件,使测试人员可以专注于测试而不是计划和文档。虽然每个软件功能都被隔离并作为一个不同的组件创建,但它们被组合起来构建一个原型,然后用于收集最终用户的输入并进行进一步的修改。
测试方法
RAD技术由五个阶段组成,其中系统组件被同时设计和测试。每个阶段都有设定的时间限制,必须尽快完成,非常适合期限紧迫的项目。
第一步,称为“业务建模”,定义业务需求并建立到各种业务渠道的数据流。建立流程后,“数据建模”步骤会根据业务模型检查相关数据。
“流程建模”,第三步,转换数据项以创建业务信息流。该阶段指定了QA程序,用于响应客户输入进一步修改数据项。这是在理解应用程序可能会随着时间的推移经历多次迭代的情况下完成的。
原型步骤是“应用程序生成”的第四阶段,模型使用自动化技术进行编码。最后,在“测试和周转”阶段,每个原型都经过独立测试,从而减少了整个软件程序中的故障和危险。
好处
同时进行原型设计和可重用性减少了开发和测试时间。
通过在每个增量步骤中使用时间盒技术,软件项目的总风险降低了。
由于反馈循环,客户满意度上升。
进展是有目共睹的,而且是基于事实的。
更改易于实施。
缺点
对于过时的系统,该技术难以应用。
持续的客户端输入和更改可能会导致部署延迟。
技术技能和资源非常重要。
自动化测试、工具和代码开发导致成本上升。
实例探究
添加到应用程序的图形用户界面。
原型应用程序(线框、设计和可点击原型)
系统模块化。