软件测试策略

历史的车轮滚滚向前,科技的创新生生不息,大数据、虚拟现实、智能汽车、区块链等为代表的新技术和新应用层出不穷,它们都与软件息息相关,而软件的质量保证离不开软件测试,软件测试要在成本、范围、进度、资源等因素的制约下取得最佳产出,就离不开测试策略的制订和实施

  假如我们要测试微信app,测试涉及的范围很大,即使撇开非功能特性,也有不少功能要测试,不仅要测聊天、通讯录、朋友圈、钱包/支付、购物/游戏等众多接口...而且还要在不同的平台(Android、iOS)和不同型号的手机上进行测试。其测试的工作量不小,如果公司希望这个版本赶在某个好日子上线,原来测试时间可能被进一步压缩,测试就更是捉襟见肘,怎么办?这时就需要测试策略,设法通过分析受影响的区域缩简测试范围,或找到更有效的测试方式(如探索式测试)或方法(E2E方法)减少测试工作量等。

  一、什么是软件测试策略?

  简单地说,软件测试策略就是在测试质量和测试效率之间的一种平衡艺术(Leverage Test)。更明确地说,测试策略是为了以最低的成本最大程度地揭示(/降低)产品的质量风险或尽早地完成测试所选择(或制定的)的最合理/合适的方式、方法、过程等

  详细描述如下:

  最低的成本是指完成测试所需的资源、时间等最少,“最”是相对的,即基于目前的认识或能力所能做到的;

  完成测试,即达到特定的测试目标,如达到测试覆盖率的某个值、发现尽可能多的缺陷、完成所有主要功能特性的验证,这也依赖于对“软件测试”是如何理解的,或测试目标是如何定义的;

  方式,包括手工方式、自动化方式;探索式测试或基于脚本的传统测试;自己团队测试还是众测、外包;

  方法,包括基于需求的、基于数据流、基于控制流、组合测试、形式化等方法、技术、工具等

  过程:先测什么、后测试什么;对测试阶段的不同划分等。

  二、测试策略应用现状

  在软件项目的实施的过程中,很多项目团队对测试策略的认识不够、应用不足,造成了一些测试无用功和资源浪费,主要有如下几个现状:

  1.对测试策略的重视不够

  有些软件项目管理层本身对测试策略重视不够。在软件测试阶段中, 更多的是跟随开发做测试执行, 容易忽略测试策略的设计。在实际工作中,受项目版本迭代较快,测试管理层受项目进度、范围等影响,导致对测试策略重视程度不够。

  2.对测试策略的宣讲不够

  有些测试管理者认为测试策略是测试管理层所要了解的事,测试工程师主要安心测试,完成测试就可以了,对测试工程师宣讲不够。事实上,测试工程师是制定测试用例和执行测试用例并发现问题和验证问题等的主要实践者,测试工程师了解测试策略会更加明晰阶段测试的工作重点,有的放矢,更专注于自己测试任务,增加测试工作的全局观,对于完成测试工作起到提纲挈领作用。

  3.对测试策略组合运用不够

  测试管理者都知道测试实施需要做好测试需求分析,编写并评审好测试用例,划分好测试阶段,然后按阶段计划执行用例、提交缺陷、提交测试报告。但是要在规定的进度、质量、范围等条件约束下,如何规划各阶段的测试重点、如何规划测试阶段间的衔接、如何规避无效的测试、如何适应需求的变化、如何控制高频率的测试版本提交、如何选择合理的回归测试范围等等问题,考虑不全,究其原因就是对测试策略的组合设计还做得不够。

  4.对测试策略理论体系建设不够

  测试策略理论体系需要持续优化。由于测试行业发展较快,有些测试策略理论不能适应新的系统项目,需要进一步完善。同时,面对不同的测试阶段、不同类型的测试项目,如何进行“裁剪”也需要具体问题具体分析。现实中很少有测试团队在测试策略理论和体系上做研究和优化。

  三、软件测试策略的制定过程

  (1)输入

  需要的软硬件资源的详细说明;

  针对测试和进度约束而需要的人力资源的角色和职责;

  测试方法、测试标准和完成标准;

  目标系统的功能性和技术性需求;

  系统局限(即系统不能够提供的需求)等等。

  (2)输出

  已批准和签署的测试策略文档、测试用例、测试计划;

  需要解决方案的测试项目;

  (3)过程

  1)确定测试的需求

  2)评估风险并确定测试优先级

  3)确定测试策略

  四、测试策略的方法

  软件测试的策略、方法和技术是多种多样的。对于软件测试技术,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试,从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。

  静态方法与动态方法

  所谓静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。(指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书源程序做结构分析、流程图分析、符号执行来找错)

  动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

  五、总结与展望

  最佳的测试策略是用较小资源投入覆盖更精确的测试范围,在较短的测试周期内发现更多潜在问题,完成质量保障任务。测试策略的研究是一个逐步探索的过程,需要持续优化,以提升测试交付质量,提升企业产品的质量,提升企业的竞争力。

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值