Day 2 测试分析讲义
在第一天的内容里面,我们重点讨论了测试执行,也就是说别人分析好的测试,我们如何去执行,这是测试工作的第一步。那么如何更进一步呢,我们当然不希望只是从事最简单最基础的部分,也是希望有进一步的发展空间。于是,这一篇讲义就是来做第二步的讲解,做好测试分析,这样可以在分析的基础上去做软件测试。
本篇讲义解决的问题如下:
- 对于指定好的具体功能,如何开始测试?
- 对于指定的功能来说,测试要包括哪些范围?
- 测试场景是怎么回事?
0 主要内容
- 1 B1_需求分析
- 2 B2_测试范围
- 3 B3_测试重点
1 B1_需求分析
1.1 需求定义
需求,这个词应该是软件领域里面听到的最多的词汇之一。具体的表述有如下:
- 需求,Specification,SPEC
- 功能,feature
- 新功能,new feature
- 更新的功能,updated feature
- 用户故事,user story
- 故事,story
在敏捷(Agile)开发框架中,需求的标准说法是:用户故事,User Story。这里我们在禅道中有明确的页面。之前我们用了禅道“测试”模块的两个菜单:“Bug”和“用例”,今天我们讨论禅道的另一个菜单:“需求”。这个菜单在“产品”和“项目”中都有,但是只有在“产品”中可以创建,在别的地方只能查看。
我们打开“创建需求”的页面,可以看到如下界面(重点关注红色框选部分):
重点,其实就是框选的部分,需求(用户故事)的主要内容包括三个地方
- 需求名称:用来说明要开发的功能是做什么的
- 需求描述:用来描述,这个需要被开发的功能,具体是怎么回事
- 验收标准:下面的文字来讨论,要说明如何通过验收
用户故事是描述对用户有价值的功能,好的用户故事应该包括角色、功能和商业价值三个要素。用户故事通常的格式为:作为一个<角色>, 我想要<功能>, 以便于<商业价值>。
英文是As a <Role>, I want to <Activity>, so that <Business Value>.
- 角色:谁要使用这个功能。
- 功能:需要完成什么样的功能。
- 价值:为什么需要这个功能,这个功能带来什么样的价值。
来举两个栗子:
- 作为注册求职用户,我想要查看最近3天发布的招聘信息,以便于我看到最新的招聘信息
- 作为注册企业招聘用户,我想要查看最近一周更新的简历信息,以便于我查找到最新的候选信息
1.2 需求澄清
需求澄清的过程,就是需求明确的过程,整个行为为了满足两个要求:
- 开发人员知道如何去开发这个需求,要达到什么样的效果
- 测试人员知道如何去验证这个需求,要保证社么呀的标准
需求澄清一般是由项目经理主持,开发人员和测试人员共同参加并讨论确定结果的。需求澄清的产出就是:验收标准。
1.3 验收标准
验收标准,又称为AC。Acceptance Criteria。这个是需求(用户故事)最有价值的内容,因为AC决定了需求的完成目标。
标准,顾名思义就是要确定一个规矩,为需求描述的每一个内容细节做好确定。我们接着用上面的例子来展开说明。
栗子一:作为注册求职用户,我想要查看最近3天发布的招聘信息,以便于我看到最新的招聘信息
这个栗子,我们要确定的标准至少要包括以下几个内容
- 是不是只有注册的求职用户才能够查看?
- 如何知道是注册用户,那么要登录系统后才能查看么?
- 最近3天发布,是怎么定义最近三天的?
- 招聘信息是指招聘职位,还是招聘公司?
- 这个功能的界面是什么要求?
栗子二:作为注册企业招聘用户,我想要查看最近一周更新的简历信息,以便于我查找到最新的候选信息
这个栗子,我们要确定的标准至少同样要包括以下几个内容
- 是不是只有注册的企业招聘用户才能查看?
- 企业招聘用户指的是哪类用户?
- 这个用户需要登录系统么?
- 最近一周是如何定义的?
- 更新的简历信息需要显示什么内容?
- 这个功能的界面是什么要求?
标准,就是对上面的每一个问号(?)做好回答,就形成了标准。类似于规章制度。
2 B2_测试范围
2.1 测试对象
测试范围,是测试分析的接下来的一个重要部分。在测试开始之前,软件测试工程师能够参考的内容,就是需求(用户故事),通过对用户故事中AC验收标准的分析,我们需要明确测试范围,列出来以下两个部分:
- 该功能(用户故事、需求)中,需要被测试和验证的部分
- 该功能(用户故事、需求)中,不需要被测试和验证的部分
这里的“部分”,就只得是测试对象。
测试对象主要包括两种:
- 直观的:界面对象
- 不直观的,需要分析的:业务对象
2.2 界面对象
界面对象,就是UI对象,指的是眼睛可以看到的,耳朵可以听到的,鼠标可以操作的(点击,左键,右键,中键,双击,拖拽等),键盘可以操作的(输入,删除,回车,空格,TAB等)
这些内容,要分析出来,哪些需要被测试,哪些不需要被测试。
2.3 业务对象
注意,业务对象是测试的重点,重点,重点的对象
业务对象,就是业务逻辑。这个可能比较难理解。指的是输入和输出的处理过程。例如发红包这个需求,业务对象就是:
- 发红包之前的聊天窗口
- 发红包的合法输入以后的操作结果
- 发红包的非法输入以后的操作结果
- 发红包以后的红包记录(95%的新手测试工程师会遗漏哦)
3 B3_测试重点
3.1 什么是点
测试重点,就是要重点,专注,花费主要的时间和资源去检查的“测试对象”的某一个细分的部分。还是以红包为例:
- 重点一:红包金额的输入框
- 重点二:输入金额后,金额显示的联动
- 重点三:合法操作后的结果
- 自己对话框
- 对方对话框
3.2 为什么重
上面的“红包历史记录”为什么不是重点?因为,这个点不影响发红包的主要功能。所以重点,一定是影响这个需求(用户故事)的主要内容的点。
3.3 如何判定
那么如何判定,哪些是重点,哪些不是呢?
- 用户常用的和用户看重的(产品经理会告知)
- 最主要的功能:其实对应的是用户故事的(我希望有xx)
- 和金额,交易,流程相关的
- 按照经验,出问题比较多的地方:例如 权限
- 相关学习