软件仿真测试的意义,用案例告诉你,测试环境完全仿真到底多重要!

2023-05-16

熟悉软件测试流程的人都知道,我们的产品发布环境通常包括以下环境:研发环境、测试环境、UAT环境、生产环境。

其中研发环境供开发调试使用,测试环境供测试人员测试使用,UAT环境即预发布环境,供上线前仿真测试,而生产环境为真实线上环境,供产品服务日常运行使用。测试人员需要验证测试各个环境程序的运行情况并确保程序业务功能在各个环境运行正常。

当然,在这里,笔者并不是想理清几套环境之间的不同和业务关系,而是想通过描述他们之间的隔离性来告诉大家测试环境模拟仿真生产环境数据的重要性。

我们知道以上几套环境的数据并不是共用的,也就是说,他们使用的数据库并不是同一套,可能测试环境/预发布环境数据量比较小,而生产环境数据量比较大,这就会导致以下问题的出现:生产环境数据量较大,数据较特殊,导致数据溢出、曲线图变形、程序崩溃等等。

可能有人会说,我们在测试环境做了性能测试,导入了大量的数据样本真实模拟生产环境,找到了系统瓶颈,并且已经报给开发修复掉了。当然,我们不否认性能测试的重要性,性能测试能够最大化模拟生产运行环境,测试当负载逐渐增加时,系统各项性能指标的变化情况。

但是大家都忽略了数据特殊性这个点,生产环境是程序运行的最真实的环境,那么就需要测试人员在测试进行的过程中,将测试环境生产化仿真,真实模拟生产环境,做到数据完全拷贝,这样,在生产环境运行之前,程序已经经过了一系列模拟验证,能够保证程序更加稳定、可靠。

上面说得可能还太过抽象,接下来,我用一个案例来说明一下。

下图是某炒股软件持仓分析模块股民年度(月度)收益分布曲线图,其中图2左是正确的曲线,对应测试环境的数据;图2右是错误的曲线,对应生产环境仿真数据(测试环境导入生产环境数据)。

从图中很容易看出问题,图2左图(测试环境数据)由于样本量较小,对应x轴收益率都集中在算法区间内,就画出了平滑的曲线图,而图2右图(生产环境数据)由于样本量较大,对应x轴收益率甚至达到了±1000%,原先的曲线算法不能满足,导致出现折线的现象。

这里说下案例中画图的算法,如图1所示:(计算公式不说,我们这里不聊算法)

75666aabc33dbb428b0b510b55ea094e.png(图1)

其中,x轴标识账户年(月)收益率,数值按照算法中μ和σ的值按照μ、μ-σ、μ+σ、μ-2σ、μ+2σ、μ-3σ、μ+3σ计算得来,数值在-100%~100%之间,y轴为按照账户收益率以及一定的算法得到的f(x)的值,曲线上均匀分布着按照数据库中所有账户的收益率计算出来的f(x),最终构成了完整的曲线。

X轴的数值限制导致了最终生产数据的错误结果,这也是问题的根源。

8fea7e11bbcedc87aae1922f33017de7.png(图2)

▲如何解决呢?

我们需要把生产环境数据完全拷贝到测试环境进行模拟仿真测试,在上线发布之前经过模拟测试,保证程序和数据的正确性。

当然了,测试环境生产化仿真也有一定的局限性,以下情况并不适用:

1.只适用于已部署服务(新服务生产环境没有配套数据);

2.生产环境数据保密的服务(数据不能外传);

3.前端数据从外来接口获取,本地并不落库;

4.生产环境数据库数据量特别巨大,无法完全复制到测试环境;

测试环境生产化数据仿真测试,并不是说模拟生产环境创造数据环境进行测试,而是生产数据环境的完全仿真,测试人员可以把它作为测试用例加入测试环节,这样一定能够事半功倍,少走弯路。当然了,仿真测试并不是万能的,还有其他因素可能影响服务功能,比如服务器性能、内存占用、垃圾数据、错误配置等等,测试中需要结合不同业务场景不同对待。期待大家能够把软件生产化仿真测试方法利用好,应用到日常测试中去,让测试更简单!

版权所有 侵权必究

如需转载请联系

0571-28829811

推荐相关阅读(点击直达):

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件仿真测试的意义,用案例告诉你,测试环境完全仿真到底多重要! 的相关文章

随机推荐