Monash University 测试计划以及航空预订系统的单元/集成测试
航班预订系统是一种自动化航班预订流程的系统,帮助在线预订航班。 对于航空公司来说,拥有可靠高效的预订系统至关重要。同时,关键是确保预订系统提供全面的信息,以改善客户体验。业务的一个关键方面是确保可靠高效的客户服务。然而,在没有测试发挥主要作用的情况下,很难提供高质量的软件解决方案。 在这项任务中需要彻底测试航班预订系统的基本功能,使用TDD方法测试和扩展代码库的组件(Java类和方法)。
我们采用了适当的单元测试和集成测试技术的组合来彻底测试扩展代码,并将我们的测试套件以表格格式作为测试计划报告的一部分呈现。我们创建了单独的表格来呈现每个类的单元和集成测试用例。验证:在某个阶段,某些类的某些属性需要以不同的方式进行验证。以下是我们测试套件包含的最小验证集。
飞机
当设置飞机的某个属性时,需要满足以下单元测试条件。
- 确保测试飞机的所有字段/细节,如飞机ID、商务座位数、机组座位数等。
- 座位号必须在[1, 300]范围内。
航班
当将航班添加到系统时,必须满足以下条件。
- 所有字段都是必需的。
- 日期必须采用DD/MM/YY格式。
- 时间必须采用HH:MM:SS格式。
- 确保系统中不存在相同的航班。
人员
当创建或返回人员时,测试以下内容:
- 创建人员时必须使用Person类的所有字段。
- 性别字段有以下选项:“女性”、“男性”、“非二元|性别多样化”、“选择不透露”和“其他”。
- 名字和姓氏不应以数字或符号开头,只能包含大小写字母。
乘客
当创建或返回乘客时,测试以下内容:
- 所有乘客的字段都是必需的。
- 电话号码遵循一种模式。在澳大利亚境内,移动电话号码以04或05开头 - 澳大利亚国家市话代码“0”,加上移动指示器4或5,然后是八位数字。在澳大利亚通常写作04XX XXX XXX,对于国际观众则写作+614XX XXX XXX。
- 电子邮件遵循有效的模式“abc@domain.com”。
- 护照号码长度不应超过9个字符。
- 当添加乘客时,必须包括乘客的名字、姓氏、年龄和性别,遵循成为乘客的人员。
票
当创建票时,需要满足以下条件。
- 票务状态的值必须为“True”(已预订)或“False”(可用)。
- 折扣始终基于乘客的年龄类别应用。
- 价格始终应用于票务。
- 价格和服务税是有效值(整数或实数等)。
- 当出售票时总是应用服务税。
- 票务类接收航班和乘客的有效信息。
票务系统
- 在选择票务时,必须使用有效的城市。
- 如果乘客选择已预订的票务,则应显示错误消息。
- 已实施适当的检查以验证乘客信息
- 已实施适当的检查以验证航班信息
- 已实施适当的检查以验证票务信息
- 当购买票务时向乘客显示正确的值。
票务收集
- 每当票务添加到票务收集中时,必须进行验证。
- 尝试获取票务时返回正确的票务。
航班收集
- 将航班添加到系统中时,测试是否符合航班和航班收集的要求。
- 必须使用有效的城市名称。
- 尝试获取航班信息时,返回有效的航班。
单元测试。针对系统中的每个单元对测试套件进行测试。为每个单元编写测试类/方法,执行自动化测试,并改进单元以通过测试套件。 集成测试。使用自底向上/自顶向下集成方法或适当的组合对集成测试下的系统进行测试。
上一部分工作中我们开发和测试了航班预订系统的功能之后,这一步我们专注于测量和评估代码库和测试套件的质量。 除了之前使用的环境和库之外,我们在这一部分使用了一个额外的库,PIT http://pitest.org/ ,进行突变测试,以及使用ISO/IEC 25010国际标准作为衡量指标
-系统和软件工程
- 系统和软件质量要求和评估(SQuaRE)
- 系统和软件质量模型 https://iso25000.com/index.php/en/iso-25000-standards/iso-25010
我们使用前一部分工作中改进的代码库进行测量、分析、评论和改进代码库的质量。此外,我们还对代码库进行自动突变测试。
在此部分中,我们使用ISO/IEC 25010来衡量、监控和分析来自前一部分的代码库的质量。
- 成功构建改进/扩展的代码库,以确保所有测试用例都可以通过,不会出现错误或断言失败。
- 根据ISO/IEC 25010软件质量模型观察代码库的质量。 我们根据以下方面分析代码库: ● 功能完整性 ● 功能正确性 ● 功能适当性 ● 时间行为 ● 资源利用率 ● 容量 ● 用户错误保护 ● 可访问性 ● 容错性
- 在上述分析的指导下,改进代码库的质量。
- 我们在最后的报告中描述了以下内容。 ● 讨论ISO/IEC 25010软件质量模型采用的质量指标的合理性。 ● 确定需要重大改进的代码(或测试)的部分。
突变测试是一种评估测试套件质量的技术,它通过对实际代码进行小的语法更改,并观察测试套件对这些更改的行为变化来进行。我们执行了自动化突变测试。
- 使用PIT库(http://pitest.org/)对代码库执行自动化突变测试,
- 观察PIT(突变测试)识别的问题,并讨论测试套件的质量,并根据我们的实验观察改进测试套件的质量。