集成测试(类型、自上而下和自下而上)

什么是测试" title="集成测试">集成测试?

集成测试是一种测试,其中软件模块在概念上被连接并作为一个单元进行测试。一个典型的软件项目由几个程序员编写的多个软件模块组成。此级别测试的目标是发现各种软件组件在组合时交互方式中的缺陷。

集成测试关注的是确保数据在各个单元之间进行通信。因此,它也被称为“I & T”(集成和测试)、“字符串测试”和“线程测试”。

  • 什么是集成测试以及它是如何工作的?

  • 集成测试的目的是什么?

  • 集成测试用例示例

  • 集成测试方法、策略和方法论

  • 大爆炸法

  • 循序渐进的方法

  • 存根和驱动程序有什么区别?

  • 自下而上的整合

  • 自上而下的整合

  • 夹心/混合集成

  • 什么是集成测试以及它是如何工作的?

  • 集成测试计划:快速概览

  • 集成测试进入和退出标准

  • 集成测试最佳实践/指南

集成测试的目的

尽管每个软件模块都经过单元测试,但由于各种原因仍会发生故障,包括 -

  • 一般而言,Module 由单个软件开发人员创建,其编程逻辑和理解可能与其他程序员不同。需要集成测试来确保软件部分一起运行。

  • 在整个模块开发过程中,客户的需求很可能会发生变化。这些额外的需求可能没有经过单元测试,因此需要进行系统集成测试。

  • 可能是软件模块与数据库的接口不正确。

  • 外部硬件接口(如果存在)可能不正确。

  • 达不到标准的异常处理可能会导致问题。

集成测试用例示例

集成测试用例与其他测试用例的不同之处在于它主要关注跨组件的接口和数据/信息流。应优先考虑集成链接而不是已经测试过的单元功能。

对于以下情况,下面是一些示例集成测试用例: 该应用程序包括三个模块:“登录页面”、“邮箱”和“删除电子邮件”,每个模块都是逻辑集成的。

登录页面测试已经在单元测试下完成,所以不要在这里花太多时间。但是,看看它是如何连接到邮箱页面的。

同样,检查邮箱与删除邮件模块的连接。

测试用例 ID测试用例目标测试用例描述预期结果
1验证登录和邮箱模块是否具有接口关系。Click the Login button after entering your login credentials.被定向到邮箱。
2验证邮箱和删除邮件模块的接口关系是否完好。Select the email from the Mailbox and delete it.Deleted/Trash 文件夹应包含选定的电子邮件。

集成测试方法和方法论

软件工程提供了许多进行集成测试的策略,包括 -

  • 大爆炸法

  • 增量方法

  • 三明治方法——自上而下和自下而上的结合

下面列出了各种策略、它们的实施方式以及它们的限制和好处。

大爆炸实验

Big Bang 测试是一种集成测试技术,其中所有组件或模块同时组合在一起,然后作为单个实体进行测试。在测试期间,这个集成的组件集合被视为单个对象。除非单元中的所有组件都已完成,否则集成过程将不会运行。

好处

  • 它非常适合小型系统。

缺点

  • 很难确定故障的确切位置。

  • 鉴于此方法中必须检查大量接口,因此可能会忽略某些必须评估的接口。

  • 由于集成测试只能在定义“所有”模块后才开始,因此测试团队在整个测试阶段执行的时间将更少。

  • 由于同时评估所有模块,因此不会首先隔离和检查高风险的关键模块。处理用户界面的外围模块没有被隔离或优先测试。

增量测试

增量评估技术涉及合并两个或多个逻辑上相互连接的模块,然后测试应用程序的正确功能。然后逐渐集成附加的连接模块,并重复该过程,直到所有逻辑连接的模块都已成功集成和测试。

增量方法是使用两种替代方法实现的 -

  • 自下而上

  • 自顶向下

驱动程序和存根

存根和驱动程序是集成测试中使用的虚假程序,用于简化软件测试过程。这些程序充当测试缺失模型的替代品。它们没有实现软件模块的所有编程逻辑,但它们在测试期间确实模拟了与调用者模块的数据传输。

  • Stub - 此方法由被测模块调用。

  • 驱动程序- 这是调用将被测试的模块的程序。

自下而上的完整性检查

自底向上集成测试的策略是首先测试最低级别的组件。然后利用经过测试的模块来帮助测试更高级别的模块。重复该过程,直到测试了所有顶级模块。当较低级别的模块经过测试和合并后,将生成下一级模块。

好处

  • 定位故障更简单。

  • 与 Big-bang 策略不同,不会浪费时间等待所有模块构建完成。

缺点

  • 影响程序流程的关键模块(位于软件架构的顶层)最后进行测试,并且更有可能出现错误。

  • 创建早期原型是不可行的。

自上而下的集成测试

自顶向下集成测试是一种从软件系统控制流的顶部到底部进行集成测试的方法。为确保软件功能正常,首先测试较高级别的模块,然后测试和集成较低级别的模块。如果某些模块未准备好,则使用存根来测试它们。

好处

  • 定位故障更简单。

  • 早期获得原型的可能性。

  • 首先测试关键模块;可能会首先发现并纠正严重的设计错误。

缺点

  • 许多存根是必需的。

  • 较低级别的模块没有经过彻底的测试。

三明治测试

三明治测试是一种将顶层模块与底层模块进行测试,而底层组件与顶层模块结合并作为一个系统进行评估的方法。混合集成测试是一种结合了自顶向下和自底向上方法的混合技术。本项目中同时使用了存根和驱动程序。

集成测试方法

无论软件测试方法如何(如上所述),集成测试方法如下 -

  • 为集成测试制定计划。

  • 为测试创建场景、案例和脚本。

  • 在执行测试用例之后,报告缺陷。

  • 缺陷跟踪和重新测试

  • 执行步骤 3 和 4,直到集成成功完成。

集成测试计划:快速概览

它具有以下特点 -

  • 测试方法/途径(如上所述)。

  • 范围和排除集成测试项目

  • 职责和角色

  • 集成测试有几个先决条件。

  • 测试环境。

  • 风险和缓解计划。

集成测试进入和退出标准

在任何软件开发方法中,集成测试阶段都有进入和退出标准。

入学条件

  • 已经过单元测试的组件/模块

  • 所有高优先级错误均已解决并关闭。

  • 所有模块都必须编码并正确集成。

  • 集成测试计划、测试用例和场景都必须得到批准和记录。

  • 集成测试需要创建一个测试环境。

退出标准

  • 集成应用程序测试成功。

  • 已完成的测试用例被记录在案。

  • 在提交技术文档和发行说明之前,必须修复和关闭所有高优先级缺陷。

集成测试最佳实践/指南

  • 确定可能首先使用的集成测试策略,然后创建与之配套的测试用例和数据。

  • 检查应用程序的体系结构并确定关键模块。这些必须尽快进行测试。

  • 获取架构团队的接口设计并编写测试用例以彻底检查所有接口。必须彻底测试数据库接口以及任何外部硬件或软件应用程序。

  • 在测试用例之后,测试数据是最重要的因素。

  • 在执行之前,始终准备好模拟数据。在测试用例的执行过程中,不要选择测试数据。

集成测试挑战

在集成测试的工作原理及其提供的好处方面,我们已经涵盖了很多方面。按照惯例,好处也有一些缺点。由于许多问题,集成测试可能比您想象的更困难。以下是一些这样的场景实例 -

  • 当代码开发过程中涉及的人太多,每个人都有自己的风格时,很难理解单元的逻辑。

  • 测试可能会因各种元素(数据库、平台、环境等)而变得复杂。

  • 集成两个遗留系统,以及将一个新系统集成到一个现有系统中,很少是轻松的。

  • 如果多个团队构建不同的集成系统,它们可能不兼容。

  • 由于许多方法和测试组合,选择最有效的模型可能具有挑战性。

结论

集成测试是测试层次结构的第二级。在单元测试之后,它给 QA 团队带来了更困难的责任:确定不同的单元如何协同工作以及它们是否工作。

集成测试提供了故障的早期检测,降低了错误成本并加快了产品交付。如果您忽略此步骤,您可能会忽略一个严重的问题,这会降低用户体验或迫使您推迟发布日期。

以上是 集成测试(类型、自上而下和自下而上) 的全部内容, 来源链接: utcz.com/z/355067.html

回到顶部