好久不写文,最近面试多了,感觉孩子们把学的知识都学死了,连软件测试TC设计的基础理论很多同学都不能够完全好好掌握,按照我多年质控方面的理解,今天以现代语文的方式为大家解析一下TC设计。
所谓语文,其实平时我们说的话都是语文,对于测试工程师,产品经理PRD里写的每一句话都是语文。所以我个人觉得学好语文和做好测试关系还挺大的。
举例:现代汉语词汇这样分类的,分为实词和虚词2类。
实词:名词、动词、形容词、数词、量词、代词。
虚词:副词、介词、拟声词、连词、助词、叹词。
而软件测试TC设计和实词关系很大。再举例来说:(这是我面试经常问的一道题)
我周六花了6000块买了一台白色的iphone6.
我 -- 代词
周六 -- 名词
花了 -- 动词
6000块 -- 数量词
买了 -- 动词
一台 -- 数量词
白色的 -- 形容词
iphone6 -- 名词
活学软件测试理论:
1.所有数词都试用于等价类测试,边界值测试以及压力测试
例如:6000是一个子集、6000以下是一个子集、6000以上是一个子集,6000块 一台,那么0元是否可买,同一时间段多人采购N台如何进行压力测试?
2.所有代词、名词都适合做功能测试,等价类测试。
例如:你、我、他。周六、非周六。iphone6、iphone7、非iphone6.
3.所有动词基本都适合做性能测试。
例如:花了、买了。是一个人花钱使用是这个花这个方法,还是N个人同时在花钱,是买一台,还是同时买N台。
4.所有量词都适合错误推断法。
例如:个、台。而不是条,打,粒。我不能用6000块买一打,或者一条iphone6出来。
5.所有形容词都适合做等价类划分法。
例如:白色的,非白色的。
6.基本每一句话都适合做场景分析法。
这个购买操作是在什么场景下进行的?什么场景不能进行?这个场景的特殊条件,前提条件是什么?用户可能会做的,还会做什么?
那什么样的语句适合因果图法、判定表法、正交试验法,功能图法呢?
因果图法:(即汉语中简单的条件性语句都适应因果图法)
例如:当/若 怎么样怎么样的时候,结果/应该 会怎么怎么样的语句,特别适合因果图法。
例如:当乘客在3公里范围内取消订单时,罚款5元,当乘客在5公里范围外取消订单,罚款10元。
判定表法:(即汉语中复杂条件组合的语句都适应判定表法)
你可以这样简单理解判定表法,就是当有多个原因会导致结果会改变的时候应该使用判定表法。
例如:当乘客在3公里范围内,司机已达到目的地,并且订单金额是大于50元,当用户点击取消订单是,罚款5元。其他情况乘客不做惩罚。
这个时候你应该把这几个条件列出来,得到你的结论
条件:1.乘客是否在3公里范围内 2.司机是否已经到达目的地 3.订单金额是否大于50元 4.用户是否点击了取消 这4个条件决定了程序的结果是否罚款5元。
正交试验法:(即汉语中,区间分布,并且均匀分布的语句都适应正交试验法。)
正交试验法,其实在应用软件的设计中,碰到使用这种场景的Case还是非常少的。因为现在的应用软件的逻辑没有那么复杂。
我举个例子:打车订单在0-20元的用户,并且周登录次数在1-5次的,每周奖励1元,打车订单在20元-50元的用户,并且周登录次数在5-10次的,每周奖励2元。
如果0-20元,周登录次数在1-5次的,与20-50元,周登录次数在5-10次的用户比例是一致的,就可以使用正交实验法,在各范围内取有代表的点就可以覆盖该范围内的所有逻辑。
若0-20与20-50的用户比例不一致,实际就要按照用户重点落在那个区域内,对该区域进行重点测试。
功能图法:(这个最简单,但是大部分同学不知道自己每天在用)
即平时你们看到的流程图,按照该流程图设计的方式,即功能图法。
这样来理解TC设计的8种测试方法,是不是就非常非常简单,其实就是初中语文吗?你总会说话,总会知道这个词汇是什么词汇的吧,既然知道,那设计好TC也不是什么难事。
最后将TC设计的8种方法罗列如下:等价类划分法、边界值分析法、错误推断法、因果图法、判定表法、正交试验法、功能图法、场景分析法。