如何做好功能测试

发布于 更新于

技术文章

一、需求分析,发挥主动性正常的需求在产出的时候,产品是要分析这个需求的价值,影响范围和实现代价的。可是现在很多情况是,需求来了就组织评审,然后开发测试与上线。产品主导型的开发模式非常常见,作为测试我们无法主导需求和项目。在需求评审的时候,作...

一、需求分析,发挥主动性


正常的需求在产出的时候,产品是要分析这个需求的价值,影响范围和实现代价的。可是现在很多情况是,需求来了就组织评审,然后开发测试与上线。产品主导型的开发模式非常常见,作为测试我们无法主导需求和项目。在需求评审的时候,作为一个测试人员必须了解这次需求的内容,影响到哪些现有的功能,涉及到的操作系统或是类别等,然后准确的评估出工作量,防止因评估不足造成后期测试不充分。


再者,关注开发和产品的讨论,如果开发说哪一部分比较难实现,最后如何实现?其中做出的变动和难点就是测试的时候必须重点关注的部分。不能因为这些暂时和你没有关系就不去关注,后期会带来麻烦。


第三,需求评审结束后,要求产品更新此次评审过程中的所有改动部分,同时给出方案确保产品的任何改动都及时更新。


第四,根据产品需求,设计测试方案及时间安排,此时可以粗粒度考虑,时间上要合理。同时与在会人员进行探讨。


二、用例设计与评审,做到不遗不漏


测试用例是每个测试人员工作过程中必须要完成的工作。不管你是用Excel,还是用FreeMind来写,在测试工作中一是用来指导测试工作,而且是相关业务的一个文档沉淀。可能你不太在意测试用例的编写,可是在我以往面试的经验中,有超过一半的人写的测试用例是不达标的。很多人写用例是用书本上的方法,什么边界值法,条件覆盖法等等,其实我们更应该关注用户,从用户的角度来写用例才对。


测试用例要素:


必须具备的测试用例名,执行步骤,预期结果这三点是必须要写清楚的。


再者就是测试方案选择必须全面,作为功能测试人员你可能不会编写自动化测试脚本,不会性能测试,安全测试,但是你必须能根据需求想到要实施哪方面的测试。如面试的时候给你一个场景:一个全新的App要发版,如果让你来测试,你能想到哪些测试方案?如果你只能想到如何去测试app的功能的话,那你作为功能测试人员就是考虑不全面。此时的App的功能,App的性能,数据传输的安全性,接口或服务的功能测试,接口或服务的自动化测试与监控,接口或服务的性能测试,底层数据的存储与容灾情况都必须考虑在内。




设计用例的时候要设计两类:


一类是开发自测和验收提测试标准的冒烟测试用例,一类是针对需求的全面测试用例。写完用例要主动联系相关人员进行用例评审,强调开发自测,在评审过程是及时修改不合适的用例。


三、测试流程,注重项目控制


其实项目的流程控制在需求开始的时候就应该重视起来,只是很多时候我们没有意识到这是测试的工作,有的是产品来控制,有的是专门的项目经理来控制。测试人员是一线的工作人员,不管你工作了多久,必须有关注整体项目的意识。如果你不关注项目进度,什么时候提测你什么时候开始测试,在测试过程中你就会遇到测试的内容和最初的需求不一致,增加新的内容从而增加工作量,或是产品和开发一起来压缩测试时间的情况,到时你想不加班都难。


需求一旦明确了由你来负责的时候,就要时刻按排期来关注项目的情况。中间变更需求的时候,要评估是否影响项目进度,如果影响了重新进行排期。如果开发提测试晚了,是否影响上线时间,如果可能会影响,马上就要给相关的人员发预警邮件,通知大家详细的情况。


同时在测试过程中,发现了bug必须详细描述问题,不管是jira,禅道或是其他的bug管理方式,一个bug要写清楚以下几点:Bug问题描述,bug重现步骤,是否有前置条件,预期结果,实际结果,以方便开发去进行修改。同时给bug准确分级,实时跟踪进度,保证项目按期完成。


四、上线回归与项目总结


一个需求上线完成后,要及时进行线上回归,如果有必须提醒相关的人员进行自动化线上回归或是监控工作。同时必须回归我们在需求评审的时候考虑到的可能影响到的原有的功能,以确保新功能的完全上线成功。而作为功能测试人员,在一个项目完成后,不管公司有没有要求,要对项目做相应的文字总结。总结整个项目过程中遇到的问题,最后的解决办法或是当时讨论的处理办法,有哪些需要注意的问题?有什么可以借鉴的方案或是改进策略?项目中有没有通用性的问题等等。


如果公司有相应的项目总结方案,那测试的时候就要多关注一些数据。如冒烟测试是否一次通过,Bug数及不同级别的bug数,参与开发人员对应的Bug数,提测试次数,上线次数等等。而后借助于第三方工具进行图表化相应的数据,然后相关问题的总结,改进方案都需要进行详细的总结。



五、能力的总结和沉淀


在我们找工作的时候,很多做功能测试多年的同学一般很难通过面试,这里面的原因究竟是什么?其实最核心的原因是,你不具备相应工作年限应该具备的能力。


继续阅读