不知道大家有没有这样的想法,为什么别人的需求分析写的这么好呢?而自己写需求分析的时候总是脑袋瓜子都抓破了,还被老大批评?今天我就给大家讲一下——一个优秀的测试工程师如何进行需求分析呢?
好的测试工程师,需要有测试的思维方式。
测试分析和设计能力,就是这种思维方式最好的体现。
接触过测试的人都应该清楚“测试需求分析”的重要性。就好比是建楼的地基,地基不牢,再好、再高的大楼都可能在顷刻间崩塌。
那么如何科学的进行测试需求分析呢?BAT乃至Facebook等国外的先进互联网公司的顶尖测试工程师又是如何进行需求分析呢?我们常规的需求分析又有哪些不足呢?今天利用上班时间好好和大家一起聊一聊测试需求分析的那些事儿。
软件测试的生命周期
在讨论测试需求分析之前,我想跟大家明确一下软件测试的生命周期。很多朋友对整个测试过程的周期不甚了解,导致测试工作混乱不堪,名有明确的思路。这样是无论如何都不能做好软件测试工作的。
测试需求分析:从产品需求挖掘出我们需要的测试需求
测试设计:根据测试需求,设计测试方案和测试用例
制定测试计划:根据项目实际安排人员周期
执行测试:依照测试计划,执行测试用例
质量评估:提交Bug,提交测试报告
为什么要做测试需求分析?
举一个现实生活中大家经常用到的例子。生活中可能经常有人这么问你:我想买台电脑,有什么推荐么?那么我们是不是需要问这么几个问题:买来干嘛的?台式机还是笔记本?你预算多少啊?对系统有啥要求么?
只有这些问题我们都明确了之后,我们才能够帮忙去推荐。也就是说,通过这些问题,我们才能了解对方的需求。同样,我们做测试工作,产品需求并不等于测试需求,如果没有测试需求分析,就会导致我们对产品了解不完整、不准确,对产品的测试也会不透彻。所以,测试需求分析是必不可少的环节。
如何进行测试需求分析呢?
分析任何一个事物,我们都需要一个分析对象,同样测试需求分析首先要有一个分析对象。作为测试需求分析的对象,一般有这么几种形式:产品需求文档、交互稿、技术文档、会议纪要等其他参考资料。根据这些资料文档,我们从测试的角度进行分析。
产品需求文档
交互稿
技术文档、会议纪要等其他参考
在测试需求分析的过程中我们需要用到一些思维导图的工具,帮助我们从广度和深度更加直观的去分析需求。他可以把我们整个的思考过程层次化、结构化的表达出来。思维导图的工具有很多,在这里主要跟大家分享、比较下北月用过的几个,孰优孰劣,大家自己去判断。
分析结果也有多种的表现形式,以最开始买电脑的故事为例,可以变现为:
将这些确定的条件合起来,我们就可以得到买电脑的需求。
测试需求分析的类型(从广度上分析)
测试需求分析的类型其实大家也再熟悉不过,大家可以参考清流的文章"这样考虑测试点,做个合格的测试工程师",在这里北月不多说。
举个栗子
接下来我们以“网易云课堂”的一个小功能为例,从功能、性能、兼容性方面简单的实现测试需求分析。下图是网易云课堂一个功能的交互稿:
那么测试需求是什么呢?
首先我们先考虑功能测试测试点:需要分析用户参加课程的行为,可能会出现哪几种情况?用户是否登录?参加课程是否成功?参加课程失败的原因可能是什么?
在这里需要注意,在需求文档、交互稿里没有明确的情况需要我们测试人员发散思维去考虑到而不是因为需求文档没有明确而不考虑。
其次我们考虑性能测试需求。一般性能测试的需求不会明确表示在需求文档和交互稿里面,需要我们去和产品、开发沟通,依靠我们的经验去明确。比如说,上万用户同时参加某个课程,是不是会出现有人无法参加课程的情况?程序响应速度会不会变慢?会对服务器产生哪些影响?因此性能测试需求,我们要对大量用户同时参加课程进行测试;那么我们想到,参加课程需要用户提前登陆,因此我们还要对大量用户同时登陆进行测试。
接下来是兼容性。我们知道目前市面上的手机有很多品牌,但手机系统主要分为Android和IOS,还有少部分的windows;PC系统主要有windows、mac和Linux;浏览器主要有火狐、谷歌、IE等。
我们首先要确认,我们的系统目标是要支持那些系统?哪些平台?哪些浏览器?然后根据系统目标去考虑兼容性的测试内容。
现在,对于测试需求分析,大家有没有大概的了解呢?欢迎大家跟我一起交流测试方面的问题哦:672899761。