表3为销售人员得分表(tb_os_point),这个表已经预先存入参加评分的销售ID,

  下面两个公式(5)是从原始记录到实际得分的计算公式,

   其中, 为在 到 时间段内销售人员拜访任务总量, 为销售人员的成交订单数量, 为转化率, 为销售人员中的高转化率, 为销售人员中的低转化率, 为终销售人员的得分。被测计算功能是将tb_os_log通过上述数学计算得到结果,并存入tb_os_point表的total_point字段。

  测试时,首先设计并创建测试表(tb_os_test),表4为测试表的各字段说明,is_pass字段为0本条数据通过测试,is_pass字段为1本条数据测试不通过。

   然后,使用存储过程编写测试用例,下面为存储过程代码

  CREATE PROCEDURE testStat(IN start_date DATE, IN end_date DATE, IN error_allow DOUBLE)

  //三个输入分别为起始日期、截止日期和允许计算误差

  BEGIN

  DECLARE uc_id INT DEFAULT 0;//销售人员ID

  DECLARE done_num INT DEFAULT 0;//成交客户数

  DECLARE do_num INT DEFAULT 0;//拜访客户数

  DECLARE ratio DOUBLE DEFAULT 0;//转化率

  DECLARE r_max DOUBLE DEFAULT 0;//销售人员中的大转化率

  DECLARE r_min DOUBLE DEFAULT 100;//销售人员中的大转化率

  DECLARE point_test DOUBLE DEFAULT 0;//测试代码计算逻辑

  DECLARE point_tested DOUBLE DEFAULT 0;//被测功能逻辑的计算结果

  DECLARE point_error DOUBLE DEFAULT 0.1;//误差

  DECLARE uc_info CURSOR for SELECT ucid FROM tb_os_point;

  DECLARE CONTINUE HANDLER FOR SQLSTATE ’02000′ SET uc_info=NULL;

  OPEN uc_info;

  FETCH uc_info INTO uc_id;

  WHILE uc_id IS NOT NULL DO//计算转化率,并保留中间过程

  SELECT count(*) INTO do_num //计算总拜访数

  FROM tb_os_log

  WHERE visit_date>start_date AND vistit_date SELECT count(*) INTO done_num //计算成交订单数

  FROM tb_os_log ;

  WHERE visit_date>start_date AND vistit_date SET ratio = done_num / do_num;