一种后台软件的测试方法

上一篇 / 下一篇  2021-03-03 13:21:29 / 个人分类:测试新方法


1.            问题描述

1.1.    后台软件测试难点

本文中提到的后台软件指iSolarTool项目后台算法软件,测试过程中遇到多个难点:

1、客户端未开发完,要测试服务端软件,如何测试?任务如何触发?

2、服务端软件测试的输入数据如何制造?

3、服务端算法计算复杂,尤其设备自动布局输入输出大量都是坐标信息,如何验证计算结果的正确性?

4、测试过程中遇到问题如何分析定位?

2.            解决分析过程

带着上面这些问题,我搬到了研发中心四楼,跟项目组近距离“接触”,逐一解决了这些难题。

2.1.       客户端未开发完,要测试服务端软件,任务如何触发

通过跟研发人员进行沟通,发现可以使用接口触发任务,于是借助于postman,按照接口定义配置后,轻松解决了任务触发的问题,如下图所示:

1任务触发操作步骤

 

2.2.    服务端软件测试的输入数据如何制造?

根据后台任务设计方案,测试输入输出数据均存储在Redis数据库,借助于Redis可视化工具,可以很清晰的查看到任务数据详情,对于单方阵小数据量操作方便,但是对于多方阵大数据,直接操作读写,查找数据困难,改造数据更困难,复制出来也是个好办法,但当数据量较大时,该可视化工具存在复制不全的问题。咨询了研发人员没有现成的解决方案,于是我借助python强大的第三方库,自己动手写了个Redis数据读写的小工具,可以按自己定义的格式,读写输入和输出测试数据,这个问题也就迎刃而解。

接下来就轻松了,借助研发自测的输入数据,查看任务参数设计文档,使用功能测试方法(等价类、边界值、正交表等),对每个输入参数进行用例设计,然后写入redis数据库、触发任务、读取redis数据库输出结果,再验证结果的正确性即可。

2小工具界面截图

3输入输出数据使用notepad等工具查看即可

2.3.    服务端算法计算复杂,大量的坐标信息,计算结果的正确性,如何验证?

上一步解决了制作输入数据和读取结果的问题,那么接下来就要开始研究,如何分析计算结果的准确性。这里使用了研发人员提供的绘图工具,将输出结果中的设备坐标绘制成设备布局图(黑色表示箱变、大红色表示汇流箱、其他彩色表示组串,颜色相同表示同一个汇流区),同时研发人员还协助提供了算法计算的中间过程数据。

4设备布局图

结合设备布局图和算法计算过程数据,参照以下步骤进行结果验证:

步骤1、先验证简单规则方阵的汇流区划分,检查汇流区划分结果是否存在独立组串,是否满接汇流箱;

步骤2、根据输入参数设备坐标、线缆成本、线缆阻抗,计算出线缆的压降和成本,跟输出结果进行对比,验证软件计算的线缆选型、线缆压降、线缆成本等数据是否正确;

步骤3、抽查几种箱变位置下,输出成本,检查输出最优方案是否成本最低;

5设备坐标及成本等过程数据

2.4.    测试过程中遇到问题如何分析定位?

在测试不规则方阵设备自动布局过程中,发现有个别汇流区划分错误,存在跨汇流区的现象,但是由于这个坐标绘图工具没有标识出汇流区,很难定位到是第几个汇流区出错,研发人员也就难判断出哪一步出错了。为了找出出错的汇流区,我修改了绘图工具的代码,通过调整绘图图标形状和大小来标识出汇流区划分次序,从而推算出错误汇流区的序号。

6不规则方阵汇流区划分结果

如上图所示汇流区由最左边和最右边几个组串组成,跨越了其他的汇流区。

7不规则方阵汇流区划分结果分析

研发人员根据我测算的划分顺序和汇流区序号,定位到出错的位置并最终分析出软件计算错误的原因。

8不规则方阵汇流区划分原因分析

 

3.            结论与经验

3.1.    测试方法总结

万变不离其宗,无论前台还是后台,测试方法都是贯通的,掌握了测试用例的设计思想,其他的借助工具即可完成,以下总结了几条对用例设计有帮助的方法:

1、认真阅读产品资料,包括产品规格书、产品需求文档、产品设计文档等,这对软件测试的用例设计至关重要,并且也能帮助我们更早的发现需求问题、设计问题。

比如该项目,在TR3审查项目设计文档时,我发现软件需求文档中写了全任务,但设计脑图文档中却找不到全任务的数据结构,后台研发人员解释为全任务会自动分解成三个子任务,但他们没有考虑到客户端需要一次性提交三个任务的参数,那么必须要有一种新的数据结构来接收和存储这些参数。经过多次沟通,最终研发人员理解并添加了全任务数据类型,让这一问题提前在TR3就得到了解决,避免了延期到后期修复成本的增加。

2、熟练掌握软件功能测试方法,这是测试人员的基本功,也是真正检测产品质量的利器。

3、熟悉常用的测试工具,这就有助于提高我们的测试效率,改进我们的测试方式。

4、多跟研发人员沟通,进一步摸清软件的详细逻辑,不断改进和完善我们的测试用例。

3.2.    软件开发模式思考

在测试后台软件算法中,遇到最大的困难就是,算法复杂,其结果纯手工很难验证对错,必须借助测试工具,但测试工具的研发也占用人力资源。借鉴敏捷模式结对编程的思想,如果在项目前期,研发人员编写软件代码、测试人员同步编写测试代码,我想软件缺陷的发现阶段可能会提前很多,产品的质量也会提高很多。


TAG:

 

评分:0

我来说两句

Open Toolbar