论文部分内容阅读
软件工程的第一步是需求分析,准确的分析需求对软件开发具有重要的意义。现实中,由于在需求的采集和细化阶段对系统的理解不全面,或者是相关领域环境的不确定,再者是语言表达的模糊性等都会使需求存在不确定性。因此针对不确定的需求构建的模型会出现不确定的因素,且根据该模型生成的测试用例同样会存在不确定的可能。目前,不确定需求的研究受到大家广泛的关注。然而,对不确定需求的研究多集中在检测、管理不确定性和基于需求变更建立需求模型上,却很少有人研究如何基于不确定需求直接生成测试用例。 本文主要研究如何基于软件的不确定需求为软件测试生成测试用例。研究一种典型的不确定需求,其蕴含“多种可能性”。本文的测试用例生成方法利用基于标记迁移系统的部分模型来描述不确定需求。然后,基于标记迁移系统和部分模型的特点,本文提出了一个测试用例自动生成算法。最后,根据与对应测试用例的不确定性相关的权值对测试用例进行优先级排序,以便为执行这些测试用例提供一个推荐建议。 本文的贡献点如下: (1)提出一种针对不确定需求建模的方法。该方法是基于标记迁移系统的一种形式化建模方法,能够描述软件系统的状态变化和迁移路径,以便基于路径的测试用例生成。 (2)给出一个测试用例自动生成算法。该算法的本质是一种基于路径的遍历算法,其目的在于从不确定需求的形式化模型中生成一组测试用例。由于通过形式化模型描述不确定性,导致测试用例也包含与不确定需求相关的信息,基于此对测试用例排序有助于生成的执行测试用例。 (3)提出一个解决循环的机制。考虑到模型中存在循环的复杂性,提出一个解决机制以避免状态爆炸的问题。