测试管理 如何做好功能测试

爱偷懒的QA · 2018年03月27日 · 最后由 明恩赐 回复于 2023年03月02日 · 5570 次阅读

不论你是什么时候开始接触测试这个行业的,你首先听说的应该是功能测试。通过一些测试手段来验证开发做出的代码是否符合产品的需求?当然你也有自己对功能测试的理解,但是最近两年感觉功能测试好像不太受欢迎,同时不少同学真的是功能测试都没有做好,就去尝试自动化测试,测试开发什么的,结果是越学越迷茫,这是为什么呢?究其原因是,你功能测试还没有学好呢!
我们通常认为的功能测试是根据需求,采取如下测试流程:需求分析,用例编写,用例评审,提测验证,Bug 回归验证,上线与线上回归等来进行测试。如此日复一日,年复一年,响应了很多需求,可是想换工作的时候却得不到认可,大家想想是不是这种情况?下面我就以一个功能测试人员如何进行工作,来介绍一下功能测试应该用到的知识及相关的提升建议。

一, 需求分析,发挥主动性
正常的需求在产出的时候,产品是要分析这个需求的价值,影响范围和实现代价的。可是现在很多情况是,需求来了就组织评审,然后开发测试与上线。产品主导型的开发模式非常常见,作为测试我们无法主导需求和项目。在需求评审的时候,作为一个测试人员必须了解这次需求的内容,影响到哪些现有的功能,涉及到的操作系统或是类别等,然后准确的评估出工作量,防止因评估不足造成后期测试不充分。再者,关注开发和产品的讨论,如果开发说哪一部分比较难实现,最后如何实现?其中做出的变动和难点就是测试的时候必须重点关注的部分。不能因为这些暂时和你没有关系就不去关注,后期会带来麻烦。第三,需求评审结束后,要求产品更新此次评审过程中的所有改动部分,同时给出方案确保产品的任何改动都及时更新。第四,根据产品需求,设计测试方案及时间安排,此时可以粗粒度考虑,时间上要合理;同时与在会人员进行探讨。

二, 用例设计与评审,做到不遗不漏
测试用例是每个测试人员工作过程中必须要完成的工作,不管你是用 Excel,还是用 FreeMind 来写,在测试工作中一是用来指导测试工作,而且是相关业务的一个文档沉淀。可能你不太在意测试用例的编写,可是在我以往面试的经验中,有超过一半的人写的测试用例是不达标的。很多人写用例是用书本上的方法,什么边界值法,条件覆盖法等等,其实我们更应该关注用户,从用户的角度来写用例才对。
测试用例必须具备的测试用例名,执行步骤,预期结果这三点是必须要写清楚的。再者就是测试方案选择必须全面,作为功能测试人员你可能不会编写自动化测试脚本,不会性能测试,安全测试,但是你必须能根据需求想到要实施哪方面的测试。如面试的时候给你一个场景:一个全新的 App 要发版,如果让你来测试,你能想到哪些测试方案?如果你只能想到如何去测试 app 的功能的话,那你作为功能测试人员就是考虑不全面。此时的 App 的功能,App 的性能,数据传输的安全性,接口或服务的功能测试,接口或服务的自动化测试与监控,接口或服务的性能测试,底层数据的存储与容灾情况都必须考虑在内。
设计用例的时候要设计两类, 一类是开发自测和验收提测试标准的冒烟测试用例,一类是针对需求的全面测试用例。写完用例要主动联系相关人员进行用例评审,强调开发自测,在评审过程是及时修改不合适的用例。

三, 测试流程,注重项目控制
其实项目的流程控制在需求开始的时候就应该重视起来,只是很多时候我们没有意识到这是测试的工作,有的是产品来控制,有的是专门的项目经理来控制。测试人员是一线的工作人员,不管你工作了多久,必须有关注整体项目的意识。如果你不关注项目进度,什么时候提测你什么时候开始测试,在测试过程中你就会遇到测试的内容和最初的需求不一致,增加新的内容从而增加工作量,或是产品和开发一起来压缩测试时间的情况,到时你想不加班都难。
需求一旦明确了由你来负责的时候,就要时刻按排期来关注项目的情况。中间变更需求的时候,要评估是否影响项目进度,如果影响了重新进行排期。如果开发提测试晚了,是否影响上线时间,如果可能会影响,马上就要给相关的人员发预警邮件,通知大家详细的情况。同时在测试过程中,发现了 bug 必须详细描述问题,不管是 jira,禅道或是其他的 bug 管理方式,一个 bug 要写清楚以下几点:Bug 问题描述,bug 重现步骤,是否有前置条件,预期结果,实际结果,以方便开发去进行修改。同时给 bug 准确分级,实时跟踪进度,保证项目按期完成。

四, 上线回归与项目总结
一个需求上线完成后,要及时进行线上回归,如果有必须提醒相关的人员进行自动化线上回归或是监控工作。同时必须回归我们在需求评审的时候考虑到的可能影响到的原有的功能,以确保新功能的完全上线成功。而作为功能测试人员,在一个项目完成后,不管公司有没有要求,要对项目做相应的文字总结。总结整个项目过程中遇到的问题,最后的解决办法或是当时讨论的处理办法,有哪些需要注意的问题?有什么可以借鉴的方案或是改进策略?项目中有没有通用性的问题等等。
如果公司有相应的项目总结方案,那测试的时候就要多关注一些数据,如冒烟测试是否一次通过,Bug 数及不同级别的 bug 数,参与开发人员对应的 Bug 数,提测试次数,上线次数等等。而后借助于第三方工具进行图表化相应的数据,然后相关问题的总结,改进方案都需要进行详细的总结。

五, 能力的总结和沉淀
在我们找工作的时候,很多做功能测试多年的同学一般很难通过面试,这里面的原因究竟是什么?其实最核心的原因是,你不具备相应工作年限应该具备的能力。
测试工具的使用:在你以往的工作经验中,有没有总结过什么样的需求或是项目应该使用什么样的测试工具,而不是仅仅使用公司提供或是指定的工具?有没有分析过同类的工具的优缺点?如果一个类似的全新的产品,你能否围绕着工作需求,准备相应的测试工具来辅助测试?什么样的测试工具在测试项目的时候可能存在问题,问题的解决办法是什么?
问题的总结:在测试工作中总结部署环境出现 502 或是 404 产生的原因及解决办法?产品的哪儿块功能容易出现问题,或是开发怎么实现相应的功能可能出现问题?产品的功能模块之间是如何工作的,修改部分功能后可能会对其他模块产生影响?哪个版本的编译器打包的产品容易在哪些方面出现问题?等等相应的问题总结有没有做,如果做了,在接到相应的需求后就能快速的评估测试范围,选择测试方案,规划测试时间等。
技术的沉淀:技术不仅仅指的是编码能力,像平时我们部署环境出现问题后,最后的解决方案的总结;测试过程中日志出现空指针的排查;项目测试过程中遇到的问题及解决方案;一些常见问题的排查及解决方案等等。要在工作中善于积累,从而指导自己的工作或是为同事提供解决问题的思路与办法。

时常问自己一句话:离开现有的平台,我还有什么?这个才是你的资本,对公司业务的熟悉,公司现在工具的使用等等,对你来说是没有任何优势可言的。而对同类业务流程的掌握,项目的整体把控,快速了解业务并能根据需求选择测试方案,引进现有的测试工具提高测试效率,测试过程中遇到问题的预判和解决办法等才是功能测试人员必须具备的能力。这些方面你做到了吗?业务专家也是不想做编码的测试人员一个很好的选择,不要整天抱怨功能测试如何如何,要充分认清行业现状和自己的优缺点,做好职业规划。

共收到 37 条回复 时间 点赞

写的非常好,可惜很多公司都不重视了,各种要求自动化、性能、编码,行业混乱,高层对测试都不重视了

cdp 回复

对啊,测试是一个体系,最下层是功能测试,是基础也是最根本的东西!

说得好!
最反感的就是,好像除了自动化、性能,测试就没有技术含量了一样。
其实测试本身就是多元化、符合项目需要的才是正确的。
不能为了自动化而自动化,否则 没有事半 反而功倍!

cs萌新 回复

从功能测试去学习测试思路,测试方案的选择等,然后再去做自动化测试,测试开发,才能事半功倍!

回归测试的初心和本质。

天下测试,唯用例设计不破,唯缺陷报告不破!!!

好多 3 年 5 年的我也见过你说你会设计用例,分析拆解用例。。但都是整体没一个清晰合理的用例结构,或者设计套路,感觉都是经验谈。
好多也说会写缺陷报告,但总是提交信息不系统,漏掉某些关键业务处理链路上的必要信息。

盲目追求编码能力,是目前整个测试生态圈导致的,也经常是一种无奈之举啊,误区有越走越深风险,“拨云见日” 真的太有必要了

艾里艾兰 回复

现在确实是这个现象,没有办法!

匿名 #10 · 2018年03月28日

非常赞,楼主分析的很透彻,一看就是个很喜欢总结反思的老鸟了,功能测试其实才是占比最大的测试,其实每一个测试都有自己的一套测试方法,只不过有些如楼主所说的这样,比较完善,有些只是基于表面而已。建议楼主可以把自己的测试方法,有思维导图的形式呈现出来,阅读起来更容易理解,层次也比较鲜明。

🌱 🌱 沉淀,

作为测试,设计测试用例是必须的

依稀记得看过楼主的博客

—— 来自 TesterHome微信小程序

看到脉脉上楼主的推文。。。。

magicyang 回复

我在新浪博客,知乎,脉脉,testerhome,cnblog 上都有同步发布文章的,😄

😂 小公司没有需求分析这些文档~~

不忘初心,学习了,谢谢。

很对,功能测试没用好,就急着去自动化测试,很迷

嗯 . 写的挺好的 点赞!

Jay_ 回复

相互学习!

说得很好,但现实的测试行业由于企业的功利性,很难行得通这些构想,难!

测试的 回复

确实,社会现状是这样,我们没有办法去改变,只能通过不断地提升自己来适应社会了

已经迷茫的人,看到楼主文章,才发现,自己工作这么多年了,一直是应付工作,从来没有塌下心来去总结自己再工作中学到了什么,遇到了哪些麻烦

维尼 回复

现在工作中不仅要把应该做的事情做好,而且要不断学习,社会发展太快了。当你在一家公司工作了几年,想换工作的时候就会发现与时代脱节了,到处面试碰壁的时候,就会相当伤心了!

是时候停下脚步思考整个工作内容和自身发展了。

仅楼主可见
kiko 回复

没有写相关的文章

感谢分享,学习了。

清雨抑尘 回复

不客气,多多交流,相互学习!

日常坐牢 回复

功能测试比较很简单,但是这个是基础,不少人功能测试不扎实,就去学习自动化,压力测试什么的,结果学的不伦不类的,也没有什么用的。

作为萌新,真的没有功能测试的基础会很慌,但是部门里个个前辈都不认可、认识不到功能测试的重要性,现在疯狂泡论坛学功能测试

mark
好文 期待后续

楼主总结能力超棒。值得学习,想你看齐

Mark,目前不少都是为了自动化而自动化忽略了基础。

爱偷懒的QA 回复

很多公司的测试日常就是功能测试,写不完的用例,跑不完的 case,天天加班。以至于没时间研究技术,搞自动化,维护自动化那套东西。

写得不错,经常在为了自动化而自动化的路上走偏了,时不时看看,自省。

说的很有道理,已经分享给组内其他人😀

我去催饭 回复

其实这只是一个进度问题,先做好功能测试,然后再去做自动化。后面我会写如何做好自动化测试的,请保持关注哟!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册