我和我朋友的一段对话(0分)

G

Gooder

Unregistered / Unconfirmed
GUEST, unregistred user!
Gooder 说:
你做过测试吗?
zhaochenhui 说:
做过代码级的测试。
Gooder 说:
我有一个测试的问题想问一问你
zhaochenhui 说:
有时产品可能是个ocx或是dll的时候,就需要程序员测了
zhaochenhui 说:
什么问题?
Gooder 说:
例如有三组数,第一组A、B、C,第二组D、E、F,第三组G、H、I,输入三个数,当输入的数中包含1组中任何一成员,则显示1,当包含2组中的任何一成员时,显示2,当包含3组中的全部成员时,显示3,这样的程序应该如何测试
zhaochenhui 说:
我不是很明白意思。是不是说包含第一组中任何一成员......你的1组,2组指的是组数还是第几组?
Gooder 说:
例如输入ADE,则显示12,输入AG则显示1,输入BGHI,则显示13,输入C,则显示1
zhaochenhui 说:
逻辑我懂了,你描述得很清楚。
zhaochenhui 说:
既然逻辑这么清楚,去测试不会难的吧?
Gooder 说:
但是要测试这个程序,要怎样设计测试数据呢?
zhaochenhui 说:
每组的数据量大不大?
Gooder 说:
如果说就像上述的这么多数据呢
zhaochenhui 说:
那穷举一下也就2的9次方而已
zhaochenhui 说:
总共也就512种搭配
Gooder 说:
不止吧,2的9次方只是允许输入两个数的情况,但我允许输入的不只两个数
zhaochenhui 说:
不是,2的意思是每个字母都有两种可能,出现或不出现。现在有9个字母,只有2的9次方种可能
Gooder 说:
让我想想
Gooder 说:
你的意思是说A、B、C、D、E、F、G、H、I和B、C、D、E、F、G、H、I这样子做为一个A出现和不出现的两种可能性去测试,则总共有512种吗
zhaochenhui 说:
不是。不管怎么样,如果不考虑重复和顺序的话,用A到I这9个字母只有512种组成方式。简单点,ABC三个吧,只有A,B,C,AB,AC,BC,ABC和空这8种可能,也就2的三次方
Gooder 说:
喔,我明白了,但是难道真的是用人手逐个输入这些数据,然后对比结果吗?
zhaochenhui 说:
如果是个应用程序的话,要么穷尽测试,要么临界值测试。如果是dll的话,就可以用代码将所有结果列出来
Gooder 说:
就拿上面例子来说,如何做临界测试,如果用代码将结果列出来,又如何验证结果是正确的呢?
zhaochenhui 说:
像上面这个例子,不同组之间是不会影响的,测起来比较简单。先每个组单独测试,然后根据不同的结果找出测试数据
Gooder 说:
例如对第一组进行A,B,C,AB,AC,BC,ABC,空这8个输入进行测试,得到结果,再对第二组进行同样的测试吗
Gooder 说:
那组与组之间的影响不需要进行测试一吗?
zhaochenhui 说:
影响是要测的。先每组分别测试,再根据不同的结果找出测试数据去测试。
Gooder 说:
那如果说我的数据量比较大,每组有10个成员或以上,那怎么办
zhaochenhui 说:
比较头痛了。这方面我也不大懂。不好意思了,有没有这方面的书籍呀?
Gooder 说:
唉,找不到,这方面的书籍似乎很欠缺,同时就算每组只有3个,但是对于一个小函数就需要设计出这么多测试数据,那对于整个软件来说,要设计出来的测试数据起不太多了,甚至可以说是多得无法接受
zhaochenhui 说:
是呀,就像法官要比律师聪明一样,测试员也要比程序员聪明。但现实刚好是倒过来的。
Gooder 说:
我现在最头痛的是,不知道如何去设计测试数据,如果说使用穷举的话,数据量太大,但是如果不是用穷举,那对于上述的例子,又如何使用临界测试方法呢,而且测试的数据都得自己用人工输入吗,然后得出的结果再一个一个的对比验证吗?
zhaochenhui 说:
穷举的话是不大现实的。有些时候是不可能实现穷举的。
Gooder 说:
是的,目前来说对于临界测试应该是最有效的,但是尽管只是对临界测试,但对于有些程序来说,要测试的数据量也是相当大的,如何制作出这些数据,又如何验证这些数据输入到程序后的结果是正确的呢?我真是想知道
 
我晕了。
 
大家是指排版不好吗?
 
排版还是不错的,两个人的名字一个顶格,一个缩进,也算是用了心的。
他们说的应该是内容吧,呵呵,这个东西的确不太容易绞清楚:)
用随机数试一试?如果数据量大的话,随机生成几种组合,也应该能说明
问题,假如随机数的性质好的话。
我猜的:)
 
顶部