手动测试

2025年3月17日 | 阅读 12 分钟

手动测试是一种软件测试过程,在此过程中,测试用例在不使用任何自动化工具的情况下被手动执行。所有测试用例都由测试人员根据最终用户的角度手动执行。它确保应用程序是否按需求文档中的说明工作。测试用例经过规划和实施,以完成软件应用程序的几乎100%。测试用例报告也手动生成。

手动测试是最基本的测试过程之一,因为它可以发现软件的可见和隐藏缺陷。预期输出与软件提供的输出之间的差异被定义为缺陷。开发人员修复了缺陷,并将其交给测试人员进行重新测试。

在自动化测试之前,对每个新开发的软件都必须进行手动测试。此测试需要大量精力,但可以确保软件无缺陷。手动测试需要了解手动测试技术,但不需要了解任何自动化测试工具。

手动测试至关重要,因为“100%自动化是不可能实现的”是软件测试的基本原则之一。

为什么我们需要手动测试

每当应用程序进入市场时,它可能不稳定,存在缺陷或问题,或者在最终用户使用时造成问题。

如果我们不想遇到此类问题,我们需要进行一轮测试,使应用程序无缺陷且稳定,并向客户交付高质量的产品,因为如果应用程序无缺陷,最终用户将更方便地使用该应用程序。

如果测试工程师进行手动测试,他们可以从最终用户的角度测试应用程序,并更熟悉产品,这有助于他们编写正确的应用程序测试用例并提供应用程序的快速反馈。

手动测试的类型

手动测试有多种方法。每种技术都根据其测试标准使用。手动测试的类型如下:

  • 白盒测试
  • 黑盒测试
  • 灰盒测试
Manual Testing

白盒测试

白盒测试由开发人员完成,他们会检查代码的每一行,然后再交给测试工程师。由于在测试期间代码对开发人员可见,因此也称为白盒测试。

有关白盒测试的更多信息,请参阅以下链接

white-box-testing

黑盒测试

黑盒测试由测试工程师完成,他们可以根据客户/客户的需求检查应用程序或软件的功能。在此过程中,测试期间代码不可见;因此,它被称为黑盒测试。

有关黑盒测试的更多信息,请参阅以下链接

black-box-testing

灰盒测试

灰盒测试是白盒测试和黑盒测试的结合。它可以由同时了解编码和测试的人执行。如果同一个人为应用程序执行白盒和黑盒测试,则称为灰盒测试。

有关灰盒测试的更多详细信息,请参阅以下链接

grey-box-testing

如何进行手动测试

  • 首先,测试人员观察与软件相关的所有文档,以选择测试区域。
  • 测试人员分析需求文档,以涵盖客户声明的所有需求。
  • 测试人员根据需求文档开发测试用例。
  • 所有测试用例都通过黑盒测试和白盒测试手动执行。
  • 如果出现错误,测试团队会通知开发团队。
  • 开发团队修复错误,并将软件交给测试团队进行重新测试。

软件构建过程

  • 一旦收集了需求,它就会提供给开发团队和测试团队这两个不同的团队。
  • 收到需求后,相关开发人员将开始编写代码。
  • 与此同时,测试工程师理解需求并准备所需文档,此时开发人员可能已完成代码并存储在版本控制工具中。
  • 之后,代码会在 UI 中发生更改,这些更改由一个称为构建团队的独立团队处理。
  • 此构建团队将获取代码,并借助构建工具开始编译和压缩代码。一旦我们得到一些输出,输出将进入 zip 文件,称为构建(应用程序或软件)。每个构建都有一个唯一的编号,例如(B001、B002)。
  • 然后,该特定构建将安装在测试服务器上。之后,测试工程师将通过测试 URL 访问此测试服务器并开始测试应用程序。
  • 如果测试工程师发现任何错误,他/她将向相关开发人员报告。
  • 然后,开发人员将在测试服务器上重现错误并修复错误,然后再次将代码存储在版本控制工具中,并安装新更新的文件并删除旧文件;此过程将一直持续,直到我们获得稳定的构建。
  • 一旦我们获得稳定的构建,它将被移交给客户。
Manual Testing

注1

  • 一旦我们从版本控制工具中收集文件,我们将使用构建工具将代码从高级语言编译为机器语言。编译后,如果文件大小增加,我们将压缩该特定文件并将其转储到测试服务器。
  • 此过程由构建团队开发人员(如果构建团队不存在,开发人员可以完成)或测试负责人(如果构建团队直接处理 zip 文件并将应用程序安装到测试服务器并通知测试工程师)完成。
  • 通常,我们不会为每个错误都获得一个新的构建;否则,大部分时间将仅用于创建构建。

注意事项2

构建团队

构建团队的主要工作是创建应用程序或构建,并将高级语言转换为低级语言。

构建

它是一种软件,用于将代码转换为应用程序格式。它包含一组功能和错误修复,这些功能和错误修复将被移交给测试工程师进行测试,直到其稳定为止。

版本控制工具

它是一种软件或应用程序,用于以下目的:

  • 在此工具中,我们可以保存不同类型的文件。
  • 它始终是安全的,因为我们使用相同的登录凭据访问工具中的文件。
  • 该工具的主要目标是跟踪现有文件的更改。

构建过程示例

让我们看一个例子来理解在实际场景中构建过程是如何工作的

一旦测试工程师发现错误,他们会将其发送给开发人员,开发人员需要一些时间进行分析;之后,他/她只会修复错误(测试工程师无法提供错误的集合)。

开发人员根据其时间决定可以修复多少错误。测试工程师根据其需求决定应先修复哪个错误,因为测试工程师无法停止测试。

并且测试工程师会收到邮件,他们只能通过错误修复列表知道哪些错误已修复。

时间会增加,因为在第一个构建中,开发人员应该用不同的功能编写代码。最后,他/她只能做错误修复,天数会减少。

Manual Testing

注意事项3

测试周期

测试周期是为测试工程师提供测试每个构建的时间段。

两个构建之间的差异

在一个构建中发现的错误可以在任何未来的构建中修复,这取决于测试工程师的需求。每个新构建都是旧构建的修改版本,这些修改可以是错误修复或添加新功能。

我们多久收到一次新构建

最初,我们每周都会收到构建,但在测试的后期,当应用程序趋于稳定时,我们会在 3 天、2 天或每天的基础上收到新的构建。

我们收到多少个构建

如果我们考虑任何项目的持续时间为一年,我们会收到 22-26 个构建。

我们何时收到错误修复

通常,我们只在测试周期完成后才了解错误修复,或者在一组错误修复在一个构建中完成并在下一个构建中移交。

手动测试的优点

  • 使用黑盒方法时,不需要编程知识。
  • 用于测试动态更改的 GUI 设计。
  • 测试人员像真实用户一样与软件进行交互,从而能够发现可用性和用户界面问题。
  • 它确保软件百分之百无错误。
  • 经济高效。
  • 对新测试人员来说容易学习。

手动测试的缺点

  • 需要大量人力资源。
  • 非常耗时。
  • 测试人员根据自己的技能和经验开发测试用例。没有证据表明他们已经涵盖了所有功能。
  • 测试用例无法重复使用。需要为每个新软件开发单独的测试用例。
  • 它不提供所有方面的测试。
  • 由于两个团队协同工作,有时难以理解彼此的意图,这可能会误导过程。

手动测试工具

在手动测试中,单元、集成、安全、性能和错误跟踪等不同类型的测试,我们有 Jira、Bugzilla、Mantis、Zap、NUnit、Tessy、LoadRunner、Citrus、SonarQube 等各种工具可供选择。其中一些工具是开源的,一些是商业的。

有关测试工具的更多信息,请参阅以下链接

software-testing-tools

Manual Testing

让我们一一了解它们

LoadRunner

它是最常用的性能测试工具。LoadRunner 主要用于支持广泛的程序、多种方法和应用程序环境的性能测试。

执行 LoadRunner 工具的主要目的是快速识别性能问题的最常见来源。

Manual Testing

LoadRunner 的功能

  • LoadRunner 工具包含大量的应用程序,可以减少理解和描述报告所需的时间。
  • 使用 LoadRunner 工具,我们可以获得详尽的性能测试报告。
  • 它将降低分布式负载测试的成本,并提供用于部署跟踪的操作工具。

Citrus

Citrus 是一款集成测试工具,是最常用的测试框架。它用Java 编程语言编写。它主要用于请求和响应服务器端和客户端,并验证 XML JSON 文件。

为了完成端到端的用例测试,Citrus 支持多种 HTTP、JMS 和 SOAP 协议。

Manual Testing

Citrus 的特性

以下是 Citrus 工具的一些重要功能

  • 用于发送和接收消息。
  • Citrus 在市场上既有开源版本,也有授权版本。
  • 它提供了低成本的解决方案。
  • 我们可以使用 Citrus 工具对数据库进行身份验证。
  • 它将描述消息序列,提供测试计划,并记录测试覆盖率。
  • 它创建消息并验证响应。

ZAP

ZAP 是一款开源的 Web 应用程序安全扫描器。它代表Zed Attack Proxy。与其他一些工具一样,它也用 JAVA 编程语言编写。它是最有效的开放 Web 应用程序安全项目[OWASP]。

Manual Testing

ZAP 的功能

  • 支持多种操作系统,如 Windows、Linux、OS X。
  • 它具有基于插件的架构。
  • 它包含一个在线市场,允许我们添加新功能或更新功能。
  • ZAP 的 GUI 控制面板易于使用。

NUnit

NUnit 是最常用的单元测试工具之一。它是一个开源工具,主要源自JUnit

它完全用 C# 编程语言编写,适用于所有 .Net 语言

换句话说,我们可以说 NUnit 工具经过完全重新设计,以利用许多 .Net 语言的优势。例如:

  • 反射相关功能。
  • 其他自定义属性。
Manual Testing

NUnit 的特性

  • 它允许将断言作为 Assert 类的一个静态方法。
  • 它支持数据驱动测试。
  • 它支持多种平台,如 .NET Core Xamarin Mobile、Silverlight 和高效框架。
  • NUnit 的能力帮助我们同时执行测试。
  • 它使用控制台运行程序来加载和执行测试。

JIRA

最常用的错误跟踪工具是JIRA,它是一个开源工具。它用于错误跟踪、项目管理和问题跟踪。

在此工具中,我们可以轻松跟踪软件相关的各种错误或缺陷,以及测试工程师产生的错误。

Manual Testing

JIRA 的功能

  • 它是一个节省时间的工具。
  • Jira 用于跟踪缺陷和问题。
  • 它用于建立文档任务。
  • Jira 是跟踪我们文档改进的非常有用的工具。

有关 Jira 工具的完整信息,请参阅以下链接:jira-tutorial

SonarQube

手动测试的另一个测试工具是 SonarQube,它通过持续的代码质量和代码安全性来改进我们的工作流程。它通过插件的使用而具有灵活性。

它完全用 JAVA 编程语言编写。它提供完全自动化的评估,并与 Ant、Maven、Gradle、MSBuild 和持续集成工具集成。SonarQube 能够记录指标历史并提供演化图。

Manual Testing

SonarQube 的功能

以下是 SonarQube 工具的一些重要功能

  • 它支持多种编程语言,如 C、C++、Python、JAVA、HTML、CSS、VB.NET、PHP、COBOL、PL/SQL 等。
  • 在 GNU Lesser General Public License 下,SonarQube 是免费提供的。
  • SonarQube 与一些重要的外部工具如 GitHub、Active Directory、LDAP 等集成。
  • 由于SonarLint插件,SonarQube 与 Visual Studio、Eclipse 和 IntelliJ IDEA 开发环境集成。

JMeter

JMeter 是一款开源工具,用于测试静态和动态资源以及动态 Web 应用程序的性能。

它完全基于 JAVA 应用程序设计,用于加载功能测试行为并衡量应用程序的性能。

它允许用户或开发人员使用源代码来开发其他应用程序。

Manual Testing

JMeter 的功能

以下是 JMeter 的一些基本特征

  • 它独立于平台,接受 JVM,如Windows、Mac 和 Linux 等
  • 它支持用户友好的 GUI,该 GUI 具有交互性和简洁性。
  • 它是高度可扩展的,可以加载多种类型的服务器的性能测试。

有关 JMeter 的更多信息,请参阅以下链接

jmeter-tutorial.

Bugzilla

手动测试中使用的另一个错误跟踪工具是Bugzilla

它被许多组织广泛用于跟踪应用程序的各种错误。

Bugzilla 是一款开源工具,可帮助客户和用户跟踪缺陷。Bugzilla 也被视为一个测试管理工具,因为在此工具中,我们可以轻松地链接 ALM、Quality Centre 等其他测试用例管理工具。

Manual Testing

Bugzilla 的功能

Bugzilla 具有一些附加功能,可以帮助我们轻松报告错误

  • 支持 Windows、Linux 和 Mac 等各种操作系统。
  • 借助 Bugzilla,我们可以以多种格式列出错误。
  • 用户首选项可以控制电子邮件通知。
  • Bugzilla 具有高级搜索功能。

Mantis

Mantis 是一个基于 Web 的错误跟踪系统。ManitsBT 代表Mantis Bug Tracker。它用于跟踪软件缺陷,并用 PHP 编程语言实现。它也是一个开源工具。

Manual Testing

Mantis 的功能

该工具的一些标准功能如下

  • 借助此工具,我们拥有全文搜索功能。
  • 对问题所做更改的审计日志。
  • 它提供了版本控制系统的集成。
  • 文本字段和注释的修订控制

有关错误跟踪工具的更多详细信息,请参阅以下链接:defect-or-bug-tracking-tool

Tessy

另一个集成测试工具是Tessy,它用于对嵌入式软件执行集成和单元测试。它还有助于我们发现软件或应用程序的代码覆盖率。

它可以轻松管理整个测试组织,包括业务需求、测试管理、覆盖率量化和可追溯性。

Tessy 包含三个主要功能,如下所示:

  • 测试接口编辑器 (TIE)
  • 测试数据编辑器 (TDE)
  • 工作区。
Manual Testing

TESSY 的功能

TESSY 的标准功能如下

  • 它会生成测试执行结果的测试报告。
  • 它支持 C 和 C++ 等多种编程语言。
  • Tessy 用于评估函数的接口并描述该函数使用的变量。

有关集成测试工具的更多信息,请参阅以下链接:integration-testing-tools

概述

在本文中,我们详细了解了手动测试,包括手动测试的定义、手动测试的必要性、手动测试的类型、手动测试工具、手动测试过程以及它的一些重要优点和缺点。

最后,我们可以说,这是一个测试工程师需要非常坚持、创新和响应迅速的过程。

在手动测试中,测试工程师需要像最终用户一样思考和执行。

为了实施手动测试,测试工程师需要熟练的技能和想象力。他们需要考虑多种情况或场景来测试特定应用程序。

尽管目前我们可以在自动化测试的帮助下测试几乎所有应用程序,但手动测试仍然是必需的,因为它是软件测试的基础。


下一个主题自动化测试