关键词:
软件测试
测试过程改进
优先级排序
测试用例选择
DevOps
摘要:
DevOps软件开发作为敏捷开发的延续,通过打通开发与运维的界限,进一步缩短了软件的交付周期,满足了软件即服务的现代软件需求。但由于DevOps缺乏统一的实施标准,采用DevOps开发模式的组织在开发实践中,其产品质量和开发效率往往无法实现兼顾。软件测试作为软件开发的必要过程,是保证软件质量、提高软件可靠性的关键环节。传统的软件测试主要关注于产品质量,测试中存在大量的冗余过程及测试用例,这与需要兼顾质量和效率的DevOps开发模式存在诸多不相适应的方面。本文系统研究如何在保证软件测试质量的前提下提升测试效率,针对测试过程实践存在冗余的问题,依据DevOps的特点,分析提取测试过程中的关键因素,构建轻量级的测试过程改进框架;针对测试用例优化问题,分别面向持续集成和持续交付阶段,提出适应不同开发阶段的测试用例优化策略,为希望采用DevOps开发模式的组织在改进测试实践时,提供具体可行的参考依据。具体研究工作如下:1.针对传统测试过程与DevOps开发模式不相适应,而目前针对其测试过程改进研究相对缺乏的问题,本文根据DevOps模式的原则和特点,提出面向DevOps的软件测试过程改进框架。对已有文献中析出的DevOps的主要影响因素进行分析,解析出与软件测试相关的过程因子,将质量和效率作为测试因子重要性的评价指标,针对不同性能的组织,分析需重点关注的测试因子,建立软件测试过程的改进框架并给出了具体的实践建议。2.针对持续集成阶段,测试目标动态变化的问题,本文提出一种基于用例属性标识的回归测试优化方法,针对测试的不同需求,依据回归测试的目标变化,动态选择匹配的优化策略。首先构建基于失败标识、缺陷检测数、重要性因子和新旧功能标识的用例属性标识,并根据历史数据和关联关系对用例属性进行初始化;其次根据测试目标,区分新功能测试、修改性测试,将需求映射为具体的用例属性指标,据此对测试用例进行选择,再计算重要性因子,更新用例属性标签,根据用例属性进行优先级自动排序;而后在用例执行中,结合时间、资源的要求,通过用例属性选择相应规模的测试用例进行执行,以保证既满足尽早发现缺陷的需要,又符合测试快速反馈的要求;最后,选择开源数据集进行实验,验证了优化方法的有效性。3.针对持续交付阶段,面向用户需求和实际环境的验收测试面临着测试用例多、场景变化大的问题,提出一种基于测试用例粒度的验收测试优化方法,针对测试用例的不同层次,分别采用测试用例选择和优先级排序进行测试用例优化。首先构建需求关联的测试套件,采用需求向测试用例的目标搜索,进行测试用例选择;其次区分测试套件内和测试套件间两个层次分别进行优先级排序;而后在测试执行时,精简测试用例执行动作,进一步缩短验收测试的执行时间,尽早满足用户需求,实现价值快速交付;最后,将本文方法运用于实际工业项目进行实验,结果表明,该方法能够在提高需求满足效率的同时,降低测试用例规模并缩短测试执行时间。