51Testing软件测试论坛
标题:
设计测试用例的时候,是否需要考虑中间数据加工的正确性?
[打印本页]
作者:
riyuelang
时间:
2007-10-28 17:33
标题:
设计测试用例的时候,是否需要考虑中间数据加工的正确性?
设计测试用例的时候,为如下问题所困惑:是否需要考虑程序处理过程中对数据加工的正确性?
举个例子:
程序A接受用户的输入信息(如手机号码),经过一些处理之后保存到数据库表T,之后程序B从表T获取该数据进行处理并显示。
假设:
程序A是已经实现并使用了较长时间的程序,满足了如下需求:只接受11位的手机号码(数字);自动过滤左右的空格;保存在数据库表T;表T的手机号码字段类型为varchar2(24);
程序B为新开发的程序,需要满足如下需求:显示结果,不带+86之类的前缀,11位,不够11位时右补空格填充。
那么:
测试程序B的时候,是否需要考虑程序B从表T获得不规则数据的情况?如:获得+86的手机号码,号码少一位(10位),号码多一位(12位),号码含非数字字符,其他等等。
同事认为,应该单独构造程序B的测试数据,即通过手动方式修改表T的数据,满足上述的各种不规则情形来测试程序B的处理情况。
但是我感到疑惑,程序A是经过了充分测试的,保存到表T的数据(手机号码)很难出现不规测数据的情况,采用这种测试方式,是否加大程序B的负担呢?是否需要怀疑程序A在保存数据到表T时处理失误呢?
上述不解之处,请大家指点迷津,十分感谢!
作者:
puchonghui
时间:
2007-10-28 17:57
根据lz的叙述我的理解是程序A最终写入表t的数据只能是11位的手机号码
如果表中有非法数据的话只能是人为修改数据库造成的
这样的话似乎设计有些问题
首先为啥是24位的varchar
其次为什么不在手机号码字段加上条件约束
作者:
puchonghui
时间:
2007-10-28 17:58
汗。。。按的太快了
建议把条件约束加上
这样可以防止脏数据的产生
作者:
chech28
时间:
2007-10-28 19:31
这个事情应该是这样:
理论上说如果A保存的数据是合法而且经过了稳定的测试,那么B这里就不需要不规则输入。
但是,嗯嗯,但是来了:
作为B程序是不是需要这样的测试要看B的设计规范,如果设计规范中B有对这样的非法输入作出应对,那肯定要测的,如果没有,那么应该请开发加上去,如果出现这样的非法输入,程序是处理还是忽略还是什么。作为一份DDS,应该要明确这些的。
作为实际情况种来说,可能B不只处理A的输出,或者将来可能会用到别的地方,那么不管怎么说,它如何应对各种输入应该有明确的。如果开发明确B不需要处理非法数据,并且落实到文档,那么自然不用测了。
作者:
stjd139
时间:
2007-10-28 21:43
讨论的真不错
顶
学习中......
作者:
Tester_wu
时间:
2007-10-29 09:03
虽然程序A是经过了充分测试,就能保证一定不出现不规则数据吗?测试是不可穷举的。所以我认为还是应该构造一些不规则数据来测试。这相当于一个接口,必须将其覆盖到。
作者:
riyuelang
时间:
2007-10-29 09:22
多谢两位的建议
关于表T的字段类型问题,我也不清楚为什么是varchar2(24),因为这个系统是在我进入公司之前就开发好的,我们现在的任务就是开发程序B
程序A在接受号码输入的时候,作了严格限制,就是11位的手机号码(不存在的手机号码也是无效的,如:12345678901),所以可以认为程序A保存到数据库的手机号码一定是11位数字。至于24位的varchar,难道是为了以后的扩充? 不知道哈
关于程序B,其实用户并不知道我们怎么给他们提供数据,他们执行程序A之后,需要我们提供完整的操作记录,并生成一个记录文件提供给他们,手机号码只是记录中的一个字段。程序B正是用于那个记录文件。
可以说说需求(针对记录文件的):
1、文件均采用定长格式,每行一条记录
2、对于所有字段,长度不足时,均右补空格
3、记录的字段对手机号码的要求:char(11), 不带+86之类的前缀,直接是11位手机号码。
因为每条记录的字段之间没有分隔符,是通过字段长度来标识每个字段的
我认为,客户最终需要的是操作记录文件,程序B并不是他们所接触到的,所以对他们的记录文件格式作了详细规定,我们就是要保证文件格式的正确性
既然程序A保证了手机号码的正确性,是否还有必要让程序B再作一次约束呢?
作者:
hpdynasty
时间:
2007-10-29 10:29
看了LZ的帖子,我个人理解为:
如果只测试程序B,那么当然要对其输入和输出作充分的测试来验证。
LZ真正想要测试的是A+B模块。程序A、程序B是其2个子模块, A模块已经经过充分测试,现在加入B模块进行集成测试。那么现在的关注点就是A+B的输入和输出。而B的输入(A的输出)已做过充分测试,这里就不予关注了。
建议参考一下《集成测试策略》。
不知所云,还望指正。
作者:
puchonghui
时间:
2007-10-29 11:16
唔。。我前面说的条件约束指的是constraint
字段长度是另外一回事情
如果有了条件约束
并且程序b接收的输入数据只有这一个地方的话
那至少非正常输入数据的测试用例不属于重要的测试项目了
不过如果考虑到代码的复用性并且项目进度允许的话
测一下是没坏处的。。。
作者:
riyuelang
时间:
2007-10-29 15:50
明白哈 就是对表T的字段格式作约束吧
这个系统是之前已经开发好的,而且是由第三方提供,对数据库的插入操作和数据库的设计都不是我们能够改动的。
通过前面的程序A是无法在表T中插入这些不规则数据,只能通过手动的方法直接修改,故意破坏数据的正确性 呵呵
上面已经下达命令了,一定要这样测试,就这样啦,虽然还有点迷惑
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2