对目前系统测试的几个看法
1.
测试计划
这里所说的测试计划,是指测试阶段的测试计划,而不是整个项目过程的测
试计划。
现状:目前测试文档关于测试的内容主要是测试的时间计划。而这种时间划分也是非常粗略的,而且没有依据。为什么要花这么多时间?目前只是按照个人直观、经验等方法来判断测试时间。因此,这类测试计划的随意性太大,粒度太粗,不便于管理。目前的测试是为了测试而测试,没有规划性。
个人意见:细化测试计划,使测试时间可以量化。
1) 更改测试时间的划分方式,使用工作日/人的计算方法。
目前在编写测试计划时,
测试进度中的计划开始/结束时间往往用如20050101-20051201的具体时间划分方式,这样引起的问题是当项目计划进行变更的时候,测试计划时间不得不随时调整,这种变更可能是频繁而琐碎的,可以替代的办法是取消这种方式,采用30工作日/2人或者2人月这种工作量记录方式,这样,只需在项目计划中跟踪具体开始时间即可,不必反复更改测试计划。
2)
测试时间的计算
测试时间的计算比较困难,,但主要有以下几个方面:
a) 编写测试用例的时间
目前没有测试用例的管理和收集,测试主要是依照个人的经验来进行,不利
于管理和积累。我觉得测试用例可以文档化实现,尽管刚开始会花一些时间,但社区的各个系统相似性很高,因此测试用例的复用性就非常高。
个人建议:建立测试用例模板。
b) 系统执行测试用例的时间
c) 提交测试报告时间
即在
BUG管理系统中提交BUG时间。
d) BUG确认测试时间。
e) BUG修复时间及系统更新时间
f) 其他时间
再根据系统的功能点来计算测试所用的时间,这样就可以计算出一个功能点
所花的时间,进而得出一个模块或者一个工作台帐的测试时间,从而得出测试计划所需的工作量。其中,
e)不是测试人员所花的时间,但不算入测试人员的工作量。
2.
测试工具
目前的测试方法都是手工测试,手工测试的效率跟测试员的经验有很大关
系,需要一定的技巧性。而有部分测试类型是可以用测试工具来实现的。比如:边界测试、非法测试、功能测试、性能测试等。但自动化测试并不能代替手工测试,它是一个补充。一般来讲,测试自动化在整个测试过程中只能占到30%左右。
但测试人员对测试工具不熟悉,目前只能先以手工测试为主,继续探讨自动化测试的可操作性。(手头没有自动化测试工具)
3.
测试方法和测试类型
目前的测试方法以黑盒测试为主。从实际情况来说,能做好黑盒测试已经
很不错了,也是可以满足实际项目需要的。
黑盒测试的优点有:
1)比较简单,不需要了解程序内部的代码及实现;
1)比较简单,不需要了解程序内部的代码及实现;
2)与软件的内部实现无关;
3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
5)在做软件自动化测试时较为方便。
黑盒测试的缺点有:
1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
2)自动化测试的复用性较低。
谈到测试类型,我觉得这是我们忽略的一个环节。比如发现一个BUG,开发人员修改后,测试员可能只是考虑这个BUG是否依然存在,而忽略了其他问题,这就可能引起其他的BUG。(可能在修改这个BUG的同时,引起其他功能模块的连锁反应而产生其他的BUG。)那么,冒烟测试便可以解决这类问题(尽管它的覆盖率还是比较低)。
其它的测试类型还有Functional Test(功能测试)、Security Test(安全性测试)、Stress Test(压力测试)、Performance Test(性能测试)、Regression Test(回归测试)、Setup/Upgrade Test(安装升级测试)等。
我认为,可以通过一些培训或文档来培养测试人员的这些测试技巧。
4.
测试用例
这里谈的主要是黑盒测试用例。具体参考
黑盒测试的测试用例设计方法。
5.
测试工作的考核
工作考核的内容,在整个公司来讲也是刚刚起步阶段,而测试工作的考核也
是比较可能的。下面我列举几个考核标准,只供参考。
按照测试周期测试阶段分为:测试计划、测试设计、测试执行。
测试计划是测试经理负责的。测试人员主要是测试设计和测试执行。
考核标准:
1.BUG数量
目前使用BUG管理系统进行管理,因此可以通过该系统考核测试人员发现的缺陷数。
2.BUG跟踪情况
即该测试人员发现的BUG,是否及时跟踪该BUG的处理情况。
3.测试用例数
即测试人员设计的测试用例,相关标准是功能点,即一个功能点设计的测试用例数。
4.测试进度
即计划时间和实际使用时间的差距。
5.严重缺陷率
在BUG管理系统中,对BUG按照紧急程度进行了分类,这里的严重缺陷率就是指测试人员发现BUG的紧急程度。