Trinitytec 发表于 2015-10-21 15:55:58

为什么对测试过程进行详细记录?

很多测试人员,尤其是根据详细的测试手册进行测试的测试人员,在测试过程中通常很少做记录,可能从头至尾他们只会写一句“通过”。测试人员如果在测试后期,或者在软件发布之后发现了一些问题,可能就会很苦恼,因为他们已经不知道前面是做了哪些操作导致该问题出现的,也不确定这个问题到底是什么时候出现的。

“是怎么做测试的?”
每个测试人员在他的职业生涯中,不可避免地会被问及一个问题:“怎么做测试的?”
被问到这个问题的时候,有时候可能是因为测试工作做得好,领导赞许地询问。也可能是很多严重的问题在测试中没有发现,领导恼怒地诘问:“怎么做测试的?!这些问题都没有发现!”
所以不论测试做得好还是坏,总要说说测试工作是如何开展的。有时候是说出来,供大家学习一下,有时候则是让大家引以为戒。

测试的几大要素
要进行软件测试,必须首先了解测试的几大要素。测试方案,测试用例,测试脚本似乎是大家在做测试时讨论得最多的几个概念。但是大家可能没注意到,其实这些并不是测试本身,只是在说可以如何做测试。
所以,关于测试,最重要的因素应该是测试过程中所做的记录。测试方案和策略描述了测试应该如何进行;测试用例和测试脚本则提前设定了要测试的场景。
其实实际测试中获取的信息,才是最重要、最有意义的。

创建大量的测试证据 (Testing evidence)
严格的测试要求测试人员记录下所有操作及操作之后出现的结果。这样即使一段时间之后,你自己或者其他人再看的时候,还能清楚地知道当时的测试做了些什么。
实际上,无论软件的开发环境如何,测试人员在做功能测试或性能测试时总会面临一些时间压力。所以他们可能就会觉得做详尽的记录比较浪费时间,导致测试无法按时完成。但是我们绝对不能因为做记录而延误测试时间,或者怕浪费时间而不做记录。
下面我来说怎么解决这个问题 —— 不要一个人做测试。

不要一个人做测试
在测试时,找个同事一起做测试,让他记录下你在哪里操作,是如何操作的,输入的值是什么,选择了哪个选项,甚至要记录下你每次输入数据或点击下拉菜单之间的时间间隔。他可能会发现你忽略掉的一些东西,(比如:你光注意某些内容,而忽视了弹出的一些响应信息或结果)以及一些之后需要再次重点进行测试的地方。
在测试过程中,如果发现了一些异常行为,而这些行为并没有那么重要,那么这个小伙伴可以帮你记住这些点,以提醒你在下个测试回合中专门测试一下这些地方。有另外一个人和你一起盯着屏幕,能够督促你集中精力、专心、客观地做测试。

记录所有的内容
医学专家常说“没有记录下来,就表示没有发生。”同样的,在刑事案件中,目击者的证词特别需要重点复审,因为其实人们的记忆并不如我们想象中那么可靠。记忆是有缺陷的。
在测试时,记录下所有操作,以及操作之后得出的所有结果。无论现各项操作多么理所当然,结果多么显而易见,一两周之后所有记忆都会变得模糊。所以一定要做好记录。
现在也有录屏软件可以记录下用户的操作,以及每次操作之后的响应结果:会记录下所有的动作,屏幕所显示的内容,所有消息。所以用这个工具,很容易就能够记录下测试过程中所出现的所有情况。
也有其它选择。为了方便工具在测试过程中进行记录,我们可以打开一个窗口执行待测的应用程序,在另一个窗口中打开笔记记录工具。在做记录的过程中,我们可以将截屏拷贝到笔记中,这样我们就能够很直观地看到发生了什么。

其它形式的凭据
我们一定不能忽略掉那些简单的并且容易忽略的信息,比如测试时的构建,数据库或架构的版本,因为这些是会变化的。有时候数据库的环境改变之后,很久之后才出现一些出乎意料的影响。
根据被测软件的类型,我们能够轻松找出一些测试凭据,比如通过日志:应用程序日志,数据库日志,系统日志 —— 这些日志会保存在执行测试的设备上 —— 而主机日志则保存在系统主机上。
这些文件中会有一些与测试相关的、非常有价值的信息。我们甚至可以利用这些信息检测出一些不是很明显的问题。这不仅对测试者的测试有帮助,同时也是重要的测试结果,可以存档。

自动化测试工具
由于人工测试比较费时费力,而且测试很容易遗漏一些内容,并且常常带有主观性,现在对于软件自动化测试工具的诉求也不断增强。自动化测试工具不但能提高测试和开发效率,还能避免很多人工测试无法避免的问题,并能轻松做到人工测试无法做到的事情。
很多自动化测试工具(如VectorCAST,DT10)能够自动生成详细的测试报告,包括所有测试用例、测试用例输入输出数据、判断结果、程序度量分析结果、不同覆盖率报告和MC/DC 等价类分析矩阵,等等。
有些自动化测试工具在完成测试之后,还能够回放当时进行测试时的情况。比如:DT10能够通过分步回放功能可对设备进行回溯调试。VectorCAST能够自动录制动画回放程序覆盖的路径。它可以记录测试用例执行过程中被测代码的执行路径,并支持用户播放、暂停和设定断点等方式进行查看。这样用户可以直观地了解被覆盖的代码是如何覆盖的,没有覆盖的代码为什么没有覆盖到,从而准确地添加测试用例,提高覆盖率。
所以利用自动化测试工具进行测试通常能够很轻松地对测试过程进行记录,并生成测试结果,供大家分析、研讨、存档。

疑问
我们为什么要保留这些信息?保留这些信息有什么意义?
如果在本次测试之后,再重复进行测试时,或者在正式产品中发现了一些意料之外的结果,大家就要问问当时做测试的时候,是怎么测试该功能的?而那些记录和结果就可以用来回答大家了。
个 人看来,之所以要保存这些测试依据,有一个非常简单的原因:这是现在的你给未来的自己的一份礼物。可能几周、几个月以后,或者对下个冲刺版本进行测试的时 候,你可能就要用到这些记录。这些记录可能也会对其他人有帮助。因为无论是谁,在以后发现问题的时候,都要调查出现问题的原因,那时候就要用到以前的那些测试依据了。

lsekfe 发表于 2015-10-22 09:19:25

不错,支持下!

Trinitytec 发表于 2015-10-22 15:54:28

lsekfe 发表于 2015-10-22 09:19
不错,支持下!

:)
页: [1]
查看完整版本: 为什么对测试过程进行详细记录?