软件测试
SDLC模型
测试类型
测试方法
白盒技术
黑盒技术
黑匣子类型
功能类型
非功能性类型
测试用例开发
测试技术
测试管理
缺陷跟踪
测试分类
测试工具

集成测试

集成测试

集成测试是继单元测试之后的软件测试过程的第二级。在此测试中,软件的单元或单个组件在一组中进行测试。集成测试级别的重点是暴露集成组件或单元之间交互时的缺陷。
单元testing 使用模块进行测试,这些模块在集成测试中被组合和测试。本软件由多个软件模块开发而成,这些模块由不同的编码员或程序员编写。集成测试的目标是检查所有模块之间通信的正确性。
Integration testing
一次所有组件或模块都独立工作,那么我们需要检查依赖模块之间的数据流,称为集成测试。
让我们看一个银行的示例示例应用程序,正如我们在下面的金额转移图片中看到的。
Integration testing 首先,我们将作为用户P登录进行金额转账并发送Rs200金额,屏幕上应显示金额转账成功的确认信息。现在以 P 身份注销并以用户 Q 登录,然后转到金额余额页面并检查该帐户中的余额 = 当前余额 + 已收余额。因此,集成测试成功。 此外,我们还会检查 P 用户帐户中的余额是否减少了 200 卢比。 点击交易,在 P 和 Q 中,应显示有关金额转移的数据和时间的消息。

集成测试指南

只有在应用程序的每个模块上完成功能测试后,我们才会进行集成测试。 我们总是通过逐个模块来进行集成测试,以便遵循正确的顺序,而且我们不会错过任何集成场景。 首先,确定可以根据测试数据准备可执行测试用例的测试用例策略。 检查应用的结构和架构,确定要首先测试它们的关键模块,并确定所有可能的场景。 设计测试用例以详细验证每个界面。 选择用于测试用例执行的输入数据。输入数据在测试中发挥着重要作用。 如果我们发现任何错误,则将错误报告传达给开发人员并修复缺陷并重新测试。 执行正面和负面的集成测试。
这里正测试意味着如果总余额为 15 卢比,则 000 和我们正在转移 1500 卢比并检查金额转移是否正常。如果是,那么测试将通过。
和否定测试意味着,如果总余额为 15, 000 卢比,我们正在转移 20, 000 卢比并检查金额是否转移发生与否,如果不发生,则测试通过。如果发生这种情况,则说明代码中存在错误,我们会将其发送给开发团队以修复该错误。
注意: 这个世界上的任何应用程序都会强制进行功能测试,而集成测试只有在模块相互依赖时才会进行。每个集成场景都必须有源→数据→目的地。只有将数据保存在目标中,任何场景都可以称为集成场景。
例如: 在 Gmail 应用程序中,Source 可以是 Compose、Data 可以是 电子邮件,目的地 可以是 收件箱。

示例集成测试

假设我们有一个 Gmail 应用程序,我们在其中执行集成测试。
首先,我们将进行功能测试 <登录页面上的 strong> ,其中包括各种组件,例如用户名、密码、提交和取消按钮。那么只有我们才能进行集成测试。
不同的集成场景如下:
集成测试
场景 1:
首先,我们以 P 用户身份登录,然后单击 撰写 邮件并对特定组件执行功能测试。 现在我们点击发送并检查保存草稿。 之后,我们向Q发送邮件,并在P的Send Items文件夹中验证是否有发送邮件. 现在,我们将以 P 的身份注销,以 Q 的身份登录,然后转到收件箱并验证邮件是否已到达。
Secanrios2: 我们还对垃圾邮件文件夹进行集成测试。如果特定联系人已被标记为垃圾邮件,则该用户发送的任何邮件都应进入垃圾邮件文件夹,而不是收件箱。
注意: 我们将对所有功能进行功能测试,例如发送邮件、收件箱等。
如下图所示,我们将执行功能测试 用于所有文本字段和每个功能。然后我们将对相关功能进行集成测试。我们首先测试添加用户,用户列表,删除用户,编辑用户,然后搜索用户。
Integration testing
注意:
有些功能,我们可能只执行功能测试,有些功能我们同时执行功能和集成测试基于功能的要求。 确定优先级至关重要,我们应该在所有阶段执行它,这意味着我们将打开应用程序并选择需要首先测试的功能。然后转到该功能并选择必须首先测试的组件。转到这些组件并确定要首先输入哪些值。
并且不要在任何地方都应用相同的规则,因为测试逻辑因功能而异。
在执行测试时,我们应该完全测试一个功能,然后再继续测试另一个功能。 在这两个功能中,我们必须仅进行正面集成测试或同时进行正面和负面集成测试,这也取决于功能需求。

集成测试背后的原因

虽然软件应用的所有模块都已经在单元测试中进行了测试,但由于以下原因,错误仍然存​​在:
每个模块均由个别软件开发人员设计,其编程逻辑可能与其他模块的开发人员不同;集成测试对于确定软件模块的工作至关重要。 检查软件模块与数据库的交互是否有误。 可以在模块开发时更改或增强需求。这些新需求可能不会在单元测试级别进行测试,因此集成测试成为强制性的。 软件模块之间的不兼容可能会导致错误。 测试硬件与软件的兼容性。 如果模块之间的异常处理不充分,就会产生错误。

集成测试技术

任何测试技术(黑盒、白盒和灰盒)都可以用于集成测试;下面列出了一些:

黑盒测试

状态转换技术 决策表技术 边界值分析 全对测试 因果图 等价分区 错误猜测

白盒测试

数据流测试 控制流测试 分支覆盖测试 决策覆盖测试

集成测试的类型

集成测试可以分为两部分:
增量集成测试 非增量集成测试 Integration testing

增量方法

在增量方法中, 模块按升序一一或根据需要添加。所选模块必须在逻辑上相关。通常,添加两个或两个以上的模块并进行测试以确定功能的正确性。这个过程一直持续到所有模块测试成功。
OR
在这种类型的测试中,依赖模块之间有很强的关系。假设我们采用两个或更多模块并验证它们之间的数据流是否正常工作。如果是,则添加更多模块并再次测试。
Integration testing
例如: 假设我们有一个 Flipkart 应用程序,我们将进行增量集成测试,应用程序的流程是这样的:
Flipkart→登录→首页→搜索→添加购物车→付款→注销
增量集成测试通过进一步的方法进行:
自上而下的方法 自下而上的方法

Top-Down Approach

自上而下的测试策略处理的是用较低级别的模块测试较高级别的模块直到成功完成测试的过程所有模块中。由于首先测试了关键模块,因此可以及早发现和修复主要设计缺陷。在这种方法中,我们将逐个或一个个地添加模块,并按照相同的顺序检查数据流。
Integration testing
在自上而下的方法中,我们将确保我们添加的模块是前一个模块的孩子,就像孩子 C 是孩子 B 的孩子等等,如下图所示:
Integration testing
优点:
识别缺陷很困难。 早期原型是可能的。
缺点:
由于存根数量很多,所以变得相当复杂。 较低级别的模块测试不充分。 首先测试关键模块,以减少出现缺陷的机会。

Bottom-Up Method

自下而上的测试策略处理低级模块与高级模块一起测试直到测试成功完成的过程所有模块中。顶级关键模块最后进行测试,因此可能会导致缺陷。或者我们可以说我们将从底部到顶部添加模块并以相同的顺序检查数据流。
Integration testing
在自底向上的方法中,我们将尽可能确保我们添加的模块是前一个的父级见下图:
Integration testing
优势
很容易识别缺陷。 无需等待所有模块开发完毕,节省时间。
缺点
关键模块最后进行测试,因此可能会出现缺陷。 不可能有早期原型。
在此,我们有一种附加方法,称为混合测试。

混合测试方法

在这种方法中,自上而下和自下而上方法结合起来进行测试。在这个过程中,顶层模块与底层模块同时测试,底层模块与高层模块同时测试。由于每个模块接口都经过测试,出现缺陷的可能性较小。
Integration testing
优势
混合方法提供自下而上和自上而下两种方法的功能。 这是最节省时间的方法。 它提供对所有模块的完整测试。
缺点
此方法需要更高的浓度,因为该过程同时在两个方向进行。 复杂的方法。

非增量集成测试

当数据流非常复杂并且很难找到谁是父级和父级时,我们会采用这种方法。谁是孩子。在这种情况下,我们将在所有其他现有模块的任何模块中创建数据并检查数据是否存在。因此,它也被称为大爆炸法。
Integration testing

Big Bang Method

在这种方法中,测试是通过一次集成所有模块来完成的。对于小型软件系统来说很方便,如果用于大型软件系统,缺陷识别是困难的。
因为这个测试可以在所有模块完成后进行,因为测试团队执行这个的时间较少过程,以便内部链接的接口和高风险的关键模块很容易被遗漏。
Integration testing
优点:
对于小型软件系统来说很方便。
缺点:
识别缺陷很困难,因为找出错误的来源是一个问题,而且我们不知道错误的来源。 容易遗漏小模块。 用于测试的时间非常少。 我们可能会错过一些接口的测试。
让我们看一些例子,以更好地理解非增量集成测试或大爆炸方法:
Example1
In在下面的示例中,开发团队开发应用程序并将其发送给测试团队的 CEO。然后 CEO 将登录应用程序并生成用户名和密码并向经理发送邮件。之后,CEO 会告诉他们开始测试应用程序。
然后经理管理用户名和密码并生成用户名和密码并将其发送给测试负责人 . 测试主管会将其发送给测试工程师以进行进一步测试。从 CEO 到测试工程师的这个命令是自上而下的增量集成测试。
同样,当测试工程师完成测试后,他们将报告发送给测试主管,然后向经理提交报告,经理将向CEO发送报告。这个过程被称为自下而上的增量集成测试,如下图所示:
注意: 增量集成测试(I.I.T) 和非增量集成测试的组合被称为三明治测试。
Integration testing
Example2
以下示例演示了 Gmail 收件箱 的主页,我们在其中单击 收件箱 链接,然后我们将移至收件箱页面。这里我们要做非增量集成测试,因为没有父子概念。
Integration testing
注意
存根和驱动程序
存根 是一个虚拟模块,它接收数据并创建大量可能的数据,但它的表现就像一个真正的模块。当一个数据从模块 P 发送到存根 Q 时,它在没有确认和验证的情况下接收数据,并为给定的数据产生估计的结果。
Integration testing
驱动程序的功能用于验证来自P的数据并将其发送到存根,并检查存根中的预期数据并将其发送到P。
驱动程序 负责设置测试环境并负责通信、评估结果和发送报告。我们从不在测试过程中使用存根和驱动程序。
在白盒测试,自下而上的集成测试是理想的,因为编写驱动程序是可访问的。在黑盒测试中,没有优先考虑任何测试,因为它取决于应用程序。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4