关键词:
软件测试
数据库状态
依赖关系
数据库操作
测试用例切片
摘要:
软件测试在软件的生命周期中扮演着重要的角色,是保证软件质量的重要技术措施,对于查找软件缺陷、保证软件产品质量,提高测试效益具有不可替代的作用。据不完全统计,在计算机应用中,约有80%是数据库系统的应用,数据库应用系统测试一个典型的特征就是数据库的状态,它可能会随着测试用例的执行发生改变。数据库应用系统的测试用例大多会与数据库中的数据发生交互,从而改变数据库的状态,而数据库的状态被改变后很有可能对下一个测试用例的执行产生影响,导致测试失败,因此,测试用例之间是存在着依赖关系的。当数据库状态发生改变导致后面的测试用例无法继续执行时,需要通过重置操作将数据库恢复到之前的状态,然而这个操作时非常费时的,降低了测试效率。因此,如何解决因测试用例间的依赖关系导致的数据库重置是数据库应用系统测试面临的一个难题。为了解决上述问题,本文给出了一个基于数据库应用系统的测试用例序列优化的方法,具体工作如下:(1)以关系数据库表的操作为单元,对数据库操作间依赖关系产生的原因进行了分析和归纳,并给出一种依赖性识别算法,提取了数据库操作间的依赖关系,再将测试用例映射到具体表的具体操作,依据前面提取的数据库操作间的依赖关系间接地提取测试用例之间的依赖关系。(2)依据前面提取到的测试用例间依赖关系,给出一个测试用例序列优化算法,该算法基于图论的思想,将测试用例集及其依赖关系转化成有向图,通过将测试用例集划分为若干个测试用例切片的方法来打破有向图中可能存在的环路,通过该方法,测试用例间的依赖关系转变成了测试用例切片间的依赖关系,减少了顺序执行测试用例发生的冲突,从而减少了数据库重置的次数。最后,本文在上述的研究基础上,给出了一个基于数据库应用系统的测试用例序列优化框架。通过具体项目实例表明,该框架能够对测试用例序列进行排序优化,有效的避免测试用例之间的依赖关系,减少数据库重置的次数,提高测试效率。