做为一个测试人员,设计测试用例可以说看家本领,不管你到那一个层次,都需要时时揣摩。我也一直在考虑如何设计出高质量的测试用例,经过多年的学习和实践,从中得出一些心得,在此班门弄斧一番,另外也想抛一块砖换块玉回去。

  我把测试用例分成几个大类,一类是场景用例,一类是个别用例,一类是体验用例。

  1. 场景用例,我把用户使用或操作习惯搭配称之为场景,不同的用户可能有不同的操作习惯,所以要完全模拟出用户的操作是比较难的,但是入口确是我们可以控制的,因此我们要整理出达到测试目标的入口,然后根据入口搭配出各种路径,针对这些路径进行覆盖,这样可以设计出的场景用例。要写好场景用例,需要仔细了解测试目标的业务逻辑,然后根据业务逻辑来筛选出有效场景和无效场景,此类用例贴近用户使用习惯,查不出缺陷则已,一旦查出都是影响比较大的。举例来说:比如一个查询页面,有三个查询条件,其中两个个是选择型输入,一个是输入框,然后加一个按钮。这样的页面,普通用户比较实在,只找他想要的,所以选择条件和输入都比较规矩。这类场景比较好写。但是有些刁钻的用户可能会随意选择,然后输入的时候会空着,或者输入一些奇怪的字符进去。还有一些比较专业的用户,可能会尝试输入一些sql注入之类的东西。如果数据量太大,搜索响应比较慢,性急的用户可能反复点击搜索按钮,或者反复刷新页面。诸如此类的场景我们都会遇到,所以这些场景要保证有保护或者正常,不能出现异常或崩溃。

  2. 个别用例,主要是指针对输入或者各类参数进行的针对性的用例,比如上例中的输入框,选择框的针对性用例。这类用例比较好设计,因为大家见得比较多了,这类用例可以抽出其共同部分写成通用用例,这样不但可以让用例看起来清楚,还能突出重点。设计方法不外乎极限值,等价类划分,因果图之类的。

  3. 体验用例,用户体验可以说是很重要的部分,做好了产品的粘性好,竞争力也强力了,做的不好,用户也浅尝辄止,没有粘性的产品很难说是成功的产品。用户体验分为视觉体验,操作习惯体验,心理体验几个部分,视觉主要是颜色搭配,界面模式等;操作习惯主要是符合人体工学,符合大众口味,简洁,易于使用,傻瓜型;心理体验方面主要是培养成感,归属感等。这部分用例扩展出来比较多,而且也是仁者见仁智者见智的事情,我这里不细说了,大家有兴趣可以探讨一下。

  后一点是测试用例和测试数据分离,用例中不出现具体的测试数据,保证用例的灵活性和可操作性。