优秀的开发工程师不仅是有超强的代码编写能力,同时他还有非凡的概要设计和详细设计能力,那么对于优秀的测试工程师来说,不应该仅仅是极强的发现问题的能力,还应该具备优秀的用例设计能力。用例设计实际上包含两种能力,一种是结构设计能力,一种是用例场景设计能力,今天我想和大家讨论的是前一种能力。
用例设计中的结构设计就类似于软件开发中的概要设计,它实指用例设计中的测试项分拆、合并、派生。目前我们测试组有些员工在思考用例设计时包含了这个环节,但并没有将这个环节熟练掌握,且一直困扰着部分人的测试工作开展。可能有人会说,我测试的产品质量虽然不是最差,但我的用例设计包含了80%的用例设计场景,应该不错了,干嘛还要强调用例设计中的结构设计呢?
用例设计的结构设计重要性在于如下几方面:
1、合理地拆分测试项,有助于保证测试任务执行的分配与并行
2、合理地拆分测试项,有助于和开发节奏对应起来
3、合理地拆分测试项,有助于保证测试的执行与测试用例的当初设计不脱节
4、合理的拆分测试项,有助于保证测试覆盖度
5、合理的拆分测试项,有助于用例场景的设计不出现混乱
6、合理的拆分测试项,有助于一个人全局能力的培养
……
用例设计的结构设计这一块究竟有什么方法可循吗?说句实话,至少现在我没有见到任何书籍介绍这一快,我在面试过程中也在了解其他公司关于这一块的做法,很多员工听起来很陌生,可能是这个能力仅对组长以上的员工有要求吧,有的听起来虽然不陌生,但是更多和我沟通的是关于用例设计的生成流程,
对于方法这一块是不清楚的。总而言之,用例设计的结构设计这一块对于很多公司的经验总结来说还是空白,那就更谈不上培训了。关注这一块,我是在2001年开始的,当时接受的一个是视频会议系统的测试,组里共5个人,为了将结构设计做好,的确费了一番周折。通过这几年来,在不同项目中与不同员工磨合,对用例设计的结构设计部分摸索了一套如下一系列方法。我现在还不能说最好的,但应该是最实用的,绝对不是为了推销需要。
1、基于概要设计/详细设计的模块(组件)结构设计
2、基于产品需求文档的模块结构设计
3、基于数据流的结构设计
4、基于事件驱动的结构设计
5、基于消息驱动的结构设计
6、基于处理逻辑的结构设计
7、基于条件因素的结构设计
8、基于MVC模型的结构设计
9、基于测试方法的结构设计
测试用例设计还要注意着重点
一、功能
关注页面单个功能点验证,充分考虑开发改动的每个点。这个是保证开发每个已知的修改点都能改对。
二、关联
重点考虑修改点对其他模块的影响,包括代码的影响和操作数据引起的影响。
比如新增加的功能增加了数据库表的字段,必须关联的验证每个使用该表的该字段的模块是否正常工作。难点在于需要分析出已知和未知的影响模块,考虑的越多,往往遗漏的问题就越少。
三、流程
很多系统是有流程的,比如工作流系统。当修改了一个点的时候,我们必须考虑整个流程是否能够正常运转起来。
四、升级
我们大部分系统都是对已有的系统进行升级。对于升级前的数据,我们必须保证能够正常工作。升级之前,需要模拟好各种情况。也需要对升级的数据库脚本进行充分的检查。
五、安全
比如菜单功能权限等。
六、性能