集成测试2025年3月17日 | 阅读 10 分钟 集成测试是软件测试过程中的第二个阶段,紧随单元测试之后。在此测试中,软件的单元或独立组件被分组进行测试。集成测试阶段的重点是在集成组件或单元之间交互时暴露缺陷。 单元测试使用模块进行测试,在集成测试中将这些模块组合起来进行测试。软件由许多软件模块组成,这些模块由不同的编码员或程序员编写。集成测试的目标是检查所有模块之间通信的正确性。 ![]() 一旦所有组件或模块都能独立工作,我们就需要检查依赖模块之间的数据流,这就是所谓的集成测试。 让我们来看一个银行应用程序的示例,如下图所示的金额转账。 ![]()
集成测试指南
这里正面测试意味着,如果总余额为15,000卢比,而我们转账1500卢比,并检查金额转账是否正常工作。如果有效,则测试通过。 而负面测试意味着,如果总余额为15,000卢比,而我们转账20,000卢比,并检查金额转账是否发生,如果不发生,则测试通过。如果发生,则代码中存在错误,我们将将其发送给开发团队进行修复。 注意:世界上任何应用程序都必须进行功能测试,而集成测试仅在模块相互依赖时才进行。每个集成场景都必须包含源→数据→目标。任何场景,如果数据被保存在目标中,都可以称为集成场景。例如:在Gmail应用程序中,源可以是撰写,数据可以是电子邮件,而目标可以是收件箱。 集成测试示例假设我们有一个Gmail应用程序,我们在其中执行集成测试。 首先,我们将对登录页面进行功能测试,其中包括各种组件,如用户名、密码、提交按钮和取消按钮。在此之后,我们才能执行集成测试。 不同的集成场景如下 ![]() 场景1
场景2:我们还对垃圾邮件文件夹执行集成测试。如果特定的联系人被标记为垃圾邮件,则该用户发送的任何邮件都应进入垃圾邮件文件夹,而不是收件箱。 注意:我们将对所有功能执行功能测试,例如已发送邮件、收件箱等。正如我们在下图中所看到的,我们将对所有文本字段和所有功能执行功能测试。然后,我们将对相关功能执行集成测试。我们首先测试添加用户、用户列表、删除用户、编辑用户,然后是搜索用户。 ![]() 注意
集成测试的原因尽管软件应用程序的所有模块已经在单元测试中进行了测试,但由于以下原因仍然存在错误
集成测试技术任何测试技术(黑盒、白盒和灰盒)都可以用于集成测试;下面列出了一些 黑盒测试
白盒测试
集成测试的类型集成测试可分为两部分
![]() 增量方法在增量方法中,模块按升序一个接一个地添加,或根据需要添加。选定的模块必须在逻辑上相关。通常,会添加两个或两个以上模块并进行测试以确定功能的正确性。该过程一直持续到所有模块的成功测试。 或 在此类测试中,依赖模块之间存在很强的关系。假设我们选择两个或多个模块,并验证它们之间的数据流是否正常工作。如果正常,则添加更多模块并再次测试。 ![]() 例如:假设我们有一个Flipkart应用程序,我们将执行增量集成测试,应用程序的流程如下 Flipkart→登录→首页→搜索→加入购物车→付款→注销 增量集成测试通过以下方法进行
自顶向下方法自顶向下测试策略处理一种过程,在该过程中,高级模块与低级模块一起进行测试,直到所有模块的测试成功完成。主要设计缺陷可以及早发现和修复,因为关键模块首先进行测试。在此类方法中,我们将增量地或一个一个地添加模块,并按相同顺序检查数据流。 ![]() 在自顶向下方法中,我们将确保我们添加的模块是上一个模块的子模块,例如子模块C是子模块B的子模块,依此类推,正如我们在下图中所看到的 ![]() 优点
缺点
自底向上方法自底向上测试策略处理一种过程,在该过程中,低级模块与高级模块一起进行测试,直到所有模块的测试成功完成。顶级关键模块最后进行测试,因此可能导致缺陷。或者,我们可以说,我们将从底部到顶部添加模块,并按相同顺序检查数据流。 ![]() 在自底向上方法中,我们将确保我们添加的模块是上一个模块的父模块,正如我们在下图中所看到的 ![]() 优点
缺点
在此,我们有一个称为混合测试的附加方法。 混合测试方法在此方法中,结合了自顶向下和自底向上的测试方法。在此过程中,高级模块与低级模块同时进行测试,低级模块与高级模块同时进行测试。由于每个模块接口都经过测试,因此发生缺陷的可能性较小。 ![]() 优点
缺点
非增量集成测试当数据流非常复杂且难以确定谁是父模块、谁是子模块时,我们将采用此方法。在这种情况下,我们将在任何模块中创建数据,然后对所有现有模块进行测试,并检查数据是否存在。因此,它也被称为大爆炸方法。 ![]() 大爆炸方法在此方法中,通过同时集成所有模块来完成测试。它适用于小型软件系统,如果用于大型软件系统,则识别缺陷很困难。 由于此测试可以在所有模块完成后进行,因此测试团队执行此过程的时间很短,从而很容易错过内部链接的接口和高风险的关键模块。 ![]() 优点
缺点
让我们来看一些例子,以便更好地理解非增量集成测试或大爆炸方法 示例 1 在下面的例子中,开发团队开发应用程序并将其发送给测试团队的CEO。然后CEO将登录该应用程序并生成用户名和密码,然后将电子邮件发送给经理。之后,CEO将让他们开始测试该应用程序。 然后,经理管理用户名和密码,生成用户名和密码,并将其发送给测试负责人。然后测试负责人将其发送给测试工程师进行进一步的测试。这个从CEO到测试工程师的顺序是自顶向下增量集成测试。 同样,当测试工程师完成测试后,他们会将报告发送给测试负责人,然后由测试负责人将报告提交给经理,经理会将报告发送给CEO。这个过程被称为自底向上增量集成测试,正如我们在下图中所看到的 注意:增量集成测试(I.I.T)和非增量集成测试的组合称为三明治测试。![]() 示例 2 下面的例子展示了Gmail收件箱的主页,我们单击收件箱链接,然后会转到收件箱页面。在这里,我们必须执行非增量集成测试,因为没有父子概念。 ![]() 注意 存根和驱动程序 存根是一个虚拟模块,它接收数据并创建大量可能的虚构数据,但它的行为就像一个真实模块。当数据从模块P发送到存根Q时,它会接收数据而不进行确认和验证,并为给定的数据产生估计的结果。 ![]() 驱动程序的作用是验证从P传来的数据并将其发送给存根,同时检查来自存根的预期数据并将其发送回P。 驱动程序负责设置测试环境,并负责通信、评估结果和发送报告。我们从不将存根和驱动程序用于测试过程。 在白盒测试中,自底向上集成测试是理想的选择,因为编写驱动程序比较容易。而在黑盒测试中,没有偏好,因为它取决于应用程序。 下一个主题系统测试 |
我们请求您订阅我们的新闻通讯以获取最新更新。