无论你是为自己公司的成员还是为广泛的客户群编码软件,拥有正确的测试实践和框架,无论是手动、自动化还是混合测试,都能带来一致的软件质量,提高声誉和效率。
根据你工作的公司,很多测试都是以手动测试的形式进行的。
了解更多关于什么是手工测试,什么公司用手工测试,以及一系列关于软件测试过程的其他重要事实。
什么是人工测试?
手工测试是软件测试的一种类型,在这种测试中,测试人员在没有任何自动化工具的帮助下手工执行测试案例。
公司使用人工测试作为识别其软件中的错误或问题的方法。 虽然有些人把这描述为一种简单或原始的测试形式,但它最终确定了程序的功能,而不需要使用第三方测试工具。
所有形式的软件测试都有一些人工方面的问题,因为有一些应用程序的功能,如果没有一些人工干预,根本不可能测试。
1.什么时候需要做手工测试?
开发人员使用手工测试有几个阶段,首先是在整个基本功能开发阶段。
当软件的基本功能在开发中时,软件开发人员手动测试程序的每个部分是否工作,因为这比为代码中相当简单的部分创建测试用例要快。
人工测试也普遍存在于开发的后期阶段,当一个程序已经创建了用户界面。UI测试包括观察现实生活中的用户对菜单的设计方式和系统的运行方式的反应。
由于这涉及到大量的定性数据和个人意见,而不是纯粹的定量指标,手动测试是获得对产品更大程度的洞察力的理想选择。
2.当你不需要做手工测试时
有几种情况下,使用人工测试将花费比必要的更多的时间和精力,其中第一个情况是在数据库测试中。
数据库处理大量的数据,人工输入这些数据将花费大量时间,对一个组织来说是低效的。
在这些情况下,使用自动化系统是理想的,因为它们可以在有限的时间内处理大量的数据包。
人工测试在负载测试等领域也不太有用,在这些领域,开发人员完成测试,看他们的软件如何处理大量的用户负荷。
对于需要彻底评估的在线应用程序和带有服务器的程序来说,往往是这种情况。 完成人工测试需要很多人同时访问一个应用程序,这可能导致严重的劳动力成本,而自动软件测试系统可以以更低的成本完成这项服务。
3.谁参与了手工测试?
参与手工测试的工作人员取决于你所工作的公司的性质。
一些参与手工测试过程的人,除了你发现这些角色的那种开发团队之外:
– 开发者:
开发人员持续参与这一过程,测试软件的基本功能,并根据QA测试员的反馈对代码进行更新。
开发人员完成了大量的手工测试,因为他们负责在软件开发的最初阶段让模块以高标准工作。
– 质量保证测试员
存在于较大的团队中,QA测试人员专门为公司完成测试,并确保应用程序按照客户的期望运行。
QA测试员主要在开发的测试、集成和维护阶段发挥重要作用,从开发人员自己手中接过手动测试,他们在整个实施过程中进行测试。
– 质量评估经理
在最大的开发公司工作,QA经理将测试人员分配到项目的具体任务和领域。
他们还负责建立一个需要完成的事项清单,并阅读测试报告。 这在人工测试中尤其重要,因为工作人员的满意度可以提供好得多的结果。
我们用手工测试来测试什么?
手工测试检查的软件有几个不同的方面,由于测试的具体挑战,每一个方面在使用手工测试时都会更好。
除了手动测试在此蓬勃发展的原因外,你从使用手动测试中受益的一些主要功能包括:
1.基本功能
软件测试过程中最早的部分之一是考察一个软件的基本功能。
在这个阶段,开发人员或测试人员查看代码的一个功能模块,评估它是否按预期工作。 由于这些模块的规模较小,值得专注于手动测试,因为自动化会花费太长时间。
这方面的一个例子是一个数据库软件,测试人员将一个数据放入函数中,并已经知道预期的输出。
如果两者相吻合,则测试成功。 在这个阶段的测试为公司的其他工作打下了坚实的基础。
2.UI设计
UI指的是一个软件的用户界面,或者说是用户可用的菜单、按钮和互动性。
UI测试的重点是UI的工作方式,以及它是否是一种让用户感到舒适的工作方式,包括用户是否可以与所有的功能进行交互,以及菜单是否美观。
人工测试在这个阶段是必要的,因为诸如界面是否好看这样的定性信息并不是自动化程序所擅长的。
3.渗透测试
渗透测试是指测试一个软件包,以了解外部人员通过非法手段访问该软件的难易程度。
软件自动化的重点是遵循几个特定的步骤,完成已经是应用程序的一部分的过程,而不是探索新的领域,这是安全测试的必须。
例如,一家公司可能雇用一名道德黑客来评估他们的软件,并寻找恶意方可能有的任何机会来访问用户数据。
在GDPR作为整个欧洲法律的一部分被颁布后的几年里,这一点越来越重要。
4.探索性测试
探索性测试指的是只需要完成一次或两次的测试,得到这个名字是因为它是 “探索 “软件任何意外功能或错误的一部分。
人工测试更适合这种情况,因为编写测试用例的代码需要时间,而有人手动进入软件并检查它需要的时间更少。
这方面的一个例子是,当一个开发者想检查某个功能是否被正确地集成,通过一个测试来验证数据在程序中的正确移动。
手工测试的生命周期
手工测试的生命周期有几个阶段,手工测试被用来检查软件包的广泛的方面。
手工测试的生命周期中的一些阶段包括:
– 规划
计划一轮测试,这包括评估应用程序的要求,完成的具体测试和你测试软件的构建。
这个阶段包括编写任何测试用例供人工测试员完成,并创建一个测试环境。 要彻底,以避免手工测试人员意外地以不同的方式进行测试。
– 测试:
完成测试。 这涉及到多次通过测试案例以获得一致的数据,并记下你得到的所有信息。
如果你与测试用例有任何不同,请记下如何和为什么。 变化在端到端测试中最为常见,但所有的手动测试都会在测试人员的工作方式上出现一些差异。
– 分析:
分析你从测试中得到的所有结果。 这包括找到软件中的错误是什么以及问题的潜在原因。
超越简单的功能,整合定性的信息,如考虑应用程序的设计。
定性信息在人工测试中特别兴旺,测试人员产生的描述性数据可以告知开发人员微小的调整,从而极大地改善某人的应用体验。
– 实施:
利用以前的报告来实施一系列的变化。 这可能是一个漫长的过程,这取决于变化,开发人员对代码进行实验,以提供对以前版本中存在的错误的解决方案。
当使用手动测试时,开发人员从与测试人员讨论所有的变化中获得额外的好处。 这有助于双方正确理解需要调整的内容以及如何调整,无论这是个功能上的还是设计上的改变。
– 重新开始规划:
当开发人员正在为以前的测试中的问题创建一个修复程序时,为下一组测试做计划。 这包括测试最新的更新,并试图重现上一个版本中存在的错误。
有了这种不断循环的测试,意味着软件一直在改进,而不是静止不动。 人工测试可能感觉需要很长的时间,但从它提供的重复测试的灵活性和连续性来看,投资回报率很高。
手工测试的好处
在软件开发公司中使用人工测试有很多好处,从软件本身的质量到项目对公司财务的影响都是如此。
在公司中使用人工测试的一些好处包括:
1.更大的灵活性
为了完成测试自动化,你需要一个QA分析员进入一个软件并编码一个测试用例,每次都要完成一套精确的步骤。
尽管这有时是有益的,但人类测试人员可以在调查之前就通过一个过程并注意到一些不合适的地方,而且不需要改变一行代码。
这大大增加了你的测试的灵活性,并意味着你发现了你的程序的问题,否则会被忽视,有更大的机会来解决这些问题。
2.定性信息
定性信息指的是描述事物的信息,这是人类测试人员可以提供给开发团队的一种信息。
手动测试员可以让公司知道某个菜单是否感觉 “笨重 “并解释原因,而自动化程序则无法向开发人员提供这种洞察力。
这意味着,通过在其工作流程中实施手动测试,公司可以显著提高应用程序的标准,而在其流程中完全使用测试自动化时,他们将难以做到。
3.不受环境的限制
自动化测试依赖于对现有平台的使用,有些平台有相对严格的限制。
一些(尽管不是全部)平台面临的限制包括不能与Linux等平台一起工作,只能与某种编码语言一起工作,以及只能处理一定数量的任务。
当你在测试过程中与人合作时,这些限制有效地消失了。 你只受限于你的手动测试人员的技能,而不是任何技术问题。
这有助于你创建一个测试策略,在不需要妥协的情况下更彻底地检查一个程序。
4.允许进行实用性测试
可用性测试是评估一个软件是否 “可用 “的测试类型,包括它对终端用户的外观和感觉。
这种类型的测试超出了字面上评估一项功能是否可以使用的范围,而是考察是否有人会选择使用它而不是竞争对手的产品。
实施人工可用性测试为公司提供了更大的洞察力,有助于做出调整,使应用程序更具竞争力,这是自动化无法为开发团队提供的。
手工测试的挑战
与作为开发者的任何类型的过程一样,使用手动测试作为质量保证工具也有一些挑战。
通过意识到这些挑战,你可以调整你在手动测试软件时使用的技术,防止这些问题造成严重的问题,并在过程结束时提高程序的标准。
公司在使用人工测试时面临的一些主要挑战包括:
1.测试人员的技能水平
要处理的第一个主要挑战是一个团队中所有手动测试人员的所需技能水平。
有了优秀的人工测试人员,公司看到了明显的好处,因为他们能更快地找到错误,并能安全地知道他们的软件能按预期工作。 最好的公司总是在寻找处于该领域前沿的手动测试人员,以保证更高水平的性能。
作为一个测试人员,要始终寻求学习和发展这些技能。 技能的提高意味着你为公司带来更多的价值,人工测试可以发现更多的错误并改善用户体验。 最好的手工测试来自于花时间磨练自己技术的测试人员。
2.测试的成本
对于各种规模的企业来说,人工测试是一个常见的过程,但根据你使用人工测试的方式,成本会越来越高。
例如,一个公司如果有几个高技能的测试人员在账上,如果重复测试,就会花很多钱,因为你实际上是为在场的每个人的时间付费。 这在自动化测试过程中是一个较小的问题。
解决这个问题的一个理想对策是提前计划,因为你花越多的时间来计划你要完成的测试和完成测试的顺序,由于人们完成了不需要的测试,人员成本上升的机会就越小。
3.消耗时间
计算机在各种事情上都比人快,从计划国际象棋的走法到在股票市场上投资资金,甚至只是在按钮变色后按下它。 同样的概念也适用于测试,用户需要花时间阅读所有的信息,并在菜单中浏览他们的方式。
因此,手动测试可能比使用测试自动化要长得多。 通过使用手动和自动测试的组合来应对这个问题,把琐碎的任务从手动测试人员那里拿走,而在需要专业知识的地方使用他们。 简化你的流程也是人工测试的理想选择,因为它尽可能地减少了许多步骤。
4.可能出现的错误
人们会犯错误。 这是很自然的,无论是在测试中以错误的顺序完成步骤,还是由于错误的点击而不准确地记下结果。 然而,这些错误会对软件测试制度的准确性造成严重问题。
人工测试人员由于一次又一次地完成同样的任务而更加疲惫或厌倦,比其他人更容易犯错,所以在可能的情况下,使用自动化来避免这种情况,或者让测试人员定期从屏幕上休息,因为这可以让他们对正在发生的事情保持更多的警惕。
管理者还可以考虑工作量管理,以阻止人们变得焦头烂额和出现问题。
手工测试的特点
在人工测试中,有几个主要特征需要注意。 这些定义了什么是手动测试,是你在设计测试时可以围绕的重要特征。
了解更多关于手动测试的一些主要特征,以及这些在主动测试环境中的意义:
1.优化的测试案例
在手工测试中,测试案例被高度优化。 这指的是手动测试员在完成测试之前的指令,高水平的优化会导致测试团队节省时间和资源,因为他们完成的任务更少。
总是尽可能地限制测试案例的大小,以充分利用可用的资源。
2.更容易理解的衡量标准
最好的人工测试有更多可理解的指标。 在测试自动化不断产生复杂的统计数据和信息的情况下,这些指标所能提供的洞察力并不值得手动测试人员花费时间来完成或计算。
作为一种替代方法,手动测试涉及的指标要简单得多,容易生成,而且在后期分析时花费的时间也少。
3.智能报告
人工测试使测试团队的报告更加智能。 自动测试在过程结束时产生自己的报告,这往往会导致报告都是相同的格式。
人类测试人员要灵活得多,可以创建他们自己的报告,在必要时添加他们认为对开发团队有用的任何信息。
4.重新运行战略
重新运行策略指的是测试团队反复运行测试的方式,从重复执行任务的实例中收集数据。
人工测试意味着重新运行的策略要灵活得多,如果测试人员认为有进一步调查的东西,他们能够完成更多的测试。
一些手动测试也积极鼓励用户完成的动作的变化,提供更广泛的行为数据。 这产生了更多围绕软件的数据,并导致今后更一致的更新策略。
手工测试的类型
公司使用的手动测试有三种不同的类型,其区别由测试人员的访问级别决定。 每种类型在其独特的背景下都是有用的。
手动测试的主要类型包括:
1.白盒测试
白盒测试是一种测试形式,涉及测试人员能够看到一个软件的所有源代码和设计文档。
这种更高水平的访问意味着测试人员能够看到代码的所有个别方面,以及它们如何影响软件的工作方式。 这对于开发过程的最早阶段来说是非常理想的,因为开发人员可以手动查看自己的代码,与测试案例进行比较,并在修补任何现有的错误之前,轻松找到造成任何重大问题的区域。
2.黑盒测试
黑盒测试是指一种测试形式,测试人员不能看到用户界面后面发生的任何事情。 这意味着没有机会接触到任何代码或任何设计文件,测试人员在完全缺乏知识的情况下接近软件。
手工测试人员在开发过程的后期阶段使用这种方法,因为用户验收测试和端到端测试需要最终用户的视角,而不是参与开发过程的人。
3.灰盒测试
灰盒测试是黑盒和白盒测试的结合,要求测试人员能够看到一些文档和源代码。 这结合了能够看到任何问题的潜在原因的好处,同时还限制了信息,有助于数据处理等功能。
在整个开发过程的中期阶段使用人工灰盒测试,为测试人员提供一些进一步的信息,但仍让他们在很多功能上依靠自己的直觉,以确保终端用户能够理解系统。
澄清一些困惑 – 手工测试与自动化测试
在软件测试中涉及两个不同的学科,手动测试和自动化测试。 尽管两者具有有效的相同功能,但它们是公司用来检查其软件包的不同学科。
继续阅读,了解更多关于什么是自动化测试,自动化测试和手动测试之间的区别,以及何时在你的软件QA流程中使用这两种类型的测试。
1.什么是自动化测试?
自动化测试是指测试人员使用第三方工具将一个软件自动化的过程,在软件重复完成相同的过程时对其进行检查,以确保其性能达到足够高的组织标准。 自动化测试的主要好处是,它是一个更快的过程,特别是在完成诸如数据输入等琐碎任务时。
这方面的一个例子是测试一个数据库,以确保它能正确处理所有的信息,在片刻之间将成千上万的数据输入软件,并在事后评估结果。
公司主要将自动化测试用于大型和高度重复的任务。 因为自动系统不会犯小错误,如输入错误的信息或点击错误的链接。
使用这种方法的一些主要软件是实时服务器和数据库,因为这些软件处理大量的信息和高用户负荷,因此需要一种能够满足需求的测试形式。
2.手动测试和自动测试的区别是什么?
手动和自动测试的主要区别在于完成的方法。
人工测试完全依靠人去完成测试,跟随测试案例完成,然后记下任何信息。
对于自动化测试,在QA分析员最初写完测试案例后,由计算机程序负责完成。
一些自动化测试平台还为用户生成自己的报告,限制了必须有人花时间收集实验中的所有数据。 相反,他们可以把时间用于生成软件包所存在问题的修复方案。
3.结论:手动测试与自动测试
手工测试和自动化测试之间有一些根本的区别,这两个概念依靠完全不同的基础来正常工作。
然而,他们可以在很多发展项目上紧密合作。 通过对一些更繁重的任务使用自动化测试,对那些依赖更多灵活性的任务应用手工测试技术,你可以大大加快你的测试过程。
关于测试的最大误解之一是,你有一个二选一的选择,但对于任何有效的质量保证团队来说,这与事实相去甚远。
揭开手动测试的5个神话
围绕着手工测试,人们相信一些神话,每一个神话都引导人们遵循不太理想的方法,并使获得结果比它需要的更复杂。
围绕手工测试的五个主要神话包括:
1.测试是唯一负责产品质量的部门
产品质量是整个公司的职责,而不仅仅是质量保证团队的职责。
软件测试的存在是为了尽可能地消除错误,这意味着很多人认为修复和定位错误是QA团队的唯一责任。 相反,开发人员自己负责编写代码,而管理团队则负责组织开发。
每个在公司中发挥作用的人都有一些责任来创造一个足够高标准的产品,而不是依靠测试团队来发现所有的问题并在之后尽快发货。
2.人工测试不再重要
随着人工智能和越来越普遍的机器人流程自动化的兴起,有一些人认为人工测试在软件开发中已经不重要了。 公司看到了自动化的相对廉价性,并选择尽可能地遵循这一路线。
人工测试仍然是公司最重要的工具之一,这要归功于其E2E、黑盒和GUI测试的效用。 通过实施人工测试,公司发现了自动化会错过的软件问题,改善了他们的产品,超过了他们仅通过自动化就能看到的任何潜在收益。
3.这是为那些不会编码的人准备的
一些人的主要假设之一是,不会编码的人选择以测试代替。
然而,这远远不是事实。 代码知识是很多测试角色的必修课,灰白盒测试依赖于阅读代码并理解它如何导致软件包中存在的任何错误。
假设只有不会写代码的人才能参与测试,你有可能限制自己在团队中拥有较低标准的测试人员。 如果你是一个测试员,考虑完成一个编码课程以提高你的水平。
4.你可以创建没有错误的软件
有些人在进入手工测试行业时,假设质量保证团队可以找到软件中的每一个错误,并帮助开发团队解决它。
从理论上讲,这将导致产品完全没有任何缺陷,并完全满足客户的需求。 当然,这是软件测试最理想的最终目标,但很少能实现。
即使是来自地球上最大的公司的最精细调整的软件包,也会有缺陷,虽然目标应该是尽可能地减少缺陷的数量,但有几个小问题进入最终版本也没有什么真正的危害。 为此,人工发布后的测试和开发很重要。
5.测试没有任何附加价值
围绕着任何形式的软件测试的最大神话之一是它不会给软件包增加任何价值。 然而,客户总是把质量作为应用程序最重要的方面之一,有问题或低质量的程序会立即失去用户,因为他们会寻找替代方案。
对一个公司来说,一个精致的产品比一个不能正常运行的产品更有价值,而有效的测试是这项工作的核心所在。 当公司选择适当投资时,高端测试会带来巨大的回报。
简而言之,一个混合的手动+自动化测试策略将始终提供一个更好的测试结果,而不是只使用其中一个策略。
你需要什么来开始手动测试?
有几件事情你需要开始手动测试过程,拥有所有这些功能让你的测试不仅更容易,而且首先是可能的。
你需要开始手动测试的一些东西包括:
1.该软件
测试人员完成软件测试首先需要的是软件本身。 毕竟,如果没有可供测试的东西,人工测试实际上是不可能的。
一个有效的软件测试涉及到使用软件的最新迭代,因为这有所有相关的源代码来满足用户的需求,并且是对产品现状的更公平的表述。
如果可能的话,完全重新编译应用程序,以尽可能获得最准确的软件视图。
2.软件要求
测试人员需要接触到软件的要求。 这并不是指软件包所需要的硬件或操作系统,而是指开发人员正在进行的软件的简介。
在测试阶段有更详细的软件需求意味着QA人员从一开始就寻找所有重要的功能,注意到软件中存在的任何问题并提出调整建议。
如果没有这一点,测试人员就会在没有任何指导的情况下工作,不知道他们所提供的信息对开发团队是否真的有用。
3.适当的硬件
软件测试需要满足其运行的程序需要的硬件。
例如,如果一个测试员要在一个需要先进硬件的新视频游戏中寻找错误或问题,而他只有一台低级别的PC,他们就无法正确地测试软件。
对于小型应用程序或网络工具来说,这不是什么大问题。 在开始完成测试之前,确保你所使用的硬件与软件的需求相匹配,在与开发团队就软件的要求进行磋商后挑选硬件。
手工测试过程
在进行人工测试的过程中,有几个步骤需要遵循,每一个步骤都在为你的程序提供一个准确的观察。
这些步骤包括:
1.分析需求
手工测试过程的第一步是分析应用程序的需求。 这涉及到应用程序简介中列出的具体要求,设计文件中的一些功能,以及你期望看到的程序的任何更多部分(如法律要求)。
在过程开始时分析这些意味着你在检查软件时知道你要测试什么。
2.创建一个测试计划
一旦你知道什么需要测试,创建一个测试计划。 这涉及到知道你正在测试哪些功能,你到底如何测试它们,以及在这个过程中你何时完成这些测试。
通过创建一个测试计划,你可以确保所有必要的测试都提前准备好了,你不会意外地错过任何功能。
这也有助于劳动力管理,因为你知道你需要多少个手动测试人员,什么时候需要。
3.编写测试案例
开始为软件编写一些测试案例。 测试用例是你在测试软件时完成的一组事件,每次都严格遵循这些事件,以确保它是一个公平的测试。
在每一种情况下都要考虑到你正在进行的具体手工测试,并尽可能多地包括细节,因为这可以减少任何人偏离原始计划的机会。
4.审查你的案件
在写完所有的测试用例后,要经过一个彻底的审查过程。 这涉及到将测试案例交给管理人员,最好是QA经理。
通过让第三方参与校对过程,你可以通过消除任何可能存在的错误来提高测试案例的标准。 经理可以提出任何改进建议,最终使你的人工测试更加有效,并帮助你找到应用程序中的任何问题。
确保每一个测试案例在执行测试前都得到验证。
5.执行手工测试
一旦经理确认了一个测试案例,就开始执行测试。 按照你在过程最开始设定的顺序,确保你完成每项测试,并确保人们缓慢而仔细地完成测试。
100%的测试都是正确的,这将为你节省大量时间,而不是在一些执行过程中犯错,不得不回头重新验证结果是否准确。
边走边记录信息,减少忘记关键信息的机会。
6.报告任何错误
在你完成手工测试并发现任何bug后,完成一个报告过程。
这包括写一份报告给开发团队,列出所有的错误,你在哪里发现的,以及你为重新创建这些错误所采取的步骤。 在你的测试中包括你产生的所有数据。
在更多的定性测试中,详细讨论应用程序的设计,你遇到的任何问题,以及一些可能的修复,使应用程序更方便用户。
请记住,正是在这个阶段,人工测试真正胜过了自动化,因为人工测试人员可以提供自动化通常无法提供的定性信息。
手工测试的最佳实践
最佳实践是指在所有类型的人工测试中常见的一些事情,有助于提高测试过程的标准。 遵循最佳实践最终意味着你会发现自己拥有一个高质量的测试,其结果准确而可靠。
在进行人工测试过程中,需要记住的一些最佳做法包括:
1.注重明确性
在整个手工测试过程中,强调清晰度是必须的。
尽可能地明确,可以减少部门和专业人员之间误传的可能性,有助于使人们集中精力在软件的正确领域工作。 这在手工测试中尤其重要,因为有更多的空间来解释指令。
这包括为测试人员写一个清晰的测试案例,以简单易懂的方式记下结果,并帮助组织中的每个人理解应用程序的要求。
2.使用持续的审查
尽可能频繁地审查测试过程中的一切。
一个有效的审查过程包括关注工作人员的表现方式,通过测试案例来验证它们是否仍在按照你的期望工作,并审查软件本身以确保取得进展。
密切关注流程中每一个环节的质量,确保标准不会下滑,并确保你从头到尾都能获得足够高的产出水平。
3.不要只顾着找虫子
有些人认为,软件测试的主要目标是找到错误,但事实远非如此。 这个过程还包括确保应用程序的性能达到高标准,以可预测的方式运行,并让用户感到舒适。
这种可用性毕竟是手工测试的核心重点,因为它几乎是 “不可自动化的”。
如果你在遵循你的测试用例时发现了任何bug,那么就把它们包括在你的报告中,但是不顾一切地去寻找与测试无关的bug会使开发人员感到困惑,并使这个过程落后于它的预期位置。
手动测试的输出类型
你可以从手工测试中得到几种不同类型的输出,每一种都能对应用程序的执行方式提供独特的见解。
你可以从手工测试中获得的输出类型包括:
1.缺陷记录
缺陷日志是一个列表或文件,其中充满了一个软件在测试中出现的所有问题。 缺陷日志越长,需要在软件中打补丁的问题就越多。
这些可以是自动的,也可以由人工测试人员手动编写,人工测试人员在程序的更多质量方面完成这项任务,因为自动化平台无法对一个软件的质量形成意见,只是简单地生成指标。
2.定性数据
这指的是手动测试员向开发团队提出的口头和书面反馈,通常是在完成一系列的测试后,如用户验收测试。
UAT的重点是确保普通用户会喜欢这个软件,并按预期参与其中,这意味着与功能测试等方面相比,重点不同。
定性数据的形式是与开发商的讨论或长篇书面报告。
3.错误信息
错误信息是简短的文本字符串,说明软件包中是否有错误,如果有的话,问题的性质。
大多数开发人员编写了一个彻底的系统,描述了什么是问题以及为什么会发生,使用错误代码来缩小问题的范围。 通过记下软件中的任何错误信息,开发人员立即知道出现问题的原因,并知道为解决这个问题可能采取的步骤。
手动测试的例子
在了解更多关于如何进行人工测试过程时,有几个人工测试的例子可以考虑。 每一个都是在开发周期的一个特定点上进行的特定测试学科,为开发者提供更多关于如何改进其产品的见解和指导。
手动测试格式的一些例子包括:
1.单元测试
单元测试是确保软件包中的每一个单独单元都能像你预期的那样工作的过程。 一个单元,或模块,是指独立编码的单一功能,然后在过程结束时被编译成一个更大的软件包。
这方面的一个例子是在数据库中,有人可能会测试一个 “SORT “函数,以确保在将其整合到更广泛的软件包之前,它能正确地组织数据。
完成单元测试的主要好处是,你明白所有的系统都能独立正常工作,后期出现的任何问题都来自于所有功能的相互集成方式。
手动完成这些测试同样重要,因为它节省了花在复杂自动化测试案例编码上的时间。
2.端对端测试
端到端测试是测试整个应用程序的过程,从你第一次打开软件到完成其中的所有功能。
端到端测试的一个很好的例子是一个计算你赚多少税的移动应用,测试人员下载该应用并通过所有的功能来接收最终的计算结果。 测试人员注意到他们遇到的任何问题,并将其传递给开发人员。
开发人员从这种主要由手工测试人员完成的测试形式中受益,因为这是一个看到软件的所有单元如何一起工作的机会,这种后期测试确保应用程序在所有组合在一起时能够正常运行。
端到端测试与用户验收测试不同,因为端到端主要是一个内部过程,与用户验收测试过程面向外部的性质不同。
3.用户验收测试
用户验收测试是软件测试过程的最后阶段,包括确保产品适合产品的预期客户群。 这包括向潜在客户提供访问应用程序的机会,以便他们能够使用它并提供反馈。
现代软件开发中最常见的用户验收测试的例子之一是视频游戏的alpha和beta测试,其中玩家可以玩游戏并报告其中存在的任何问题。
完成用户验收测试的主要好处是,你可以从外部的角度来看待你的产品,而不是依靠那些在创造产品中发挥了积极作用的人的角度,从而消除任何影响测试的潜在偏见。 人工测试是必要的,因为自动化系统不能准确地复制客户的情绪。
通过人工测试检测到的错误和bug的类型,而自动测试却忽略了这些错误和bug
人工测试可以发现各种bug、错误和问题,自动测试也是如此。 然而,在软件中,有一些问题是人工测试擅长发现的,而自动化会错过这些问题。
手工测试中的一些主要错误和bug类型包括:
1.工作流程不畅
“工作流程 “是指用户为到达应用程序中的一个特定点并完成一个过程所遵循的路径。 尽管有些工作流程在技术上可能没有什么问题,但仍然可能有问题,因为对于外行人来说,其路径可能没有意义。
在这些情况下,手动测试员会告知开发者设计上的问题,并提出修改建议,以自动化系统无法实现的方式帮助用户更舒适、更熟悉一个应用程序。
2.图形问题
网络应用程序可以在一系列设备上运行,显示器的分辨率和大小不断变化,取决于用户可用的手机、平板电脑或屏幕。
在一个优化不佳的应用程序中,这可能会导致资产被拉伸,在不太常用的设备上看起来更糟糕,而自动化工具只是跟随菜单而没有注意到这一点。
通过实施一系列的设备,人工测试人员可以发现图形缺陷,这些缺陷在被修补后会导致用户对软件包有更好的体验。
3.不准确的链接
一些网站或应用程序通过一系列的按钮和嵌入式链接与社交媒体网站链接。 然而,由于开发过程中的错别字或错误,这些可能并不总是链接到正确的地方,这是一个自动系统不一定能发现的。
链接到错误的地方会造成混乱,并大大损害保留率。 人工测试人员通过程序中的所有链接,确保它们通往正确的地方,帮助最终用户到达他们的目标地点,而不是被问题所误导。
常见的人工测试指标
指标是简单的、可测量的数值,在测试结束后表明一些情况。 这些都是定量性质的,这使得它们更容易从开发商的角度进行评估。
测试人员使用的一些比较常见的手动测试指标包括:
1.缺陷
缺陷指标相对简单,指的是软件包中存在的错误或bug的数量。 缺陷是指软件的性能不符合预期的任何情况,从软件功能到图形的工作方式不等。 把缺陷作为一个指标来分析是相对简单的,更多的缺陷对公司来说是一个更大的问题。
通过跟踪缺陷的数量在不同的迭代中是增加还是减少,你可以更好地了解软件的质量是否在不断地接受更新而向正确的方向发展。
2.每个测试小时的缺陷
每测试小时的缺陷是以缺陷为指标,并增加一些细节,用缺陷的数量除以测试人员花在软件上的小时数。
例如,一个有五个缺陷的简单网络工具,运行时间为两分钟,比一个有十个缺陷的工具看起来要好,你用一个小时的基本指标。
通过完成这个进一步的计算,手动测试人员可以更好地了解缺陷密度,了解用户可能遇到缺陷的频率,以及这是否严重影响他们使用应用程序的时间。
平衡缺陷与应用程序的规模总是有利于了解问题的背景。
3.通过的测试案例百分比
一些测试用例的运行是以简单的通过/失败为基础的,这个指标提供了通过测试用例的百分比。 通过的测试案例百分比越高,应用程序的性能就越好。
当一个可能的尝试是在逐个功能的基础上使用通过的测试案例百分比,而不是在检查整个应用程序时。 这提供了关于什么工作和什么不工作的更细化的信息,帮助开发人员在必要的地方做出改变,而不是完成进一步的调查,看看问题到底出在哪里。 你越早找到问题的原因就越好。
实施手工测试的7个错误和陷阱
在整个软件测试行业中,有几个常见的错误,每一个错误都可能导致错误未被发现,测试时间比预期更长,成本更高。
在你的工作中实施人工测试时,需要注意和避免的一些主要错误和陷阱包括:
1.自己修复错误
在开发过程的某些阶段,开发人员是一个既负责测试代码又负责修复问题的人。 这可能导致他们试图自己解决软件问题,尽管他们可能不完全了解问题的原因。
只要有可能,尽量确保测试人员和编码解决方案的人之间有明确的分工。 通过这种区分,你可以减少过于专注于修复你发现的特定错误而不考虑软件的其他部分的机会。
如果有可能,一定要分配工作,以便在一个问题上获得更广泛的专业知识。
2.匆忙完成测试
有些软件的发布期限非常紧迫,这可能导致测试人员专注于更快地完成测试以达到目标日期。 这是一个严重的错误,因为它有可能让重大的错误通过。 人工测试会加剧这个问题,人们会感到压力,并积极地匆匆忙忙地完成事情。
在完成测试案例时,尽量多花点时间,仔细检查每个步骤,更彻底地记下数据。 即使你不得不稍稍推迟发布,但与其让用户因为标准不高而不喜欢,还不如运送一个完整的产品。
3.沟通不畅
在任何软件开发项目中,团队内部的沟通都是最重要的,人们要从同事那里获得尽可能多的洞察力,并利用这些信息来改进产品。 这适用于在部门之间以及单一部门内部进行持续的对话。
QA团队与开发人员的沟通越有效,他们在创建更新时就有更好的指导,每个人都会从发布最高水平的产品中集体受益。
手动测试允许更好的沟通,因为测试人员对体验有完整的理解,提供更多的清晰度和细节。
4.无准备的测试
准备工作孕育着完美,这在整个软件测试领域都是如此。 在手工测试的情况下,这意味着除了学习简介和创建适当挑战所有这些目标的测试案例外,还要花时间了解软件。
花点时间意味着你的测试用例适合你作为一个开发者的需要,你更有可能找到系统中所有最重要的错误。 这也有助于测试人员更清楚地阅读测试用例,并更准确地执行它们。
5.无视你的直觉
当一个公司开始手动测试时,他们这样做有几个原因,包括他们想要人类测试员的适应性和本能。 当你测试一个软件时,你可能会注意到有些东西看起来很奇怪,尽管没有主动成为测试案例的一部分,促使你不做任何改变或进一步调查。 这是个错误。
始终放纵你的好奇心,倾听你的直觉告诉你的东西,因为这有助于发现自动化测试案例所不能发现的问题。 人工测试人员因其智力和专业知识而被选中,因此,根据这些特点行事,就是最大限度地发挥了测试的潜力。
6.害怕犯错
每个人都会犯错,不管你完成的是什么工作。 然而,最好是承认这一点,而不是担心你可能犯错而进入一个过程。 这使你的压力更大,甚至更有可能导致你的测试性能出现问题。 自动化没有这个问题,手动测试人员更容易受到压力的影响。
自然地对待你的任务,如果你确实犯了一个错误,要尽快设法纠正它。 软件测试是你发现和修复问题的阶段,偶尔的测试问题并不会毁了最终用户的软件,只要你修复它。
7.没有休息好
手工测试需要高度关注每一个测试的细节,这对测试人员来说是很累的。 尽管如此,一些测试人员和公司注重让测试人员一整天都在工作,没有因为疲劳或注意力不集中而增加任何休息。
这是一个重大错误。 为测试人员提供全天的休息时间,因为这样可以减少问题发生的几率,并尽可能保持测试的准确性。 如果你自己是一名测试员,试着与管理人员合作,积极照顾自己和周围人的心理健康。
最佳手动测试工具
当你完成手工测试时,你不必单独完成每一部分的工作。 在某些情况下,使用一个工具可以完美地管理你的测试,使过程尽可能顺利。 如果你是一个正在考虑如何提高你的标准的测试人员,看一下工具可能是一个理想的开始。
5个最好的免费手动测试工具
当开始使用软件测试中的任何新工具时,你要确保你的投资有良好的价值。 这指的是你在软件上投入的时间和你为获得许可证所花的钱。
有了免费的手动测试工具,获得金钱的价值要简单得多,如果不成功,你也不会有买家的悔意。
提供给质量保证团队的一些最好的免费手动测试工具包括:
1.JIRA
JIRA是一个用于软件测试的文档工具,让开发人员为任何需要支持的bug、问题或修复创建票据。 这个平台也带有优先级工具,所以开发团队在改进他们的程序时,可以先寻找最重要的问题进行分类。
2.负载运行器
与一系列开发工具兼容,LoadRunner有助于在一系列设置中进行性能测试,生成错综复杂的性能测试数据。 该工具还有助于对希望提高效率的开发人员的性能问题的一些主要原因进行分类。
3.声纳方块(SonarQube)
通过人工测试工作支持广泛的编程语言,随着时间的推移跟踪测量,以减少人工测试人员必须自己完成的报告量。 适应性强,可与一系列主要的第三方应用程序有效整合。
4.追踪
用Python开发的Trac是一个项目管理工具,它为你提供了你的视图历史、代码和任何变化,因此你可以看到测试之间的修改。 通过Trac进行的调试也使用了票据管理系统,简化了用户发现问题和修复问题的过程。
5.NUnit
基于JUnit,NUnit是一个完全开源的工具,支持面向数据的测试,并与一系列平台有效整合。 即使在完成手动测试后,你也能获得定量数据,这为寻求修复任何问题的开发人员提供了更大的洞察力。
5个最好的免费自动化测试工具
虽然手工测试有很多好处,但在你的测试过程中实施自动化有时是一种理想的前进方式。
这可以帮助你消除完全专注于手工测试的一些缺点,同时还可以很好地了解软件的情况。 自动化需要一些工具来启动,许多开发人员在开始工作和掌握平台时喜欢使用免费工具。
一些最好的免费自动化测试工具包括:
1.zaptest免费版
ZAPTEST免费版旨在帮助测试人员将自动化整合到他们的工作中,重点是跨平台,让用户以适当支持人工测试的方式实现自动化。 任何任务的自动化是关键的吸引力,通过ZAPTEST的免费版,软件的所有方面都可以实现自动化。
2.浏览器
一个开源的测试自动化框架,它特别关注在网络商店工作的应用程序的移动设备的自动化。 Appium适用于一系列的API和操作系统,包括iOS、Windows、Mobile、Web和Android。
3.卡塔隆平台
作为一个无代码的解决方案,Katalon帮助没有编码经验的测试人员实现更好的自动化测试工作。 这个平台有一个商店,里面有一系列的扩展,但这意味着要充分利用这个测试软件,你很可能需要投入大量的时间,还有可能是金钱,来根据你的需求进行定制。
4.机器人
一个专门针对Android测试的开源工具,同时实现了用户验收和灰盒测试。 虽然这个应用程序的工作标准很高,但对用户来说有一些风险,因为跨平台的应用程序仍然需要在所有其他平台上进行测试。
5.装载机
Loadster是一个工具,旨在帮助那些与拥有庞大用户群的应用程序合作的公司。 使用这个工具可以帮助开发人员为更大的流量高峰做准备,即使公司的服务器有很大的压力,也能有最佳的性能。 除了帮助人工测试外,Loadster还可以将测试人员的一些任务自动化,如负载休息。
结论
总之,手工测试是任何组织的资产。 测试人员可以发现其他未见的问题,并提供关于应用程序的详细反馈,这是自动化所不能做到的。
虽然人工测试有一些缺点,但聪明的公司越来越多地使用人工和自动测试的混合系统,帮助说明各自的弱点,同时利用两者的优势。
手工测试是更好的软件开发的支柱,正确使用它可以使你的产出有很大的不同。
常见问题和资源
人工测试可能是一个复杂的话题,所以你可能对它的工作方式还有一些疑问,这是可以理解的。 请看一些关于手工测试的常见问题与一些资源,在你学习成为一个更好的手工测试员的过程中,你可以从中受益。
1.关于手动测试自动化的最佳课程
– “测试自动化基础” – Udemy
– “测试自动化培训课程” – NobleProg
– “手动测试培训 – 英国” – 知识学院
– “手动和自动化测试” – IT人才中心
2.关于手动测试的5大面试问题是什么?
– “你有手动测试的经验吗?”- 确定候选人是否有很多在测试环境中工作的经验。
– “手工测试和测试自动化之间的区别是什么?”- 确定候选人是否具有测试过程的基本技术知识。
– “你是如何在软件测试环境中克服挑战的?”- 评估候选人在人工测试领域所具有的解决问题的能力。
– “支持手工测试的理想工具是什么?”- 对候选人使用的工作流程建立一个更好的概念,以及这是否适合公司的情况。
– “你适应在团队中工作吗?”- 让面试官了解申请人是否有能力在一个更大的团体中工作。
3.关于手动测试的最佳Youtube教程
– “手动测试(完整课程)”- SDET- QA自动化技术员
– “软件测试教程–掌握软件测试和破解测试工作” – 软件测试导师
– “什么是手动测试?| 手动测试初学者教程 | Edureka” – edureka!
– “手动测试(功能)的概念” – Naveen AutomationLabs
– “手动测试教程” – 软件测试学院
4.如何维护手工测试?
你可以做几件事来维护手工测试,其中第一件事就是照顾好测试人员。 通过将福利放在测试过程的中心,你可以确保每个人都处于一个合适的状态,以关注和执行他们的高峰。
除此以外,重点是要有良好的支持结构。 这意味着管理人员的监督,确保测试是一致的,并尽可能产生准确的产出。
本身没有任何严格的机械或自动维护,但照顾人本身就是维护你的测试的一种形式。