软件工程质量问答 #1



问题:请简述软件测试过程。

答案: - 软件测试可以定义为一个旨在发现程序实现中问题的过程。对软件项目的执行至关重要。根据 IEEE 的定义,测试是指:

通过手动或自动的方式来执行或评估系统或其组件的过程,以

  • 审核软件测试完成的必要需求。

  • 获取预期结果和实际结果之间的差异值。

为了简化软件测试过程,需要将活动分解成更小的部分。通常使用这种方法,并将系统划分为子系统。所有这些子系统在系统测试开始之前都单独进行测试。在软件测试过程中,会执行三个步骤。在单元测试步骤中,单个模块是关注的重点。单元测试完成后,所有单个模块将相互组合。在此步骤之后,软件测试过程开始,开发人员将重点放在整个软件系统上。

单元测试

这是软件测试过程的第一步,程序员在此步骤中确认模块执行的功能。软件具有最小的单元,称为模块。单元测试在源代码开发完成后开始,并验证语法是否正确。单元测试的主要目标是获得能够进行测试并确认其是否工作的最小单元。每个模块都单独测试。测试完所有单个模块后,它们将相互组合。在单元测试过程中进行了一些测试,包括:

  • 模块性质测试 - 在模块性质测试中,我们验证在为单元测试指定的条件下,信息流在被测模块中是否正常。

  • 可执行性测试 - 此检查点旨在计算响应时间段、开始时间、结束时间以及整个过程中的时间和链接之间的通信。

  • 本地数据结构测试 - 在此步骤中,检查本地数据的存储是否以系统化的方式收集所有数据和信息。

  • 边界测试 - 此测试用于确保软件在用户提供的条件下提供的信息是否正确。

  • 独立路径测试 - 在此测试中,检查给定的任务是否正确执行并正常工作。只有借助此测试才能检查它。

  • 错误处理测试 - 过程中发生的错误是否得到正确处理。此类信息在此测试中提供。

单元测试过程

在单元测试过程中,需要有关其他模块的数据或信息。借助驱动程序和存根,我们可以轻松获取。提供测试并将其传递到模块测试位置的程序员称为驱动程序。用于替换模块和被测模块下属的程序称为存根。存根和驱动程序是单元测试过程的必要条件。如果它们具有简单性,则可以减少存根和驱动程序的数量。

Unit Testing Process

集成测试

集成测试是软件测试的下一步。在此测试中,许多经过单独测试的模块组合成子系统,然后进行测试。单元测试的主要目标是获取有关独立模块工作条件是否正常的信息,但单元测试的主要缺点是没有这样的条件来保证这些模块在作为整体系统连接后会提供正面的结果。因此,这是执行集成测试的原因。我们需要检查以下可能影响模块集成的错误。

  • 外部数据可能导致问题。

  • 模块外的测试可能偏离预期。

  • 集成结果可能不利于该过程或模块。

通常,集成测试使用两种方法。

自顶向下集成测试

这种方法具有广泛的思路。它需要先测试高级模块并进行集成。在这种方法下,模块被替换并提供新的存根。此过程继续到该级别,直到它集成所有模块并进行测试。在这种方法中,使用了高级逻辑和数据流,从而减少了对驱动程序的需求。

Top down Integration Testing

优点

  • 首先测试上层模块。

  • 支持“广度和深度”两种方法。

  • 最多只需要一个驱动程序。

缺点

  • 低级模块需要很长时间才能验证。

  • 在存根中找不到合适的数据来反馈给调用模块。

  • 对有限功能的支持水平较低。

  • 需要复杂的测试管理来管理存根。

自底向上集成测试

此方法重视低级模块。在此级别,模块首先进行测试,并借助驱动程序进行首次集成。我们可以添加一个或多个模块,将它们组合或连接在一起。在所有模块集成后,此过程结束。

Bottom up Integration Testing

优点

  • 当我们用实际模块开始此过程时,不需要存根。

  • 在此方法中,低级模块尽早得到验证。

缺点

  • 需要复杂的测试管理来管理驱动程序。

  • 低级模块支持有限功能的发布。

  • 高级模块的验证需要时间。

系统测试

系统测试过程是软件系统的基础。系统测试的主要目标是软件满足客户需求。系统测试是一系列对整个系统的完整测试,其基础是计算机系统。每个任务都有一个单独的目标和一系列不同的测试,这清楚地表明系统的所有部分都以系统化的方式组合在一起,并且运行良好。系统测试中有三种类型的测试。

  1. 恢复测试 - 恢复测试的设计基础是我们可以很容易地观察到,如果系统发生故障,系统恢复其点所需的速度有多快。我们有很多程序可以快速从错误中恢复并在指定时间开始或运行。故障有很多原因,但恢复测试阐明了系统涵盖所有故障并运行良好。人们总是希望系统能够在没有人工干预的情况下快速恢复。恢复系统确定修复条件是否可以接受。

  2. 安全测试

    • 在软件中创建了一个保护性应用程序,借助此应用程序,它可以防止本地用户和无权使用系统的人员。

    • 借助安全测试,其他计算机无法访问此系统及其信息。

  3. 压力测试 - 压力测试不能在正常条件下进行。借助它,系统在需求快速增加或减少的条件下使用。

    • 当输入速度超过预期时,输入功能如何执行。

    • 压力测试还涉及在点击时进行更多过度的数据搜索和查找。

广告