论文部分内容阅读
软件可靠性测试是保障软件质量的一个重要手段,基于Markov链使用模型的可靠性测试是其中最为重要的方法之一,其包含两个最为关键的流程:一是软件Markov链使用模型的构建;二是基于Markov链使用模型的可靠性测试用例的自动生成。目前,模型构建部分已经有了较多的创新和优化,而测试用例的自动生成方法依旧没有突破,已然成为整个可靠性测试过程的性能瓶颈。本文针对传统的可靠性测试用例生成技术所存在的随机性、生成的测试用例个数不可控、测试用例生成“早熟”及充分性不足的问题,对基于Markov链的可靠性测试用例自动生成技术进行了详尽的研究,从逆向思维出发,提出一种改进的可靠性测试用例自动生成策略,通过收集软件Markov链的所有基础测试路径集合,再根据现有指标计算出一个合适的并且满足测试充分性的测试用例个数,最后结合基础测试路径集和测试用例个数按规则分配衍生出可靠性测试用例集,并且通过较为成熟的测试充分性判定准则保证了测试用例集的充分性,克服了传统测试用例生成方法的弊端。另外,现有的基于Markov链的可靠性测试用例生成技术都会因为被测软件的Markov链使用模型的高复杂性而导致“测试用例爆炸”的情况,生成测试用例过多的情况下将会导致之后的测试执行过程变得异常缓慢,大大降低了可靠性测试的效率。目前这方面的优化方法较少,传统的测试用例约简技术仅仅是在测试用例生成过后约简冗余度较高的测试用例,不仅增加了测试流程的复杂性,而且未考虑到可靠性测试的充分性,不适用于可靠性测试领域。所以本文提出面向复杂Markov链的测试用例约简方法,通过对基础测试路径归类分段,针对每个压缩段单独生成用例,大大降低了测试用例集规模,提高了可靠性测试效率。最后结合前人所做研究和本文提出的创新性理论方法,设计并实现了一个软件可靠性自动化测试平台RTAGEN,并且通过实验室实际研究的无人机项目验证了方法的有效性与平台的实用性。