基于测试数据挖掘的测试优化策略

时间:2022-10-22 11:55:32

基于测试数据挖掘的测试优化策略

摘 要:系统质量的要求随着日益庞大的系统规模而提高,系统测试是保证系统质量的重要方式。随着系统测试难度的增大,测试团队不仅需要遵循正确的测试步骤展开工作,同时也要优化测试方法以提高测试的效率。文章通过对历史测试数据的挖掘,提出了测试执行策略的优化方法,并建立测试团队和研发团队的双向反馈,优化需求分析,从根本上提高了测试团队的协作效率,保障了系统的可靠性。最后针对系统测试工作提出了展望。

关键词:可靠测试;优化;数据分析

高质量且高可靠性的企业应用程序系统是数字化时代非常重要的元素[1]。测试团队在确保企业应用程序系统满足既定标准或需求时会发挥非常重要的作用。随着系统的规模和复杂性升级,其可靠性和质量要求必然成倍增长,这意味着测试团队需要开发更有效的测试方法。一个完整的测试过程包括数据记录、数据维护、数据验证等多个方面。测试数据管理策略对于测试数据的记录必须是全面的,这也为后期的数据分析挖掘提供了支撑。

陈翔等人在文献[2]中重点阐述了回归测试中用例优先排序(test case prioritization,简称TCP)问题。从源代码、需求和模型三个角度对TCP问题进行分类,重点分析了回归测试中测试资源缺乏时的TCP问题。另外,潘伟丰等人在文献[3]中提出了基于错误传播网络的测试用例排序方法。该方法在类粒度将软件抽象成加权类依赖网络(weighted class dependency network, 简称WCDN)模型,并基于WCDN分析错误在网络上的传播行为,构造错误传播网络(bug propagation network,BPN)。实例研究表明,基于错误传播网络的测试用例排序方法在错误检出率上相比于其他经典方法有一定的提高,并且具有较好的稳定性。一个全面的用例排序方法,能准确地将当前的软件质量反映到执行用例的优先级上[4-5]。通过使用正确的TCP策略测试团队能够提供及早发现缺陷,在整个产品开发过程中,为提供更简单的方法去解决系统缺陷提供支撑。因此,拥有正确的TCP策略对测试团队乃至公司都至关重要,能加快系统周期并大幅削减成本。然而在现有的研究工作中,TCP策略问题主要集中在回归测试阶段,但是回归测试处于整个测试过程的末端[6]。由于回归测试时对于本系统缺陷分布情况有非常清晰的概念,但是由于处于末端,对于测试团队的优化毕竟有限。同时测试团队与研发团队往往是单线交流,即研发团队待测系统,测试团队极少参与提高研发团队的开发质量。

因此,可以从测试用例执行策略和测试结果反向优化开发策略两个方面展开研究,并提高系统可靠性。测试用例执行顺序问题是测试执行策略中非常重要的部分,在测试项目中持续优化测试用例执行顺序可以提早发现潜在的缺陷。同时由于测试团队对于项目整体的理解更为透彻,对缺陷的总体分析可以帮助研发团队在类似问题上处理地更为妥善。测试团队在需求分析阶段的有效介入,将从源头上提高系统的质量和可靠性。

1 测试执行策略优化

测试中的关键问题是第一时间发现被测系统不符合规范要求的内容。测试经理在测试规划时是通过大量的测试用例保证测试的覆盖率。持续优化测试用例执行顺序是在保障测试覆盖率的同时,合理地安排测试用例地执行顺序,即TCP问题。文章提出将项目测试分为三个阶段,在项目测试的初期、中期、后期三方面分别进行优化TCP,最终优化整个测试执行策略。

如图1 所示,项目测试初期,分析测试用例的历史数据得到测试用例的执行潜在价值,优先执行潜在价值高的测试用例。比如在其它项目中执行某些用例时,发现了系统不符合规范要求的部分,并提交了缺陷。在新的测试用例执行时,应首先执行这类测试用例以便快速发现系统缺陷。项目测试中期,分析本项目当前缺陷情况得到各个系统功能模块的缺陷发生概率。优先执行缺陷分布较多的功能模块相关的测试用例。项目测试后期,即回归测试阶段,需结合各个系统功能模块在本项目和历史项目中的缺陷发生概率,在保证一定回归比率的情况下,综合考虑本项目和历史项目的分析,优先回归测试缺陷发生概率较高的模块。

2 需求分析优化

项目测试工作通常被安排在项目研发工作之后,测试团队的主要工作也仅仅是将测试结果中发现的缺陷情况报告给研发团队,并没有对缺陷情况进行分析,可能使得类似的缺陷在不同的项目中反复出现。因此测试团队在提供测试报告的同时,对各个功能模块中所发现的缺陷进行分析,并在新项目立项初期给出系统模块开发时的缺陷概率,帮助研发团队在需求分析阶段重点考虑高缺陷概率的模块开发和模块间的协作,从源头上降低缺陷发生的概率。测试团队与研发团队的双向反馈将优化产品设计的需求分析阶段,提高系统的可靠性,如图2所示。

图2 测试团队和研发团队双向通道

3 结束语

文章从优化测试用例执行顺序和测试结果优化需求分析两个方面,阐述了现在系统开发中提高系统可靠性的重要方法。测试数据的管理是一座金矿,对测试数据的深入分析可以让整个测试过程不再是静止的,而是可以动态调节以应对更复杂的情况,同时深入分析测试结果也可以建立测试研发的双向通道,形成良性循环。最终可以超预期地提交高质量的系统,节约运营成本,完成市场抢占。

参考文献

[1]K.Krishna Murthy, Janardhana S Channagiri, "test data management: Enabling reliable testing through realistic test data"Building Tomorrow's Enterprise, Oct 2009.

[2]陈翔,陈继红,鞠小林,等.“回归测试中的测试用例优先排序技术述评”[J].系统软件与软件工程,2013(8).

[3]潘伟丰,李兵,周晓燕,等.“基于错误传播网络的回归测试用例排序方法”[J].计算机研究与发展,2016(3).

[4]朱海燕,范辉,谢青松,等.“测试用例排序的研究”[J].计算机工程与科学,2008(1).

[5]潘伟丰,李兵,马于涛,等.“基于复杂软件网络的回归测试用例优先级排序”[J].电子学报,2012(12)

[6]杨广华,包阳,李东红,等.“基于需求的测试用例优先级排序”[J].计算机工程与设计,2011(8).

上一篇:设备管理系统的实现与应用 下一篇:基于交通仿真技术的路段人行横道间距研究