准确性测试

准确性测试,准确性指的是软件产品提供具有所需精度的正确或相符的结果或效果的能力,主要用于验证软件产品或者应用程序是否满足定义的或隐含的需求,可以从以下方面(但不限于)考虑。
(1)预期的准确性:在运行期间执行的任务的实际结果与预期结果的差别。
(2)计算的准确性:如由于计算本身的错误和数据精度方面的问题等导致的错误计算结果。
准确性测试除了验证测试对象功能表现行为一致性问题之外,还常常需要考虑由于数据计算或者数据精度方面引起的问题。

下面是针对汽车价格计算的需求描述。
(1)汽车价格是基于汽车的基准价。
(2)附加和特殊装备的价格加到汽车的基准价上。
(3)如果在指定的特殊装备中已经包含已经选择的附加装备,则附加设备不需要另外付费。
(4)除了特殊装备中的标准装备之外,如果另外选择了3种或者3种以上的附加装备,则附加装备可以有10%的批量折扣;如果另外选择了5种或者5种以上的附加装备,则可以有15%的批量折扣。
(5)由经销商明确给客户的折扣只与汽车基准价和选择的附加装备有关,特殊装备没有折扣。
(6)不能合并经销商给客户的折扣和附加装备的折扣,如果经销商给客户汽车基准价的折扣大于附加装备的批量折扣,则在计算附加装备价格时以经销商给客户的汽车基准价的折扣为准;否则以批量价格为准。

测试人员需要根据上面描述的汽车价格计算的需求描述,设计相应的测试用例验证汽车价格计算的准确性。汽车价格计算的准确性测试将关注重点放在验证计算结果是否准确,或者其数据精度是否满足需求规格要求等方面,因此可以采用的测试技术包括等价类划分和边界值分析技术等。如果测试人员认为运用这两种技术得到的测试数据过多,从而导致设计的测试用例数目过多,那么可以结合结对测试技术和分类树方法等减少测试用例的数目。

案例分析:网上购物系统中购物结算的准确性测试

本案例为网上购物系统中购物结算的准确性测试。

(1)网上购物系统介绍
某网上购物系统销售的商品包括家居百货、化妆品、数码、家电、图书、音像、服装及母婴用品等几十个大类,上百万种商品,在库图书有几十万种。每天有上千人在该网站购买商品,每月销售商品超过100万件。该网上购物系统参照国际先进经验独创了商品分类、智能查询、直观的网站导航和简洁的购物流程等,为消费者提供了良好的购物环境。单个用户在该网站购物的基本流程如下图所示。
准确性测试

其中“购物结算”是整个定购流程中的重要一步,在这个步骤中用户获得当前购物清单,可以修改所购商品的数量或删除购物车中的商品。购物清单的界面结构如下图所示。
准确性测试

购物清单中包括商品名、单件积分、市场单价、网站单价、优惠、数量和删除等信息,其中优惠是指在网站单价的基础上的再次优惠。此时可以更改商品的数量,更改后的相关信息会及时得到更新。

为了吸引更多的用户在该网站购物,系统设计了积分机制。所有用户在该网站购物可获得一定的积分,积分可以用来参与兑换活动。网站会不定期推出各类积分兑换活动,但是针对不同的商品积分规则不同,如下表所示。
准确性测试

对于在网站价基础上享受了进一步优惠的商品,不再赠送积分。在购物清单的最后一列给出了用户此次购物的最终统计信息,包括节省的费用、可获得的商品积分和此次所购商品的金额总计。

(2)网上购物结算功能的准确性测试设计
通过分析主要信息能够发现计算的准确性是购物结算步骤的一个重要的质量特性,计算的准确性需要考虑3个参数,即节省的费用、可获得的商品积分和此次所购商品的金额总计。而这些参数的最终计算结果依赖于用户选择商品的基本信息,包括商品的市场单价、网站单价、单件积分、优惠和所购商品的数量。由于输入比较多,所以要分类各个输入参数。首先要分类的是商品,因为不同商品采用的积分规则不同。根据现有的积分规则可以将商品分成5类,分别对应5种不同的积分规则;其次需要分类优惠,该项目直接影响最终的商品价格和积分的规则。因为一旦用户享受了优惠,那么相应的商品不能再参加积分。主要优惠一是否享受优惠,享受优惠的情况还可以针对与网站单价的关系进一步细分;二是商品的数量,根据网站的规定商品的数量是小于10000的正整数;三是网站单价和市场单价,这两个参数的取值范围都是不超过2^32的正数,在这里可以考虑部分的边界情况,如网站单价等于或高于市场单价的情况。最终针对输入参数划分的购物结算的输入等价类如下表所示。
准确性测试

其中针对网站单价和市场单价的无效等价类需要修改商品数据库才能够获得需要的测试数据,因为正常情况商品数据库中的单价信息应该为正整数。并且网站单价、市场单价和优惠幅度之间存在隐含关系,即优惠金额≤网站单价≤市场单价。

针对各个输入,最终的3个输出参数(节省的费用、可获得的商品积分和此次所购商品的金额总计)的计算公式如下:
准确性测试
(1)S(C)表示总共可获得商品积分。
(2)S(T)表示此次所购商品的金额总计。
(3)S(S)表示此次购物节省的费用。
(4)C[i]表示第i个商品的单件积分。
(5)M[i]表示第i个商品的市场单价。
(6)W[i]表示第i个商品的网站单价。
(7)D[i]表示第i个商品的优惠金额。
(8)N[i]表示第i个商品的数量。

根据上表中的等价类设计相关测试用例并参照上述的计算公式判断系统的计算准确性。在实际的准确性测试设计中除了考虑上述情况之外,还可以为输出参数划分等价类,这样才能保证测试更全面。除了计算准确性以外,在该网上购物系统的购物计算的准确性测试中还应该考虑计算的精度问题,该系统所有的价格都要求精确到小数点后面两位。精度测试可以和计算的准确性测试同时进行,在选取测试数据和分析预期结果时考虑计算精度。

案例分析:计算器中的准确性测试

本案例是计算器中的准确性测试。

(1)计算器功能介绍
“计算器”是Windows操作系统自带的一个应用程序,用其可完成基本的算术运算,如加减等。它还具有科学计算器的功能,如对数运算和阶乘运算等。类似“计算器”这样的应用程序准确性是其相当重要的质量特性之一,进行准确性测试也是必不可少的。该“计算器”的主界面如下图所示。
准确性测试

“扩展精度”是“计算器”的一种特性,指所有运算都至少精确到32位。“计算器”还可以将有理数以分数形式存储以保持精度,如将1/3存储为1/3,而不是0.333。但是在反复运算无理数的过程中,误差会累积起来。例如,“计算器”会将π截成32位长,因此基于π的反复运算将随着运算次数的增多而降低精确度。

(2)计算器准确性测试设计
运算精确到32位可以通过两个例子分别验证数值比较小和比较大的情况。
数值比较小的情况取10/5.2,通过“计算器”计算的结果为1.9230769230769230769230769230769。可以发现小数点前面有1位,小数点后面有31位。共有32位,如图所示。
准确性测试

数值比较大的情况如3322,计算结果为2.5545045308449067436284465049515e+33。后面的e+33表示10的33次方;前面数值中小数点前面有1位,后面有31位,合计共32位,如图5-6所示。
准确性测试

上面介绍的计算器精度的测试只是准确性测试的一部分;除了精度以外,正确性是“计算器”的另一个主要关注点,也是准确性测试的重点关注对象。准确性测试应该贯穿于整个“计算器”的测试过程中,无论是简单计算、科学计算,还是统计计算都要关注计算的准确性问题。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!