什么是集成测试?
在集成测试中,各个软件模块在逻辑上集成并作为一个组进行测试。
典型的软件项目由多个软件模块组成,由不同的程序员编写。
集成测试侧重于检查这些模块之间的数据通信。
因此,它也被称为“I&T”(集成和测试),“字符串测试”,有时也称为“线程测试”。
为什么要进行集成测试?:
虽然每个软件模块都经过单元测试,但由于各种原因仍然存在缺陷
- 模块通常由单个软件开发人员设计,其理解和编程逻辑可能与其他程序员不同。集成测试对于验证软件模块的统一工作是必要的
- 在模块开发时,客户的需求变化的可能性很大。这些新要求可能无法进行单元测试,因此系统集成测试变得必要。
- 软件模块与数据库的接口可能是错误的
- 外部硬件接口(如果有)可能是错误的
- 异常处理不当可能会导致问题。
集成测试案例:
集成测试用例与其他测试用例的不同之处在于它主要关注模块之间的接口和数据/信息流。这里优先考虑集成链接而不是已经测试过的单元功能。
针对以下场景的示例集成测试用例:应用程序有3个模块,分别是“登录页面”,“邮箱”和“删除邮件”,每个模块都是逻辑集成的。
这里不太关注登录页面测试,因为它已经在单元测试中完成了。但请检查它是如何链接到邮箱页面的。
类似邮箱:检查其与删除邮件模块的集成。
测试用例ID | 测试用例目标 | 测试用例说明 | 预期结果 |
---|---|---|---|
1 | 检查“登录”和“邮箱”模块之间的接口链接 | 输入登录凭据,然后单击“登录”按钮 | 要被定向到邮箱 |
2 | 检查邮箱和删除邮件模块之间的接口链接 | 从邮箱中选择一封电子邮件,然后单击删除按钮 | 所选电子邮件应显示在“已删除/已删除”文件夹中 |
整合测试的方法/方法/策略:
软件行业使用各种策略来执行集成测试,即。
- 大爆炸方法:
- 增量方法:进一步分为以下几种
- 自上而下的方法
- 自下而上的方法
- 三明治方法 - 自上而下与自下而上的组合
以下是不同的策略,执行方式及其局限性以及优势。
大爆炸方法:
这里所有组件一次集成在一起,然后进行测试。
优点:
- 方便小型系统。
缺点:
- 故障定位很困难。
- 鉴于需要在此方法中测试的接口数量庞大,可能很容易错过一些要测试的接口链接。
- 由于集成测试只能在“所有”模块设计完成后开始,因此测试团队在测试阶段的执行时间将更短。
- 由于所有模块都是一次性测试的,因此高风险关键模块不会被隔离并优先进行测试。处理用户界面的外围模块也没有被隔离和优先测试。
增量方法:
在这种方法中,通过连接两个或多个逻辑相关的模块来完成测试。然后添加其他相关模块并测试其是否正常运行。过程继续,直到所有模块都已成功连接和测试。
该过程通过使用称为Stubs和Drivers的虚拟程序来执行。存根和驱动程序不实现软件模块的整个编程逻辑,而只是模拟与调用模块的数据通信。
存根:由测试模块调用。
驱动程序:调用要测试的模块。
反过来增量方法由两种不同的方法执行:
- 自下而上
- 自顶向下
自下而上整合
在自下而上策略中,较低级别的每个模块都使用更高模块进行测试,直到所有模块都经过测试。它需要驱动程序的帮助进行测试
图解表示:
- 故障定位更容易。
- 与Big-bang方法不同,没有浪费时间等待开发所有模块
缺点:
- 控制应用程序流程的关键模块(在软件架构的顶层)最后进行测试,可能容易出现缺陷。
- 早期的原型是不可能的
自上而下整合:
在自上而下的方法中,测试按照软件系统的控制流程从上到下进行。
获取存根的帮助以进行测试。
图解表示:
- 故障定位更容易。
- 可以获得早期原型。
- 关键模块按优先级进行测试; 可以首先找到并修复主要的设计缺陷。
缺点:
- 需要许多存根。
- 较低级别的模块测试不充分。
集成测试程序
无论测试策略如何(上面讨论过),集成测试程序:
- 准备集成测试计划
- 设计测试场景,案例和脚本。
- 执行测试用例然后报告缺陷。
- 跟踪和重新测试缺陷。
- 重复步骤3和4,直到成功完成Integration。
集成测试计划简介:
它包括以下属性:
- 方法/方法测试(如上所述)。
- 范围和超出范围的集成测试项目。
- 角色和责任。
- 集成测试的先决条件。
- 测试环境。
- 风险和缓解计划。
进入和退出标准。
任何软件开发模型中的集成测试阶段的进入和退出标准
入学标准:
- 单元测试组件/模块
- 所有高优先级错误都已修复和关闭
- 所有模块都要成功完成并集成。
- 集成测试计划,测试用例,要签署和记录的方案。
- 要为集成测试设置所需的测试环境
退出标准:
- 集成应用程序的成功测试。
- 执行的测试用例记录在案
- 所有高优先级错误都已修复和关闭
- 提交的技术文件随后发布说明。
集成测试的最佳实践/指南
- 首先确定可以采用的集成测试策略,然后相应地准备测试用例和测试数据。
- 研究应用程序的体系结构设计并确定关键模块。这些需要优先测试。
- 从Architectural团队获取界面设计并创建测试用例以详细验证所有接口。必须详细测试数据库/外部硬件/软件应用程序的接口。
- 在测试用例之后,它是发挥关键作用的测试数据。
- 在执行之前,始终准备好模拟数据。执行测试用例时不要选择测试数据。