说到测试用例的设计,我想每个有过测试经历的测试工程师都会认为很简单,不是:按需求或概要设计,得到软件功能划分图,然后据此按每个功能,采用等价类划分、临界值、因果图等方法来设计用例行了。
  但事实上撇开测试数据的设计不谈,仅测试项来说,我们发现,对同一个项目,有经验的测试人员,在写用例或测试时总会有更多的测试考虑点,从而发现更多的问题;而有些测试人员测试用例的撰写却只有那么三板斧,表面看好象已经把页面所有信息的测试都考虑到了,实际上却还是遗漏了大量测试覆盖点,导致其测试出来的程序总是比较脆弱。
  究其原因,我觉得还是测试用例的撰写水平不到位,更确切地说是测试用例的覆盖度太低。说实话我认为系统测试用例真正做到100%覆盖是很难的。难道说按设计中的功能划分,每个功能都写到了这个用例覆盖完整了?错,这还远远不够。因为我们知道还有大量的内部处理、转换、业务逻辑、相互影响的关系等都是需求或设计中所不会点明的。而这些一方面需要靠测试人员对项目本身的了解,另一方面要靠测试人员的经验,来一一找到这些隐藏点并予以测试,才能真正地保证我们的测试覆盖度。
  所以本文抛开具体的测试数据设计方法,主要从测试覆盖度的角度来介绍用例设计时,如何才能考虑地更周全,如何才能将隐藏的测试项一一找出,从而使我们的测试更全面更完整。
  想法虽然美好,可是毕竟每个测试的项目都是各不相同,针对不同项目我们的经验也会告诉给我们不同的想法,这些想法通常很感性,很难用严密的逻辑理论来把它升华。因此本文的内容仍是很简陋且不成熟,只是希望能以本文为砖,引起大家的思考,一起来补充完善,以使我们的测试用例设计水平不断提高。
  正文
  一、测试用例的切面设计
  1、功能点切面
  2、特定切面
  3、隐含切面
  (1)、后台功能
  (2)、完整业务流程的测试
  (3)、某种特定情况下的系统运行
  (4)、其它相关系统
  (5)、除功能测试外的其它测试类型
  二、详细用例的设计
  1、功能切面表面用例设计
  (1)、具体功能测试
  (2)、组合操作的测试
  (3)、GUI界面的测试
  (4)、数据初始化情况测试
  (5)、业务需求实现是否正确
  2、功能切面隐含测试项用例设计:
  (1)、数据完整性的测试
  (2)、后台的特殊处理
  (3)、功能业务之间的关联与转换
  (4)、从设计实现发掘测试点
  (5)、并发操作时的测试
  3、特定切面用例设计
  4、隐含切面用例设计
  (1)、无界面的后台功能
  (2)、与业务流相关的测试
  (3)、其它测试类型