草庐IT

软件测试风险管理需要做的3件事

测试界的彭于晏 2024-05-19 原文

众所周知,软件测试作为软件研发中不可或缺的一部分。但是,软件测试不仅仅是查找和修复错误,它还涉及风险的识别和应对。

当领导问你,这个需求能否按时交付?这个版本能否准时发版?是否有延期风险?你又该如何回答呢。

因此,风险管理(Risk Management)也是软件测试中的一个重要部分,在测试计划阶段,制定风险管理计划是至关重要的。

什么是软件测试风险管理?

软件测试风险管理是指在软件测试过程中,检测、评估风险并确定风险优先级的过程,以最大程度地减少、调节和控制风险对软件项目的影响。

本篇就来聊一聊软件测试风险管理计划中需要做的三件事,以便于更好地管理软件测试风险。

风险登记

软件测试风险管理计划的第一步是进行风险登记,在风险登记册中列出与项目相关的潜在风险,包括对每个风险的描述、可能性、影响,以及将采取的措施来减轻风险。

例如以下常见的软件测试风险:

  • 需求风险

    与客户沟通需求不充分,软件开发人员没有充分理解需求,需求文档不完整、不清晰等问题导致测试覆盖率不全、测试方向错误、测试遗漏、测试无效。

  • 设计风险

    软件的设计不合理或不完整。

  • 开发风险

    开发代码质量差,那么测试可能会发现更多的缺陷。

  • 测试进度风险

    开发人员没有按时提测、测试资源不足、测试工作量大等原因导致进度拖延,上线延迟。

  • 人员流失风险

    核心测试人员请假或离职,可能会对测试进度和质量造成影响。

  • 测试充分性风险

    测试范围提供不准确,用例设计时忽略了深层次逻辑,部分测试用例被测试人员有意无意的忽略执行,导致一些缺陷可能会被遗漏或没有被及时发现。

  • 测试环境风险

    测试环境与生产环境无法一致,致使测试的结果存在误差。

  • 数据完整性风险

    测试数据被修改或破坏,影响测试结果。

  • 自动化测试风险

    自动化测试脚本编写不当,测试覆盖不足,自动化测试工具使用不当,没有设置合适的断言,那么测试质量可能会受到影响。

  • 测试工具风险

    没有及时准备测试工具,测试人员对新工具无法熟练运用。

风险评估

上一步,我们将可能存在的风险在风险登记册进行记录后,接下来就是对风险登记册中列出的风险进行评估。风险评估是分析每个风险,以确定其可能性和影响的过程。通过评估风险,可以根据风险的严重程度来确定其优先级,并确定哪些风险需要重点关注。

根据项目管理协会(PMI)的说法,将风险管理纳入项目管理流程的公司可以更好地实现其项目目标。风险评估是风险管理的一个重要部分,它可以确保项目保持在正轨上。

(粉丝福利)整理了一些软件测试方面的资料、面试资料(接口自动化、web自动化、app自动化、性能安全、测试开发等),有需要的小伙伴可以文末关注我的微信公众号,无套路自行领取~

风险缓解

风险管理的最后一步就是风险缓解,其中需要制定风险缓解计划。

风险缓解计划,简单来说就是减少或消除风险需要采取的措施、步骤和实施时间表。

例如以下是对一些常见测试风险的解决方案:

  • 对于不充分的需求分析,解决方案有:

    • 通过与客户、产品和开发人员沟通来获取更多细节信息;

    • 使用场景测试和用户故事来完善需求;

    • 参与需求评审会议(关于如何开展需求评审可参考往期文章)

  • 对于开发风险,解决方案有:

    • 提供主流程测试点让开发自测,自测通过后才可正式提测;

    • 提高单元测试覆盖率;

    • 实施测试左移,关于测试左移可参考往期文章。

  • 对于测试进度风险,解决方案有:

    • 尽早规划测试活动,合理评估测试时间,确保测试活动可以及时开始和结束;

    • 增加测试时间、人员、资源;

    • 与客户协商,延迟交付时间;

    • 将已有的低优先级需求或特性推迟交付;

    • 降低对低优先级功能和特性的测试质量;

    • 此外,可以使用自动化测试工具减少测试时间和人力成本。

  • 对于不充分的测试覆盖率风险,解决方案有:

    • 增加测试用例的数量和种类,并进行测试用例评审

    • 使用代码覆盖率工具JaCoCo、自动化测试工具等方法提高测试覆盖率。

  • 对于测试环境风险,解决方案有:

    • 确保测试环境与生产环境相似,包括硬件、软件和网络环境等;

    • 使用自动化模拟工具来模拟环境,从而减少测试成本和时间。

  • 对于测试工具风险,解决方案有:

    • 选择合适的测试工具,确保测试工具能够满足测试需求;

    • 定期对测试人员进行工具使用的培训。

  • 对于核心测试人员请假或离职风险,解决方案有:

    • 作为测试管理者可以在平时配置一些候补人员来向他们学习,以解决核心人员离职后,可以立即补充上来;

    • 对于一些关键业务和技术一定要有文档;

    • 平时让测试人员在不同模块之间交叉测试。

以上,完。脚踏实地,仰望星空,和彭于晏一起学习软件测试,升职加薪!

福利福利

如果你还有许多困惑,那么我整理的视频资源和文档会是你的良师益友,或许可以给你带来一些实际性的帮助与突破【保证100%免费】

有关软件测试风险管理需要做的3件事的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  3. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  4. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  5. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  6. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  7. ruby - rspec 需要 .rspec 文件中的 spec_helper - 2

    我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  10. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

随机推荐