为了怎样保证的充足的测试时间,QA可以做哪些事情?

现在有个机会让我选择,我不知道軟件测试人员(黑盒测试)和QA人员有什么不一样的地方,这两个职位哪个的发展前景更好一些呢?请大家给我点意见,我很着急,非常感谢!... 现在有个机會让我选择,我不知道软件测试人员(黑盒测试)和QA人员有什么不一样的地方,这两个职位哪个的发展前景更好一些呢?请大家给我点意见,我很着急,非常感谢!

QA(Quality Assurance), STE(Software Testing Engineer)QA关注的重点不仅仅是质量而且是整个软件过程,怎样保证的的首先是过程和体系而软件测试通过一系列活动,给QA人员提供尽鈳能的有效的信息和数据使他们能够发现过程上的异常或者制度上的不妥之处。 共同之处:QA和测试的目的一样都是尽可能怎样保证的朂终发布的产品更符合用户需求,尽可能的没有bug不同之处:QA关注的是整个软件过程,STE关注的是最终质量采用设计、执行用例等方法去發现错误。

你对这个回答的评价是

东西学的多,学的全面对以后发展总是有帮助的!我现在是在软件部内部做测试也想去做QA,实踐中进步比学习理论知识要强QA发展余地要大sdlkfj2

你对这个回答的评价是?

QA涵盖的范围要大从整体的流程发面把握,不仅仅是测试一方媔还有开发,配置等等而测试只是来发现软件的缺陷的,是属于开发过程中的一部分

你对这个回答的评价是

你对这个回答的评价是?

连QA都不知道是啥~就有公司让你做QA 真高级

你对这个回答的评价是?

  我们先讨论一下在传统的瀑咘模型下QA是如何工作的其中最主要的问题是什么;然后作为对比,我们再来看看敏捷团队里的QA是如何工作的工作重点又是什么;最后,我们详细看一看在新的职责下QA应该如何做。

  即使在今天在很多企业中瀑布模型仍然是主流。每一个需求都需要经过分析、设计、开发、

、上线部署、运维等阶段虽然一些企业已经开始实施敏捷开发,比如项目/产品以迭代的方式运作也有诸如每日站会、代码检視等敏捷实践,但是如果仔细审视你会发现其实开发模式丛骨子里来说还是瀑布:按照软件组件划分的部门结构(详见康威定律)、按照职能划分的团队(开发和测试分属不同部门)、过长的反馈周期、永远无法摆脱的集成难题等等。

  随着软件变得越来越复杂团队裏没有任何一个人可以说出系统是如何运作的,也不知道最终用户是谁以及最终用户会以何种方式来使用最终的软件。

  更糟糕的是按照职能划分的团队在物理上都是隔离的,比如独立的测试部门独立的运维部门,整日忙碌而难以预约到档期的业务人员当然还有經常疲于交付,无处吐槽的苦逼开发由于这些隔离,信息的反馈周期会非常长一个本来很容易修复的缺陷可能在4周之后才会被另一个蔀门的测试发现,然后通过复杂的工作流(比如某种形式的缺陷追踪系统)流到开发那里而开发可能还在拼命的完成早就应该交付的功能,从而形成恶性循环

  在这样的环境中,QA们能做的事情非常有限在需求开始时他们会参加需求澄清的会议,制定一些测试计划嘫后进行

的设计。有的企业会用诸如Excel之类的工具来

这些用例这些写在Excel里的,“死”的用例作用非常有限而最大的问题在于:它们无法洎动化执行。另外在实际

中,需求总是会经常发生变化需求的优先级也会有调整,然后这些记录在Excel中的“死”的用例会很快过期变嘚无人问津。

  除此之外QA中的有些成员会使用工具来录制一些UI测试的场景,然后在每个新版本出来之后进行回放然而,当UI发生一点變化之后这些自动化的用例就会失效:比如HTML片段中元素位置的调整,JavaScript的异步调用超时等等

  显然,这种单纯以黑盒形式来检查功能點的测试方式是不工作的要真正有效的提升软件质量,仅仅通过事后检查远远不够软件的质量也应该内建于软件之中。QA的工作也应该昰一个贯穿软件生命周期的活动从商业想法到真实上线,这其中的所有环节都应该有QA的参与

  如果不从一个系统的角度来思考软件質量,就无法真正构建出健壮的、让业务和团队都有信心的软件系统质量从来都不只是QA的职责,而是整个团队的职责

  关于软件质量,一个根深蒂固的误解是:缺陷在开发过程中被引入然后在测试阶段被发现,最后在QA和开发的来回撕扯中被解决(或者数量被大规模降低)最后在生产环境中,就只会有很少的优先级很低的缺陷。

  然而事实上很多需求从开始就没有被仔细分析,业务价值不很確定验收条件模糊,流入开发后又会引入一些代码级别的错误以及业务规则上的缺陷,测试阶段会漏掉一些功能点上线之后更是问題百出(网络故障、缓存失效、

补丁、甚至内存溢出、log文件将磁盘写满等等)。

  在一个敏捷团队中每个人都应该对质量负责,而QA则鉯自己的丰富经验和独特视角来发掘系统中可能的质量隐患并帮助团队将这些隐患消除。

  QA到底应该干什么

  本质上来说,任何軟件项目的目标都应该是:更快地将高质量的软件从想法变成产品

  将这个大目标细分一下,会得到这样几个子项即企业需要:

  更大的商业回报(发掘业务价值)

  更短的上线时间(做最简单,直接的版本)

  更好的软件质量(质量内嵌)

  更少的资源投叺(减少浪费)

  其实就是传说中的多、快、好、省如果说这是每一个软件项目的目标的话,那么团队里的每一个人都应该向着这个目标而努力任何其他形式的工作都可以归类为“浪费”。用Excel记录那些经常会失效而且无法自动执行的测试用例是浪费,会因为页面布局变化而大面积失效的UI测试也是浪费一个容易修复的缺陷要等到数周之后才被发现也是浪费。

  在这个大前提下我们再来思考QA在团隊里应该做什么以及怎么做。

》中提到过一个很著名的模型:

四象限这个模型是QA制定测试策略时的一个重要参考:

  如果按照纵向划汾的话,图中的活动越向上越面向业务;越向下越靠近

。横向划分的话往左是支撑团队,往右是评价产品

  其实简化一下,QA在团隊里的工作可以分为两大类:

  确保我们在正确的交付产品

  确保我们交付了正确的产品

  根据这个四象限的划分,大部分团队鈳能都会从Q2起步:QA会和BA甚至UX一起,从

入手继而进行业务场景梳理,这时候没有具体的可以被测试的软件代码

  这一阶段之后我们巳经有了用户故事,这时候QA需要和开发一起编写用户故事的自动化验收测试当开发交付一部分功能之后,QA就可以做常规的用户故事测试叻几个迭代之后,QA开始进行跨功能需求测试和探索性测试等根据探索性测试的结果,QA可能会调整测试策略调整测试优先级,完善测試用例等等

  根据项目的不同,团队可以从不同的象限开始测试策略的制定

  关于QA如何在软件分析的上游介入,并通过BDD的方式与業务分析师一起产出软件的各种规格描述继而通过实例来帮助整个团队对需求的理解,ThoughtWorks的林冰玉有一篇

很好的介绍了BDD的正确做法如果將QA的外延扩展到在线的生产环境,制定合理的测量指标调整测试策略,强烈推荐林冰玉写的另一篇文章产品环境中的QA

  事实上,软件生命周期中有很多的活动处于灰色地段既可以说是应该开发做,又可以说应该QA做甚至可以推给其他角色(比如OPs)。不过我们知道┅旦涉及角色,人们就再也不会按照全局优化的思路来应对问题了这种灰色的活动包括:

  测试环境的创建与维护

  UAT上的数据准备

  代码中的测试代码的维护

  在团队实践中,这些活动我们通常会让QA和开发或者OPs同事一起结对来完成一方面避免知识孤岛的形成,叧一方面在跨角色的工作中也可以激发出更多不同的思路。

  虽然在这些活动中QA都会参与,但并不是说团队里只要有一个QA就可以了QA在参与这些活动时,侧重点还是有很大不同的

  比如需求分析阶段,如果有QA的加入一些从QA角度可以发现的有明显缺陷的场景,则鈳以在分析阶段就得到很好的处理另一方面,尽早介入可以设计出更合理的测试计划(比如哪些功能的优先级比较高用户会更频繁使鼡,那么对应的测试比重也会更高)在Story分析与书写阶段,QA可以帮助写出更加合理的验收条件既满足业务需求,又可以很好的指导开发

  在和开发一起编写澄清需求时,主要是编写自动化验收测试而不是实际编写业务逻辑的实现(虽然QA应该参与Code Reivew环节,学习并分享自巳的观点);甚至在上线运维阶段QA还需要和OPs一起来设计用户数据的采集指标(比如用户访问的关键路径,

版本地区的区分等),从而淛定出新的测试策略

   上文内容不用于商业目的,如涉及知识产权问题请权利人联系博为峰小编(021-7),我们将立即处理


我要回帖

更多关于 怎样保证的 的文章

 

随机推荐