本文共 3925 字,大约阅读时间需要 13 分钟。
Quality Assurance :The planned and systematic activities implemented in a quality system so that quality requirements for a product or service will be fulfilled.
Quality Control :The observation techniques and activities used to fulfill requirements for quality.QA的工作涉及软件研发流程的各个环节,且涉及到每一位参与研发的人员,但质量保证工作又不涉及具体的软件研发细节,侧重于整个流程。
QC则侧重于点,利用各种方法去检查某个功能是否满足业务需求。
thoughtworks 的QA则是这两者的混合体,你既要保证开发流程的质量,又要保证story的功能的是否正确。
来thoughtworks已经2年了,当过bqconf讲师与主持,参加过公司内各类测试相关活动,也阅读过g邮件中分享的关于test的话题,大部分人关注点都离不开自动化测试,面试的QA也说想到thoughtworks来学习高深的自动化测试,仿佛自动化测试代表了整个QA界,我反对盲目的自动化测试,确切的说反对盲目的UI自动化测试。很多QA在自动化测试海洋里迷失了自己。
我要强调自动化测试: 真的没有银弹。Faster Delivery Of Quality Software From Idea To Consumer
所以自动化测试只是其中的一小部分。
如上图顶部和底部的文字是对一个QA所能带给项目的总结:“我们在开发正确的产品吗?如果是,那么我们开发的产品正确吗?”所以QA首先需要在整个个项目过程中不断询问的所有成员上述问题,确保团队是在开发客户所需的产品,而不是自己YY出来的产品。Quality is not just in the software but also in the process
质量从来都不只是QA的职责,而是整个团队的职责。但QA如果自己都不注重,不督促组内成员改进质量,再将责任强加于整个团队,那么产品质量又何谈提升与保证。
中间的图片从一个QA的角度表明了一个用户故事的生命周期以及QA如何参与其中每个环节。 首先BA和客户将要开发的story列出之后,BA与QA可以一起pair编写具体story的内容,场景与验收条件,利用自己对业务以及系统的熟悉度,尽量的配合BA将story中坑尽量排除掉。 所有参与kick off 角色,都应该提前了解story内容。在kick off过程中,提出自己对story疑问。尽量将业务需求上问题在这个阶段解决。 在完成kick off后,QA可以和dev一起pair完成编写unit test 以及Automated Acceptance Tests,身为一个敏捷QA,我们起码要了解团队选用的单元测试工具,熟悉项目的技术架构,这样更好的便于我们对整个项目质量把控,在与dev pair的过程中,即帮助dev分析业务场景的分支,来确保单元测试覆盖的是正确的场景,而不是为了交代上级随便乱写的单元测试,也帮助QA熟悉代码,提高编码能力。 当DEV完成编码工作后,这时QA UX BA DEV一起检查story,是否按照story AC来检查是否完成对应的功能。UX也可发表对story UI以及交互一些看法,有任何问题及时讨论后,将问题尽早的反馈给客户。 当开发交付一部分功能之后,QA就可以做常规的用户故事测试,几个迭代之后,QA开始进行跨功能需求测试和探索性测试等。根据探索性测试的结果,QA可能会调整测试策略,调整测试优先级,完善测试用例等等。 上面这些QA实践貌似已经很完美,其实还差最重要的一环 quality analysis 。每次release后,我们总以为我们发布一个完美的产品,但却总能在新迭代开发过程中发现之前问题,历史总是惊人的相似,为什么,没有分析总结问题,以及相应的预防手段,那么同样的问题只会重现。 同时我们也要回顾下自己在工作中真的将这些敏捷实践都应用到工作中吗,我想或多或少的都有所欠缺。对于一个QA来说,不应循规蹈矩照搬敏捷实践。例如,在kickoff中,发现dev,UX对story涉及的场景以及内容了解不清楚,QA也可能漏掉一些测试场景,那么我们可以在kickoff之前,加入一个pre- kick off的实践,留出时间,让每个角色都能够完整了解story。在kick off之中,ux没有办法完整的确认页面的字体大小或者颜色等是否正确,那么在sign off之后,我们也加入一个UX-test实践,帮助UX能够更好解决这些问题。 所以每个项目也都有应适合自己项目的敏捷实践,发现项目存在的问题,持续改进才是最佳实践。上面的测试金字塔对于大家来说再熟悉不过了,对于自动化测试来说最有价值的仍然是单元测试,但对于QA来说无疑最复杂的。 大部分QA或者tester,仍然以UI自动化为重心。之所以反对盲目的UI自动化测试,因为变化频繁的UI设计,极低投入产生比,都应该让我们重新思考下UI自动化的价值。
1 2 3 4 5 6 7 |
,所有的页面都是js渲染出来的,如果你懂jsx,就知道只需要在对于的Component render方法中更改加入id等元素就可以搞定
1 2 3 4 5 6 7 | render() { return ( |
作为一个QA,我们不仅要检测项目中存在问题,也要改进团队的实践活动,更重要的是预防问题的发生。
软技能方面包括风险控制,辅导他人,沟通能力,分析定位等。技能方面则包括缺陷管理,流程改进,测试分析,可用性测试,性能测试,安全测试等。
回顾上面这些实践,其实我们可以做的更好,而不是把团队的质量全都交给自动化,回归QA的应有的初心,让我们从各个方面改进质量,带给团队更好的未来。
最新内容请见作者的GitHub页:http://qaseven.github.io/
转载地址:http://hbhax.baihongyu.com/