统计模块的功能测试经验点滴

上一篇 / 下一篇  2009-02-23 17:30:58 / 个人分类:软件功能测试

   统计是应用系统中十分常见的功能,统计列表往往由若干个数据列和计算列组成。数据列是指那些显示基础数据的列,通常引用表中现成的列数据。计算列则是指须通过一定公式运算得到的列。倘若表中的计算列是由表中的数据列计算而得,那验证统计功能的时候只需套用公式即可。但如果计算列是对数据表里的若干列数据(这些列不存在统计列表中)使用简单或复杂的select语句查询出,对于这种不直观的统计功能,如何验证统计是否正确?黑盒测试人员通常不关心程序代码的实现,不可能通过检查sql代码是否正确来实现功能验证,并且阅读他人编写的sql代码也很耗时,这样的方式是下下之策,往往耗时长且不容易发现BUG。是否有高效的测试方法吗?我在项目实践中总结出一些经验——借助查询功能来进行比对验证。由于效果直观,所以很容易发现BUG。

   本人手头上曾经历过这样一个项目:做电力设备故障相关的统计。统计表里有几个计算列:本月累计数、本月消缺数、本月消缺及时数。它们涉及的select语句中的where子句均比较复杂,其中,

   本月累计数=本月发现的故障数+本月以前发现的还未解决的故障数+本月以前发现的但在本月解决的故障数 ;
本月消障数=本月累计的紧急故障中已解决的故障数
本月消障及时数=处理期限在本月且已经消灭的紧急故障数

   由公式可见,要求出这3个计算列必须要编写复杂的select语句,设置层层过滤条件。测试人员要审查sql语句是否正确,不仅要看懂sql语句还要去弄清很多字段的含义,这已经超出黑盒测试的范围,而且非常不直观以及耗时。而该系统除了提供统计功能外还有查询功能,可通过对比查询结果和统计结果来验证统计的正确性。比如验证本月累计数,先在查询模块设置查询条件查出本月发现的故障数,再设置查询条件查出本月1号以前发现但还未解决的故障数,最后设置查询条件查出本月1号以前发现且解决日期落在本月的故障数,最后将各种查询结果进行加和运算,与统计值比对。其他统计值也同理验证。

   这种方式非常直观,事实证明,效果是很明显,有效地查出统计算法上的BUG。


TAG:

yantong的个人空间 引用 删除 yantong   /   2009-06-03 12:21:51
原帖由mengluoyong于2009-06-02 11:22:18发表
问题是测试数据从哪来?


测试数据就是来自用户真实的业务数据。因为查询模块通常不是最先开发的重要模块,先开发的业务模块会发布给用户试用。查询模块后开发,自然就有测试数据了。
引用 删除 mengluoyong   /   2009-06-02 11:22:18
问题是测试数据从哪来?
 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 29445
  • 日志数: 32
  • 图片数: 1
  • 书签数: 8
  • 建立时间: 2008-07-02
  • 更新时间: 2010-02-09

RSS订阅

Open Toolbar