手动测试


手动测试

手动测试是一种软件测试过程,其中测试用例在不使用任何自动化工具的情况下手动执行。测试人员根据最终用户的观点手动执行的所有测试用例。它确保应用程序是否正常工作,如需求文档中所述。计划和实施测试用例以完成几乎 100% 的软件应用程序。测试用例报告也是手动生成的。

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

在自动测试之前,每个新开发的软件都必须进行手动测试。这种测试需要付出巨大的努力和时间,但它可以确保软件没有错误。手动测试需要了解手动测试技术,但不需要了解任何自动化测试工具。

手动测试是必不可少的,因为软件测试的基础之一是“100% 自动化是不可能的”。

为什么我们需要手动测试

每当应用程序进入市场时,当最终用户使用它时它不稳定或存在错误或问题或产生问题。

如果我们不想面对这类问题,我们需要进行一轮测试,使应用程序无错误且稳定,并向客户交付优质产品,因为如果应用程序无错误,最终用户将更方便地使用该应用程序。

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

手动测试的类型

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

  • 白盒测试
  • 黑盒测试
  • 灰盒测试

手动测试

白盒测试

白盒测试由开发人员完成,他们在将代码交给测试工程师之前检查每一行代码。由于代码在测试期间对开发人员可见,这就是为什么它也被称为白盒测试。

黑盒测试

黑盒测试由测试工程师完成,他们可以根据客户/客户的需求检查应用程序或软件的功能。在这种情况下,执行测试时代码是不可见的;这就是为什么它被称为黑盒测试。

灰盒测试

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

如何执行手动测试

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

软件构建过程

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

手动测试

Note1

  • 一旦我们从 Control version 工具收集文件,我们将使用 build 工具将代码从高级语言编译为机器级语言。编译后,如果文件大小会增加,那么我们将对该特定文件进行压缩并转储到测试服务器中。
  • 这个过程由构建团队开发人员(如果构建团队不在,开发人员可以完成)或测试负责人(如果构建团队直接处理zip并将应用程序安装到测试服务器并通知测试工程师)完成.
  • 通常,我们无法为每个 bug 获得一个新的 Build;否则,大部分时间只会浪费在创建构建上。

Note2

组建团队

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

Build

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

控制版本工具

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

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

构建过程示例

让我们看一个例子来了解如何在真实场景中构建流程工作:

测试工程师一拿到bug,就会发给开发者,他们需要一些时间来分析;之后,他/她只修复了错误(测试工程师不能给出错误的集合)。

开发人员根据他们的时间决定他可以修复多少错误。测试工程师根据自己的需要决定先修复哪个bug,因为测试工程师不能停止测试。

而测试工程师收到邮件,只能通过bug修复列表知道哪个bug被修复了

时间会增加,因为在第一次 Build 时,开发人员应该编写不同功能的代码。最后,他/她只能进行错误修复,并且天数会减少。

手动测试

Note3

测试周期

测试周期是给测试工程师测试每个 Build 的持续时间。

两者构建的区别

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

我们获得新版本的频率

一开始我们是每周一次,但在最新的测试阶段,当应用程序稳定时,我们习惯于每三天、两天或每天一次获得新的Build。

我们得到了多少构建

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

当我们得到错误修复时

一般我们是在测试周期完成后才了解bug修复,或者bug集合在一个build中修复,在下一个build中交接。

手动测试的优势

  • 使用黑盒方法时不需要编程知识。
  • 它用于测试动态变化的 GUI 设计。
  • 测试人员以真实用户的身份与软件交互,以便他们能够发现可用性和用户界面问题。
  • 它确保软件百分百没有错误。
  • 它具有成本效益。
  • 易于新测试人员学习。

手动测试的缺点

  • 它需要大量的人力资源。
  • 这是非常耗时的。
  • 测试人员根据他们的技能和经验开发测试用例。没有证据表明它们是否涵盖了所有功能。
  • 测试用例不能再次使用。需要为每个新软件开发单独的测试用例。
  • 它不提供测试的所有方面的测试。
  • 由于两个团队一起工作,有时很难了解彼此的动机,可能会误导流程。

手动测试工具

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

手动测试

让我们一一了解它们:

加载程序

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

执行 LoadRunner 工具的主要目的是快速对最常见的性能问题来源进行分类。

手动测试

LoadRunner 的特点

  • LoadRunner 工具包含 n 个应用程序,这减少了理解和描述报告的时间。
  • 我们可以使用 LoadRunner 工具获得全面的性能测试报告。
  • 它将降低分布式负载测试的成本,并为部署跟踪提供操作工具。

Citrus

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

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

手动测试

Citrus的特征

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

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

ZAP

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

手动测试

ZAP的特点

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

NUnit

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

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

换句话说,我们可以说 NUnit 工具被完全重新设计,成为许多 .Net 语言品质的优势。例如:

  • 与反射相关的功能。
  • 其他自定义属性。

手动测试

NUnit的特点

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

JIRA

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

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

手动测试

JIRA的特点

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

Sonarqube

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

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

手动测试

Sonarqube的特点

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

  • 它支持多种编程语言,如 C、C++、Python、JAVA、HTML、CSS、VB.NET、PHP、COBOL、PL/SQL 等。
  • 根据 GNU 宽松通用公共许可证,Sonarqube 可免费使用。
  • SonarQube 附属于一些重要的外部工具,如 GitHub、Active Directory、LDAP 等。
  • 由于SonarLint插件,SonarQube 与 Visual Studio、Eclipse 和 IntelliJ IDEA 开发环境合并。

JMeter

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

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

它方便用户或开发人员使用源代码开发其他应用程序。

手动测试

JMeter 的特点

以下是 JMeter 的一些基本特征:

  • 它是平台无关的,它接受 JVM,如Windows、Mac 和 Linux 等。
  • 它支持用户友好的图形用户界面,它是交互式且直接的。
  • 在多种类型的服务器中加载性能测试具有令人难以置信的可扩展性。

Bugzilla

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

许多组织最广泛地使用它来跟踪应用程序的各种错误。

Bugzilla 是一种开源工具,可帮助客户和客户跟踪缺陷。Bugzilla 也被认为是一种测试管理工具,因为在这方面,我们可以轻松地链接其他测试用例管理工具,例如 ALM、质量中心等。

手动测试

Bugzilla 的特点

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

  • 它支持各种操作系统,如 Windows、Linux 和 Mac。
  • 在 Bugzilla 的帮助下,我们可以以多种格式列出错误。
  • 用户偏好可以衡量电子邮件通知。
  • Bugzilla 具有高级搜索功能。

Mantis

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

手动测试

Mantis的特点

特定工具的一些标准功能如下:

  • 借助此工具,我们可以进行全文搜索。
  • 对问题所做更改的审计跟踪。
  • 它提供了版本控制系统集成。
  • 文本字段和注释的修订控制

要获取有关错误跟踪工具的更多详细信息,请参阅以下链接:https : //www.javatpoint.com/defect-or-bug-tracking-tool

TESSY

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

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

Tessy 包含三个主要功能,分别如下:

  • 测试界面编辑器 (TIE)
  • 测试数据编辑器 (TDE)
  • 工作区。

手动测试

TESSY的特点

TESSY 的标准特性如下:

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

概述

在这篇文章中,我们看到了关于手动测试的详细信息,其中包括手动测试的定义、手动测试的必要性、手动测试的类型、手动测试工具、手动测试的过程以及它的一些重要优点和缺点.

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

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

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

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