项目管理是一个繁杂的过程,每个阶段需要涉及到不同人员、资源的协调配合。每个角色都有自己的定位和任务,为了紧密配合项目经理或无分配项目经理运行项目的场景下确保项目成员共同达成项目目标,不同的角色掌握相应的项目管理意识就尤为重要。
那么,测试角色作为项目交付的质量把控者,具备相应的项目管理意识在项目的高质量、高效率交付目标上有着重要作用,如前置识别质量风险、进度风险等。本文旨在梳理、谈论测试角色在项目各阶段如何评估测试范围及风险、前置暴露问题以及推进测试进度等项目管理事项,高效协作及交付测试角色产物,最终与项目各方共同推进达到高质量、高效率交付的目标。
在现有敏捷迭代快速交付模式下,针对某一需求/项目会拆分至各个团队,各个团队节奏及交付目标不完全一致,且无项目经理角色跟踪推进的情况下,存在后置与协作团队沟通确认事项,如:未拉齐依赖方排期、前期未识别出改动系统、需求/设计变更未及时同步相关方、无设计方案沟通导致提测内容不满足提测标准,等均可影响交付节奏。那么作为测试角色的我们可以做哪些事情?
核心主旨:高效沟通协作,提前思考后续阶段较容易影响进度、质量问题及风险点,暴露问题,前置沟通、评估及推进相关事宜;避免问题后置暴露在测试阶段;下一章节就让我们来详谈各个阶段测试角色可提前关注事项,与各方高效协作共同推进解决的相关tips。
软件测试的第一步就是需求评审,只有对软件需求做了准确、完整的评审后,才能对接下来各种测试工作的开展做好基础,如需求评审理解偏差,后期很多测试任务都将会受到影响。
需求评审完成需了解哪些信息:
设计评审为评价设计满足质量要求的能力,识别问题及提出解决办法。设计过程中越早增加质量保证活动对最终设计效果的影响就越明显。目前较大项目/逻辑较复杂需求/研发优化,均需研发输出设计评审文档并邀请测试参与涉及评审。
设计评审时需要check的内容:
排期阶段是项目管理中重要的一环,时常在此阶段会暴露一些风险,排期容易出现两个问题,一是排期不合理,二是后续不能按照排期稳步推进,好的排期就要尽量避免这两个问题,那么测试阶段合理的排期就需尽可能多的参考该节点及之前节点项目各方提供的有效信息,全局评估、拆分任务交付,最终提供较合理排期。
输出测试排期需要考虑的维度:
测试用例的编写必须依据需求文档,结合设计方案,确认所有以疑问点,覆盖所有功能需求点,跟进需求情况输出冒烟测试用例、功能测试用例、联调测试用例,思考业务实操场景,模拟用户场景串联流程保障测试内容的高覆盖。并在用例评审节点邀请产研参与评审,有序进行用例评审,确认疑问共同完善测试点并会后输出评审会议纪要。
测试用例编写、评审阶段需要注意的事项:
编码阶段作为研发角色活动,通过编码过程来实现产品需求,此阶段的异常等需相关方知悉;
研发阶段需同步的信息:
代码评审是研发全流程的工程实践之一,通过代码评审可以更好的保障产品质量和代码质量;可根据改动大小与研发侧沟通进行线上/线下等评审方式参与。
代码评审阶段需检验的标准:
冒烟测试是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性,尽早发现较阻塞进度问题,提前识别。
冒烟测试阶段重点关注的维度:
功能测试阶段开始了大规模的测试工作,在此期间仔细详尽的测试,
功能测试阶段核心把控的思想:
联调测试为了保障该需求/项目的所有改动场景下发的数据在全链路系统下正常流转闭环,覆盖用户真实实操场景来确保项目/需求的交付质量。
联调测试阶段注重:
3.10 稳定性测试(适用于APP)
为保障APP端用户体验,APP稳定性测试不可或缺,上线前针对上线版本进行稳定性测试已加入到APP测试流程中,日常针对APP稳定性随机测试也持续监控。
稳定性测试需监控:
UAT阶段主要为业务验收阶段,用户角色验收产研测交付内容,为确保UAT顺利进行,较大项目/需求测试人员有针对性进行主流程拉通测试可提前发现配置、环境因素所产生的问题,此环节可加快UAT进度确保项目更高效交付(该阶段可根据项目诉求调整)。
UAT阶段应保障:
上线前master回归未确保长时间需求不上线分支及版本冲突等因素,上线当前进行master回归操作可有效确保发布内容运行稳定,保障质量。
master回归阶段需check:
在项目各环节已前置思考可能带来的风险,提前规避、提前暴露,但并不能完全保障,那么在暴露风险后,可参考风险程度分析与分类定位,与项目各方高效协作,共同商榷解除风险的可行性方案以及后续运行策略。
测试人员可根据测试角度定位风险优先级,优先解决风险程度较高问题,且优先级较高风险需同步至上级知悉,必要时可采取升级等方式处理;
4.4.1 举例一
背景:管理工作台项目(优先级top1,交付时间紧,开发工作量大)
产生问题:因测试周期时间紧,为避免延期提测,测试在研发阶段明确提测时间时,发现提测存在延期风险
风险程度分析及分类:组织类-重度风险
(识别阶段:研发阶段,识别及反馈角色:测试人员,类型:进度类)
与协作方商榷推进方案(解决过程及方案):
因项目优先级较高,测试人员将此风险反馈至主产品及产品负责人处,因各方前期了解的信息存在差异化/关注点不一致等,线下拉齐会议沟通,根据交付优先级拆解交付内容,迭代提测进行测试,最终拉齐前、后端研发、测试交付目标一致,并调配资源进行各项任务交付,风险解除。
小结:依据风险程度,可内部解除的快速推进落地,需耗时较长/协调资源等需及时反馈至上级沟通,确保风险尽快解除落地。
前置评估、高效协作
保障在前置阶段通过测试经验总结提前思考后续阶段会带来的影响,包含但不仅限于:信息不同步、影响范围不明确、依赖关系不清晰等,前置有意识的识别较容易影响进度、质量问题及风险点,并暴露问题,继而与相关协作方高效协作、评估及推进风险点解除,避免问题后置暴露在测试阶段甚至交付上线阶段。
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的: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?并散列所有无济于事。
我有一些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
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
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/
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
我遵循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