软件测试是一个非常复杂和密集的领域,公司和独立开发者都希望通过一系列的测试方法来改善他们的产品。
公司最常用的测试方法之一是黑盒测试,这种技术在开发人员和测试人员之间创造距离,以提供准确的结果并消除偏见。
通过这个详细的指南,了解更多关于什么是黑盒测试,如何完成黑盒测试,以及在软件工程中实施黑盒测试的一些好处。
什么是黑盒测试?
黑盒测试是指在不事先了解其内部工作方式的情况下测试一个系统或软件的过程。 这不仅是指不了解源代码本身,而且涉及到没有看到任何围绕软件的设计文件。 测试人员只是像终端用户一样提供输入和接收输出。 虽然这是一个简单的黑匣子测试定义,但它将一般的系统设置出来。
黑盒测试的目标是让用户以比正常情况下更自然的方式与软件互动,而不存在任何源于已经了解软件的现有偏见。
在这种方法中,负责完成测试的人与开发软件的人不同,在两个团队之间形成分离。
1.在软件测试中何时以及为何需要进行黑盒测试?
在开发周期中,有几个阶段使用黑盒测试是最理想的,大多数黑盒测试是在开发结束后,发布前不久进行的。
这包括诸如用户验收测试等方法,在这些方法中,软件作为一种预发布测试的形式,被交给软件的目标受众成员。 这更多地被称为beta测试,是一个公司的理想工具,因为更多的曝光意味着人们更有可能发现软件中的潜在错误。
在开发周期的最后阶段使用黑匣子方法是必须的,因为这是一个用户更可能访问的版本。 你可以对单个功能使用黑盒测试,但这将违背测试的目的。
2.当你不需要做黑盒测试时
在开发的最初阶段,黑盒测试的作用非常小。 当一个公司正在建立其软件的基本功能时,它使用白盒测试,以便开发人员可以看到在代码的哪一点上存在问题。
当软件是开放源码或相对简单的网络工具或被设计用来协助第三方的编码项目时,也没有必要进行黑盒测试,因为有一个相对裸露的用户界面,而且用户无论如何都可以访问程序的源代码。 如果你期望用户访问源代码,黑盒测试就失去了其主要目的。
3.谁参与了黑盒测试?
在黑盒测试过程中,有很多角色参与其中,其中一些角色取决于做测试的公司的性质。
参与黑盒测试过程的重要角色包括:
– 测试员
测试人员负责完成公司的手动测试案例,在执行之前写出详尽的测试案例,详细检查应用程序,并报告结果。 这个角色主要存在于手动测试过程中,在测试自动化的情况下,自动化系统会扮演这个角色。
– 质量分析员
QA分析员负责在QA流程中对测试案例进行编程,主要是在公司使用QA测试自动化流程时。
这个过程包括设计彻底的测试案例,以确保高水平的功能和执行测试案例,完成后检索结果。
– 开发商
负责开发QA团队测试的软件的人。 开发人员接收来自测试团队的反馈,并相应地更新软件,作为开发团队的一部分工作,但与测试人员保持沟通。
– 质量评估经理
QA经理是质量保证团队的领导者,负责管理测试人员执行的所有任务。
这包括安排测试时间表,组织工作人员的事情清单,并解决团队中的任何冲突。 他们还在对新员工的培训中解释了黑盒测试。
– 项目负责人
项目负责人是对最终项目质量负责的人,他负责监督测试过程以及开发,确保客户收到的软件包符合整个简介。
黑盒测试的好处
在你的开发工作中使用黑盒测试有几个显著的好处。 你越是了解这些好处,你就越能充分利用它们,尽可能多地从该技术中获取优势。
在你的质量保证中使用黑盒测试的一些主要好处包括:
1.不需要技术知识
黑匣子方法意味着你在检查一个应用程序时不需要任何技术知识。
黑盒测试背后的目标是检查应用程序如何为最终用户工作,而标准用户在大多数情况下没有任何高级技术知识。 这可以降低测试成本,帮助组织以较低的费用发现更多的错误,在财务上变得更加高效。
2.准确地模拟用户
黑盒测试过程的最终目标是了解用户在日常与应用程序互动时,应用程序的问题是什么。
某些类型的黑盒测试–侧重于复制用户的行为方式,对用户的行为进行高度精确的建模。 用户验收测试尤其如此,在这个过程中,终端用户体验产品,不仅仅是建模或模拟用户的行为,而是真正实现它。
准确建模有助于揭示任何影响用户实际工作流程的错误。
3.众包测试的能力
由于技能要求相对较低,黑盒测试是一种非常容易获得的测试形式。
这意味着公司不仅可以雇用技术水平较低的测试人员,而且可以将测试工作众包给热心的客户。 这在游戏行业越来越常见,公司提供早期访问发布,随着时间的推移更新游戏以解决用户发现的问题。
在这种情况下,寻找错误要容易得多,因为所有的功能都得到了更高的曝光度。
黑盒测试的挑战
除了黑盒测试的好处外,还有一些主要的挑战,你需要考虑到。 意识到这些挑战意味着你可以适应它们,通过减少黑盒测试可能产生的有害影响来提高你的测试标准。
其中一些挑战包括:
1.难以找到问题的原因
黑盒测试的主要缺点之一是,当测试人员不能访问任何源代码时,可能更难找到问题的原因。
虽然他们可以描述错误是什么以及何时发生,但他们没有说明源代码的哪一部分导致了这些问题或原因。
测试人员可以通过彻底记录来减轻这种情况,开发人员提供的详细错误信息也为任何未来的更新提供了进一步的洞察力。
2.自动化是比较棘手的
由于你正在积极寻求复制用户与软件包互动的方式,因此将黑盒测试过程自动化可能是非常困难的。
造成这种情况的第一个原因是,测试人员没有任何机会接触到源代码,这使得编码一个准确的测试案例更加困难。 这与测试旨在尽可能地复制人类行为的事实相呼应,自动化被专门设计为以机器人的方式行事。
你可以通过自动化更多琐碎的任务来平衡这个问题,并在可能的情况下将自动化与手动测试相结合。
3.在大规模测试中的挣扎
前面提到的与自动化的斗争意味着在更高规模的测试是更复杂的。 大规模的测试为公司提供了更多关于软件的数据,意味着错误更容易被发现和复制。
将人工测试作为优先事项的要求意味着在更大的范围内安排测试会更加困难。 一些公司通过使用 “开放测试 “系统来应对这一问题,在该系统中,任何对产品感兴趣的人都可以帮助进行预发布测试,并通过在自愿的基础上对早期构建提供反馈来支持该公司。
黑盒测试的特点
黑盒测试有几个主要特点需要注意,这也是区别于其他任何形式的软件质量保证的测试。
这些特点包括:
1.没有事先的内部知识
黑盒测试不需要事先了解软件的内部知识。 这在某些情况下可能很困难,因为测试人员对他们所测试的软件的某些方面有一定的了解,以及他们所寻找的一些功能,但这大致是指不能看到任何形式的内部文件。
简单地说,如果这些信息在应用商店或网站的下载页面上对终端用户是可见的,那么测试人员就可以看到它。
2.将测试人员和开发人员分开
在黑盒测试的情况下,测试和开发阶段由不同的人完成。 这种区别来自于测试人员缺乏知识,因为开发人员对源代码有了解,因为他们是负责开发的人。
公司根据他们的具体情况,以几种不同的方式处理这个问题,一些公司选择使用外部组织来完成测试,而较大的公司则有专门的测试人员部门来完成这项工作。
3.后期测试
这指的是这种测试所处的发展阶段。 黑盒测试依赖于一个相对先进的现有应用程序的版本,它有一个全面的用户界面,可以在软件中完全导航,并可以访问每一个功能的前端。
这意味着黑盒测试只有在测试过程的一些后期阶段才有可能,此时所有这些都已经初步形成。 虽然随着时间的推移, UI和控件可能会被修改,但它们需要以某种形式存在,以允许黑盒测试访问该功能。
在黑盒测试中我们要测试什么
黑盒测试检查软件包的特定方面,在软件的某些领域提供额外的信息,导致更新增加一般的生活质量。
测试人员在黑盒测试中检查的软件包的一些主要部分包括:
1.功能性
一些开发者使用黑盒测试作为一种手段,以确保一个软件在没有现有知识的情况下能按预期工作。
绝大多数人在商业上使用任何软件时,都不了解该软件的内部工作原理,因此,在具备这些知识的同时进行测试,意味着你知道任何现有问题的解决方法。
这种彻底的功能测试确保每个人都能体验到应用程序所能提供的最佳效果,而不是遇到白盒测试时看不到的错误。
2.用户界面
用户界面指的是用户与应用程序实际互动的每一种方式,以使其完成一系列的任务。 这包括用户使用的菜单、应用程序中出现的特定按钮以及整个软件中存在的品牌标识。
开发人员将他们的大部分时间用于确保应用程序本身按照他们的期望运行,这意味着对用户界面的关注较少。
黑盒测试只向测试人员展示软件的用户端功能,与大多数其他阶段的测试相比,对用户界面给予更多关注。
3.业绩
除了正常运作和美观之外,应用程序的运行方式对于取悦客户至关重要。
性能指的是几个因素,包括应用程序响应用户输入时的速度,以及它在任何特定设备上占用的资源。
通过端到端测试等测试形式,检查一个软件的所有功能,开发人员可以看到一个应用程序使用了多少内存,以及哪些功能对各自的设备造成了最大的压力,从而指导应用程序后期版本中的效率和性能相关的更新。
澄清了一些混淆之处:
黑盒与白盒与灰盒测试
黑盒测试是一个听起来与灰盒和白盒测试相似的概念,但这些想法从根本上说是彼此非常不同的。 混淆它们会在开发过程中造成严重的沟通问题,并导致更新过程变慢和效率降低。
请继续阅读,以澄清关于不同类型的 “盒式测试 “的一些困惑,它们之间有什么不同,以及何时使用每种测试。
1.什么是白盒测试?
白盒测试有时被称为 “玻璃盒测试”,指的是测试人员可以完全接触到软件背后的所有信息的测试过程。 这包括访问源代码和设计文件以及软件包的客户简报。
例如,如果一个测试人员在开发过程的最早阶段检查一个单一的功能,能够看到该功能的源代码意味着他们可以立即找到问题的原因。
使用白盒测试的最佳时机之一主要是在内部任务中。 这指的是应用程序功能方面的早期开发,快速修复是最理想的,因为当你没有模拟用户体验的时候,混淆代码是没有好处的。 白码测试也用于开源系统,因为在这种情况下,所有用户都可以获得源代码。
白盒测试和黑盒测试之间有什么区别?
黑盒测试和白盒测试的主要功能区别是测试人员对软件的访问水平,但这对测试的各个方面有更大的影响,如时间。
黑盒测试在过程的后期随着产品的推出而得到更一致的使用,更基本的开发阶段受益于白盒测试的透明度和响应性。 在考虑黑盒测试与白盒测试时,两者在必要的专业知识水平上也有不同,因为白盒测试需要编码和开发方面的专业知识才能更有效。
2.什么是灰盒测试?
灰盒测试是一种测试形式,在这种测试中,用户对代码有一些现有的了解,但没有完全的访问权。 这涉及到拥有正在测试的功能的源代码或获得一些设计文件,以便用户了解软件包的整体意图是什么。
例如,如果一个测试人员只是检查软件包中的一个功能,他们可能被允许访问应用程序的这一部分的源代码。
公司在检查一个应用程序与第三方工具的集成方式时,主要使用灰盒测试。 他们只能访问源代码的一个部分,这限制了他们完成彻底的白盒测试的能力。 相反,他们看到的是第三方整合的输入和输出以及负责整合的源代码。
测试人员用它来评估是否因为软件、第三方应用程序或两者之间的整合而出现任何问题。
黑盒测试和灰盒测试之间有什么区别?
黑盒测试和灰盒测试的主要区别还是在于获取信息的程度,被测试的软件类型是区分测试类型的主要因素之一。
灰盒测试往往包括第三方工具,如云数据存储或外部处理工具,而黑盒系统往往是一个凝聚的单元。 许多黑盒测试不受第三方干扰,而集成应用几乎没有选择,只能在灰盒测试方法中工作。
3.总结:黑盒与白盒与灰盒测试
最终,黑盒、灰盒和白盒测试之间存在着根本的区别,所有这些都是基于幕后信息是否被提交给测试团队。
黑盒和白盒测试是这个频谱的极端,灰盒测试包括所有自由看到的东西,但第三方的源代码,只能看到特定功能背后的代码。
然而,所有这些测试方法在软件测试领域都有作用,所以把你的时间和注意力放在学习它们和有效实施它们上是必须的。
黑盒测试的类型
有三种主要的黑盒测试,包含了公司通过黑盒方法完成的所有测试。 这些是:
1.功能测试
功能测试包括围绕应用程序的机械工作方式的一切。 这包括确保它以正确的方式处理数据,允许用户以正确的凭证登录,并按预期处理信息和输入。
功能测试是这个过程中比较重要的一个方面,它涉及到应用程序的本地功能以及它与外部工具和程序(如基于云的服务或单点登录工具)的交互方式。
2.非功能测试
非功能测试是指对软件的任何方面进行的测试,这些方面与应用程序的功能没有明确的关系。 这涉及到确定一个应用程序对其用户来说是否可用和易于理解,是否与广泛的设备和操作系统兼容,以及它在显著的负载水平下的表现(尽管这可能会在某些时候偏离到功能测试)。
这主要发生在开发过程的最后阶段,一旦完整的应用程序被编译出来。
3.回归测试
在更新之后,测试人员会查看一个应用程序,以确保它已经完成了预期的功能,并且没有意外的副作用导致应用程序退步。
这被称为回归测试,是确保一个应用程序准备好进入市场的基本部分。
回归测试是在每次更新后使用的,以确保应用程序的功能和非功能方面都达到以前的标准。
黑匣子测试技术
当你经历黑盒测试过程时,有一系列的技术可以实施,以提高你的工作标准。 你在质量保证环境中使用的一些最重要的黑盒测试技术包括:
1.成对测试
成对测试是一种测试形式,重点是尝试软件中可能出现的每一个数据输入组合。
例如,如果数字1到10在一列中都是有效条目,而在另一列中都是字母字符,那么成对测试将测试从1A到10Z的每个可能组合。 这是一种可能需要用户花费大量时间和精力来完成的测试形式,使其成为对潜在超自动化最开放的技术之一。 这是非常彻底的,可以发现数据输入方面的任何潜在问题。
2.边界值分析
许多软件依靠数据输入,数据有特定的界限,客户要在这些界限内工作。
例如,一个设计用于计算1到100的数字的系统可能会在0或更低或高于100的数值上挣扎。
边界值分析包括测试这些边界,在软件测试的边界和周围输入数字,以检查在软件包的预期工作范围的边缘是否存在错误。 这主要有利于基于计算的系统,可以帮助开发者调整边界或找到任何问题的原因。
3.状态转换测试
很多项目在不同的 “状态 “或 “模式 “之间变化,需要从这个过程的一个阶段过渡到下一个阶段。 这些转换的正常工作意味着网站的功能符合用户的期望,并且没有意外的滞留。
状态转换测试是一种测试形式,它检查软件中所有状态之间的转换,确保它们是功能性的,并提供用户在软件中的流动没有任何意外的中断的确定性。
软件工程生命周期中的黑盒测试
黑盒测试是一门学科,主要在软件工程生命周期的最后阶段使用。 这包括从测试用户与软件的互动方式到提供完整的测试版访问,一旦所有的功能都按预期工作,黑盒测试就会主要进入。
与白盒测试相比,它节省了大量的时间和精力,因为白盒测试需要高水平的专业知识,而且最好是在你不需要开发团队在身边对系统的工作方式进行立即改变时实施。
手动或自动黑盒测试?
软件测试有两种不同的形式,手工测试是传统的形式,在流程的每个阶段都使用软件测试人员。 这与自动化测试是一个坚定的矛盾,自动化测试使用越来越多的人工智能和机器学习来完成任务,不需要任何人工干预。
继续阅读,以了解更多关于什么是手动和自动测试,各自的挑战,以及两者中哪一个是公司的理想选择。
1.手动黑匣子测试–好处、挑战、流程
手动黑盒测试是指独立完成黑盒测试的过程,使用工作人员完成所有的任务,而不是使用自动化平台作为公司工具集的一部分。
在软件开发中使用手工测试的一些主要好处是,你对完成测试的方式有更大程度的灵活性,开发人员可以收到更彻底的反馈,这是定性的。
然而,在人工测试过程中,有一些先天的自然挑战。 其中第一个事实是,人工测试可能需要大量的时间,人比自动化程序完成任务的速度要慢。
另一个是更高层次的潜在错误,人们有能力误点或以错误的顺序做事。 这最终会导致测试数据的不准确。
人工测试是一个过程,首先要了解公司对应用程序的期望,然后再编写测试用例来挑战这个简介,执行测试用例并向开发团队报告结果。
2.黑盒测试自动化–好处、挑战、过程
自动测试指的是公司通过用自动化系统完成测试案例来完成对软件包的测试。 这些使用第三方平台来实现软件包的自动化,任何自动化步骤都遵循专门准备的测试案例。
黑盒测试自动化的主要好处是它的速度,自动化程序每次运行测试的时间要少得多。 这在你的测试中增加了大量的时间,你可以把这些时间用于开发应用程序。
另一个好处是准确性,因为一个好的自动化工具每次都以相同的顺序完成相同的任务。
缺点仍然会给黑盒测试自动化带来问题,其中一个主要问题是对定量数据的关注。 这对衡量标准来说是很好的,但意味着在用户接受度测试中,几乎没有什么有价值的信息可以获得。
自动化测试也相对缺乏灵活性,分析师在任何时候想做改变时都需要编码全新的测试案例。
测试自动化过程从设计一系列的测试案例开始,然后在执行测试前将其编码到系统中,测试完成后提供报告。
3.结论:手动或黑盒测试自动化?
最终,在手动和自动黑盒测试之间的选择是一个复杂的问题,取决于你在一个系统中寻找什么。
如果你正在寻找高端的定性信息,可以用来为终端用户进行设计修改,那么手动测试是迄今为止更好的选择,自动测试是这个过程中功能和性能阶段的理想选择。
想一想你在测试过程的每个阶段要寻找什么,你就可以得到有指导意义的数据,轻松地提高你的业绩。
你需要什么来开始黑盒测试?
在开始黑盒测试之前,有一些先决条件,你需要获得这些条件,每一个条件都有助于创造一个更连贯的测试过程。
在开始黑盒测试工作之前,需要具备的一些条件包括:
1.软件要求
软件需求指的是设计概要中的具体要点,软件的设计是为了满足这些要点。 这可以包括一系列的事情,从需要完成某一组任务到使用时有某种外观和感觉。
有了这些信息,你就有了一些具体的目标,在你的测试中,测试人员创建了一个测试时间表和计划,从而产生了一套更连贯的结果,告知开发者软件的问题。
在一些公司,由于这是一个黑匣子测试,开发者会限制测试者对简报的访问。
2.编译的软件
在测试一个软件之前,质量保证团队需要接触到该软件。 这通常涉及到开发人员提供最新版本的软件,团队受益于有一个完全新编译的软件版本来做他们的测试。
拥有最新的版本意味着测试包括一些最新的修复,这意味着它能准确反映软件的性能。
3.测试目标
测试人员倾向于带着一些具体的目标来对待一段时间的测试。 这些测试目标明确规定了他们在未来一段时间内的测试内容,无论是用户接受度、端到端功能还是完成渗透测试。
QA经理往往有这些目标,下一阶段的测试通常取决于开发团队所做的工作以及这些开发所影响的软件部分。
黑匣子测试过程
黑盒测试过程是一个相对精确的过程,公司尽可能地按照过程步骤进行测试,并从中受益。 黑盒测试过程的不同阶段包括:
1.测试规划
以一个复杂的计划过程开始黑盒测试过程。 这涉及到讨论你对测试的所有个人目标、你正在检查的软件的具体方面以及你为测试投入的资源。
更彻底的计划意味着每个人都知道他们要做什么,什么时候做,包括测试中涉及的方法。
2.编写测试案例
测试用例的编写是这个过程的下一个阶段。 测试用例是指在测试中要完成的一系列步骤,更详细的测试用例为用户提供了更大程度的一致性。
在自动化测试过程中,这也涉及到在你计划使用的任何自动化工具中对测试案例进行编码。
仔细检查你的所有测试用例,以确保它们是彻底的,并清楚地说明要完成的步骤。
3.测试案例的执行
一旦你准备好了你的测试案例,就开始执行测试案例。 当使用自动化时,这可能是一个相对容易的任务,包括设置程序的方式和等待结果。 人工测试依赖于员工反复完成测试案例,更多的重复会导致更一致、更高质量的数据。
尽可能仔细地执行每一个测试用例,因为测试用例的执行越精确,你就越有可能得到对开发团队有用的数据。
4.最终报告
最后的报告阶段指的是测试团队向开发者报告的过程部分。
在加入测试人员收集的所有指标之前,先包括收集到的信息的简单摘要。 这在向开发者展示完整的数据之前,为他们提供了关于下一串更新的理想方向的初步指导,这使他们能够更深入地了解这些问题。
黑盒测试的最佳实践
无论你的行业如何,遵循最佳实践是任何公司的必修课。 最佳实践是指公司在日常工作中使用的一系列行为和技术,提高公司的效率,改善公司使用的软件的标准,从而使公司受益。
其中一些帮助公司提高黑盒测试质量的做法包括:
1.注重技能发展
如果你经营的公司在任何时候都在处理几个软件,可以考虑专注于发展测试技能和专业。 你花在专业化和发展适当技能上的时间越多,你就越有机会根除你的产品中存在的任何问题。
这与雇用具有正确技能的人配对,但最适合于几乎不断进行软件测试的公司,因为应用这些能力总是有好处的。
2.平衡工作负荷
一些测试团队可能非常大,有几十个,甚至几百个工作人员,都在定期完成测试案例。
让这些工作人员发挥最大作用的最佳做法是慢慢来,在分配具体任务时要小心谨慎。 职业倦怠在软件开发行业造成问题的历史很严重,但这是可以通过更好的工作量管理来避免的。
3.创建一致的流程
公司是建立在有员工每天完成的流程上的,测试流程包括公司编写测试案例的方式,完成研究,以及跨部门的内部沟通。
在这些情况下,一致性是关键,因为这意味着人们在进入公司时学习得更快。 这导致了更快的适应和更好的产出,比在一个没有任务一致性的公司中要快得多。
如果可以的话,在创建这些流程时,要让员工参与决策过程,因为这可以确保他们同意该战略。
实施黑匣子测试的7个错误和误区
在任何行业中,错误都是很自然的,但在你有机会犯错之前了解错误,可以为你节省大量的时间和精力。
黑盒测试人员陷入的一些最常见的错误和误区包括:
1.缺少明确的测试范围
一些组织在没有正确规划流程的情况下就开始测试他们的产品,这是一个重大错误。
由于没有计划,公司可能会失去对测试范围的跟踪。 有一个商定的范围有助于测试达到合适的规模,并有效地取得成果。
如果你在开始之前不同意你的测试范围,就会有严重的风险,即测试范围太广,花费太多时间,得到的结果却不太相关。
2.匆忙的测试过程
测试可能感觉是一个需要很长时间的过程,特别是在设计用于检查整个应用程序的冗长的测试案例。 有些人可能会想急于进行测试,特别是在重复进行早期测试时。 这是一个严重的错误。 匆忙的测试会导致测试用例执行的错误,降低了数据的价值,最终意味着你需要再次进行相同的测试。
3.在没有核查过程的情况下实现自动化
测试自动化主要侧重于确保输入一个数据值将导致在流程结束时的正确输出。 这些测试的自动化工作是通过验证自动化过程的输出与结果应该是什么。
一些测试人员犯了一个重大错误,他们没有自己计算数值,这意味着他们没有办法验证输出是否正确,并可能无法发现整个系统的重大错误。
4.未能使用混合测试
混合测试指的是平衡自动化与人工测试,因为这两种方法的工作方式可以完美地覆盖彼此的缺陷。
然而,一些组织更愿意专注于这两种方法中的一种。 这样做,你的测试就会出现严重的问题和不准确。
完成混合测试,以便在测试中获得更好的平衡水平,并尽可能大幅减少错误的数量。
5.未完成回归测试
回归测试应该是任何有效的软件测试系统中的一个持续过程,这种形式的测试可以确定软件更新是否在系统的其他地方引起问题。 没有完成回归测试意味着你在早期测试的功能可能在你没有意识到的情况下失败。
通过完成回归测试,你可以确保在不把太多的额外工作放在质量保证过程中的情况下运送更高质量的产品。
6.积极猎取虫子
有些人认为黑盒测试的目标是在软件包中找到错误并报告给开发团队,虽然这是一个方面,但它不是唯一的重点。 测试的存在是为了普遍提高一个软件包的标准。
由于过于关注软件中的错误,你开始在标准工作流程之外摇摆不定,超出了你的测试范围,忽略了软件中一些更相关的问题,以换取对代码中潜在的不相关缺陷的猎取。
7.忽视你的直觉
在手工测试中,测试人员之所以有这样的作用,是因为他们有现成的直觉,以及对代码的了解,引导他们走向潜在的问题,并告知他们工作时要检查的领域。
然而,有些人在处理测试用例时选择完全忽略这种直觉。 通过记下你想测试的任何东西,并在新的测试用例中检查它,你可以得到你的技术知识的全部好处,同时还可以完成准备好的测试用例。
黑盒测试的输出类型
你可以从黑盒测试中得到几种类型的输出,每一种都为希望对其产品进行相关更新并提高客户体验质量的公司提供独特的见解。
黑盒测试的一些主要输出类型包括:
1.定性数据
你可以从黑盒测试中得到的第一种输出形式是定性数据。 这是主要描述应用程序的信息,来自于测试,如端到端测试和可用性测试。
定性数据通常描述应用的标准,讨论人们对应用的体验,并解释测试人员希望做出的改变。
在创建这些数据时,测试人员通常会写一份详尽的报告,陈述他们观点的所有证据,用进一步的特征来支持定性的意见,如他们所指的截图。
2.量化数据
这指的是以指标的形式明确的数字数据,测试人员要么注意到应用程序的特定部分,要么从自动化测试协议中接收数字数据。
定量信息往往更有助于为开发者提供明显的修正,表明应用程序的某些部分,如其性能水平、其使用资源的效率以及应用程序中存在的错误和问题的数量。
量化信息比描述性信息更容易分析和评估,因为不需要任何解释。
3.错误信息
当软件的功能没有按照预期运行时就会出现错误信息。 这可能是由于硬件或软件问题,通常除了错误代码外,还有对问题的简短描述。
开发人员创建了一个错误代码系统,以帮助他们缩小系统中发生问题的确切位置,一些实施的想法包括使用第一个数字来缩小遇到问题的功能,第二个数字描述具体的故障,第三个数字说明问题的原因。
使用这个错误代码系统意味着开发人员立即知道问题是什么,并可以努力解决。
黑盒测试的例子
虽然黑盒测试的理论相对简单,但实际执行起来可能是一个复杂的过程,特别是对于第一次测试的人来说。 看到一个黑盒测试的例子,可以帮助指导你组织测试的工作。
黑盒测试方法的一些例子,包括多种类型的测试和不同程度的成功,包括:
1.无效的用户验收测试
一家公司希望在未来几周内发布其产品,而用户验收测试仍未进行。 该应用程序是为老年观众提供的编织教程。
开发人员希望加快这一过程,并迅速收集一批测试人员,完全使用三十多岁的非编织者进行测试,因为他们是一个更容易接受的群体。 该小组认为该申请没有问题,并为其公开发布开绿灯。
由于两个群体之间技术知识水平的冲突,目标受众在使用该软件时比较困惑,无法使用很多功能。 作为回应,该公司被迫完成紧急更新。
诸如此类的测试失败表明了充分准备的重要性。
2.成功的端到端测试
端到端测试指的是,一旦一个应用程序的功能被完全编译成一个软件包,第一次进行的测试。
一家公司精心策划完成了端到端的测试过程,有一系列专门雇用的员工来完成测试任务,每个测试案例有两名员工专门负责。
按照仔细的程序,他们完成测试案例并记下他们收集的任何数据,在测试结束时,由QA经理将数据汇编成一份有凝聚力的报告。
开发人员利用这份报告来规划应用程序的下一系列更新和变化,显著改善产品。
3.自动回归测试
一个开发商已经完成了对其软件的一系列更新,在更新之前,该软件的工作情况与预期一致。 在更新之后,测试团队通过回归测试过程,专注于自动化,并获得一个自动化平台来完成所有的基本功能。
团队为测试案例编写代码,并执行测试案例,阅读所有的测试结果,找出任何潜在的问题所在。
这可以防止由于一个组织进行更新而没有检查这些更新是否有问题而产生的问题。
通过黑盒测试检测到的错误和bug的类型
虽然错误和bug不是黑盒测试过程中的全部,但它们是公司进行测试的重要部分。
了解黑盒测试中一些主要的错误和bug类型可以帮助你对遇到的任何问题进行分类,并更多地了解它们发生的原因。
通过黑盒测试可以发现的一些主要类型的错误和bug包括:
1.可用性错误
可用性错误指的是程序中的缺陷,这些缺陷实际上并不影响功能,但会对试图与软件互动的用户造成问题。
例如,如果一个应用程序有严重的图形故障,它在技术上仍然可以运作,但如果没有正确的图标和文字,最终用户就不能有效地使用它。 这些问题往往围绕着应用程序的设计和为用户加载设计的方式,更复杂的应用程序需要更多的图形,这些图形比简单的UI中的图形更复杂。
2.功能性错误
功能性错误指的是当程序的某个部分不能按预期工作时发生的问题。
例如,如果你正在运行一个数据库软件,并试图按某个类别对信息进行分类,却发现它不起作用。 无论是完全不工作的功能,还是看似工作但不正确的功能,都属于这种情况。
这些可能是一个应用程序的一些最重要的问题,给用户带来极大的不便,并使开发商的声誉恶化,因为产品不能像广告中那样工作。
3.撞车
当一个软件崩溃时,该软件有一个根本问题,使其无法运行。 有几种不同形式的崩溃可能发生,包括当一个应用程序整体关闭或只是在过程中的一个点上冻结。
崩溃是可能发生的最严重的问题之一,因为除了完全关闭和重新打开之外,没有办法使应用程序恢复功能。 虽然一些应用程序仍有进程在后台发生,但过了这一步就没有办法与软件互动了。
常见的黑匣子测试指标
人工黑盒测试擅长产生定性数据,但当你专注于定量数据时,你需要注意你所检查的指标。 充分了解这些指标有助于你了解平台的缺陷,并确定不同领域工作的优先次序。
你在工作中发现的一些比较常见的黑盒测试指标包括:
1.错误率
错误率可以指几种情况,可以是软件测试周期内发生的纯错误数,也可以是每测试小时发生的错误数。 按小时计算的指标更好,因为它们代表了软件中的错误密度,而不是简单地说明一个数字,较大的应用有可能被误报。
开发人员寻求限制其应用程序中的错误率,因为软件包中的错误越少,客户使用该系统的体验就越好。
2.响应时间
当测试人员希望了解更多关于用户体验的性能水平时,响应时间是需要考虑的主要方面之一。 这指的是用户输入提示后,软件完成一项任务所需的时间,较长的响应时间表明应用程序的效率相对较低。 较高的响应时间是一个值得关注的原因,因为用户会对一个耗时过长的应用程序失去耐心。
3.用户满意度
大多数指标侧重于由软件包和测试软件在测试中产生的纯数字,但有些指标侧重于意见。
例如,如果一家公司完成了一个使用1000名测试者的测试,它可以收集关于满意人数的数据,并将其转化为一个百分比。 在一个周期结束时,这是一个非常有用的指标,较高的用户满意度表明更多的人喜欢这个项目,并表明它更有可能在未来取得好成绩。
最佳黑盒测试工具
黑盒测试是一种测试形式,可以极大地依赖手头的工具,既可以实现黑盒测试的自动化,又可以组织从测试中获得的信息。
使用正确的工具组合可以帮助你和你的团队更有效地工作,在整个质量保证部门建立更有效的流程。
请看下面一些最好的黑盒测试工具,并了解这些工具究竟如何帮助你茁壮成长:
5个最好的免费黑匣子测试工具
小型和新兴公司,如独立开发者,在创建他们的软件时没有大量的预算可供利用。 这可能会带来一系列的挑战,包括找到合适的工具来工作。
以下是一些最好的免费工具,供希望在预算范围内改善工作流程的独立开发者使用:
1.zaptest免费版
ZAPTEST的免费版是软件测试自动化的完美介绍。 这个工具是专门为支持任何任务的自动化而设计的,无论你完成什么任务,都能帮助你更快速有效地工作。
ZAPTEST的免费版本包含了大量的功能,支持任何应用程序的自动化……1SCRIPT实施跨浏览器、跨设备、跨应用程序和并行执行是可用的功能之一。
2.JIRA
JIRA的免费版本是记下bug的理想工具,在票据中添加细节,并在与开发团队沟通时对其进行优先排序。
然而,这不是一个全能的自动化辅助工具,而是专门针对测试过程的项目管理方面。
3.Selenium IDE
这是一个记录和回放测试自动化的开源应用,这是一个很好的工具,可以看到自动化平台在完成测试时看到的情况。
Selenium的一个缺陷是相对缺乏高级功能,如自动化任务的跨平台整合。
4.自动热键
AutoHotkey是一种完全免费和开源的脚本语言,可用于Windows,它帮助用户创建各种规模的脚本,在输入一个按键后完成一系列任务。
虽然很适合自动化简单的任务,但AutoHotkey在处理一些较大的脚本和自动化要求时可能会开始挣扎。
5.浏览器
这是一个主要擅长于自动化iOS应用程序的工具,在寻求提高移动应用程序的质量时,这是一个理想的程序。
Appium最大的缺点是,你被限制在一个非常小的产品范围内,大大削减了你的可用市场。
5个最好的企业黑匣子测试工具
免费工具都很好,但企业和大公司需要有更多的功能,以便彻底测试他们的软件。 值得庆幸的是,一些最好的企业黑盒测试工具具有全面的功能,并帮助企业在其QA过程中获得显著的投资回报。
可以考虑投资的一些理想的企业黑盒测试工具包括:
1.zaptest企业版
ZAPTEST的企业版是市场上最重要的自动化工具之一,可以为您的产品提供高达10倍的投资回报。
诸如全职的ZAP专家作为你的团队的一个远程部分和无限的许可证等功能,确保你可以实施黑盒测试自动化,而不需要一个陡峭的学习曲线,并且无论你的增长速度有多快,都有固定的成本。
2.测试轨道
TestRail是一个专注于实时测试的平台,目标是将你的测试与一个有凝聚力的项目管理平台连接起来。 虽然这对于集中你的团队管理工作是理想的,但对于寻求高度强调自动化测试的开发团队来说,自动化功能远非完美。
3.欧佩克
Opkey是一个专注于无代码自动化的平台,这意味着没有现有技术知识的人可以开始自动化测试服务。
Opkey的主要缺陷之一是缺乏围绕该软件的活跃社区,这可能使你在试图以一种新的方式进行自动化时感到相对困顿。
4.完美
Perfecto是一个专注于帮助用户自动化移动应用程序的工具,没有任何严重的问题,在广泛的设备上工作,专注于端到端的测试工作。
然而,该应用程序运行在真实的设备上,而不是虚拟机上,这给本来就相对昂贵的测试工具又增加了一大笔费用,对于有限的平台来说。
5.JIRA企业
除了完成测试的自动化方面,项目管理仍然很重要,这就是JIRA的作用。 企业级JIRA有更多的存储空间,允许更多的用户访问平台,但由于需要为每个用户定制权限和访问,可能会造成潜在的混乱。 这需要大量的行政时间来完成。
你应该在什么时候使用
企业与免费的黑盒子工具?
作为开始,大多数公司将利用免费的黑盒子工具。 从经济角度来看,这是有道理的,因为没有一个聪明的企业愿意投资于它不完全了解的产品,无论是从项目管理还是从自动化的角度。
免费工具不仅包括完全免费的应用程序,还可能涉及企业产品的免费版本,公司在学习如何将该工具实施到他们的流程中时使用。
一个组织将其选择的工具更新为企业版的理想时间是当公司开始因为免费工具而在其测试过程中遇到摩擦时。 不管这是一个只提供特定数量许可证的免费工具,还是一个测试量,当你开始体验到由于你的测试工具而导致你的流程效率低下的时候,你应该过渡到一个适合你所有需求的企业版本。
黑盒测试检查表、技巧和窍门
由于黑盒测试是一种高度复杂的测试方法,有很多机会来建立你对软件包的知识,有一些事情是你需要寻找的。
在你的黑盒测试清单中要包括一些重要的提示和技巧:
– 了解简报
在你开始制定任何测试计划之前,确保你了解测试期间更广泛的简报。 这包括在允许的范围内了解软件,并准确了解你要测试的内容。
– 校对测试案例
尽量让每个参与测试的人评估你在黑盒测试中使用的测试案例。 在实施前看到测试案例的眼睛越多,你就越有机会消除任何错误。
– 安排好要做的事情的清单
准备黑盒测试的非技术方面可能与技术方面一样重要。 在计划时,建立一个连贯的待办事项清单,安排谁在什么具体时间测试软件的什么部分。 这既减少了混乱,也减少了潜在的倦怠,还减少了由于其他任务占用而导致的延误。
– 立即记录结果
立即记录一个测试所产生的任何结果。 在人工测试中,如果等待时间过长,你可能会记错问题,所以即时记录会大大增加准确性。
– 与开发商联络
与开发人员讨论你的测试时间框架和策略,以便他们了解正在发生的事情,以及他们何时可以预期进行新的更新工作。 这包括制定明确的流程,让各部门之间相互沟通。
– 可操作的数据
在撰写报告时,确保你为开发者提供的所有数据都是可操作的。 这有助于团队开发出响应其问题的产品,而不是开发人员不了解他们需要做出的改变。
– 了解你的优先事项
作为一个测试团队,你的首要任务最终是确保公司向其用户交付高质量的产品。 如果测试的时间比预期的要长一些,请记住,这是一个值得的交换,因为客户体验到了质量的提高。
– 了解层次结构
在一个理想的开发公司中,开发人员和测试人员处于同一层次,对软件的成长方式具有同样重要的发言权。 了解你的组织中的等级制度的方式,并设法确保每个人都理解良好的测试的价值。
– 保持文件的一致性
保存你在测试中产生的所有数据和报告的副本。 你可以跟踪测试团队负责的应用程序的变化,此外还可以回顾旧的错误,看看它们是否在未来的版本中被复制。
结论
黑盒测试最终是软件测试过程中最重要的部分之一。 它帮助公司确保他们所运送的是尽可能高的标准,并利用视角的变化来提供对外部用户感知和实施应用程序的方式的独特见解。
任何未能在其流程中加入黑盒测试(包括自动和手动)的公司,都会错失大幅提高其应用质量的机会。 聪明地进行测试,当你的客户获得你的产品时,你将获得回报。
常见问题和资源
无论你对黑盒测试了解多少,你可能有更多的问题,想进一步了解这个方法。 请看我们下面的常见问题,以了解更多关于黑盒测试的信息,并访问一系列的资源,可以告诉你更多关于该方法。
1.关于黑盒测试自动化的最佳课程
有几个关于黑盒测试自动化的课程可以学习,每个课程都能帮助人们达到不同的测试标准。
现有的一些最受好评的黑盒测试课程包括:
– 黑盒和白盒测试”,由Coursera提供
– BBST的 “黑盒软件测试系列”
– “黑匣子软件测试技术简介”,由Udemy提供
– 伦敦新兴技术学院的 “软件自动化测试”
– Udemy的 “三个关键黑盒测试技术”
2.关于黑盒测试的五大面试问题是什么?
软件测试是一个竞争激烈的领域,每一个空缺都有大量的申请人申请。 如果你获得了黑盒测试职位的面试机会,这些是你在面试时可能要准备回答的一些问题:
– 你在黑盒测试方面有什么工作经验?
– 黑盒和白盒测试的主要区别是什么?
– 你在以前的工作中是否有任何与软件自动化有关的工作经验?
– 你能让我们知道你在工作场所遇到的挑战,以及你是如何克服这些挑战的吗?
– 你认为黑盒测试的未来是什么,你的技能如何适合软件测试的长期职业?
3.关于黑匣子测试的最佳Youtube教程
YouTube是可供人们增长软件测试技能的最重要的学习资源之一,因为它提供了一个免费的信息来源,你可以用来发展你的技术。
当你学习黑盒测试时,一些最好的教程可以看:
– “黑盒和白盒测试介绍–佐治亚理工学院–软件开发过程 “由Udacity提供
– 麻省理工学院开放课程的 “黑匣子和玻璃匣子测试”
– 每个QA都应该知道的7个黑匣子测试技术”,作者:测试学院
– 黑匣子测试|什么是黑匣子测试|学习黑匣子测试” 由Intellipaat提供
– 什么是白盒测试与灰盒测试与黑盒测试?”作者:ITProTV
4.如何维护黑盒测试?
维护黑盒测试,无论这些是手动测试还是自动测试,都是在测试过程中注意测试,如果有问题,不断寻找应用修复。
这包括确保任何测试用例每次都能按照你的期望运行,并检查自动化工具是否经过了所有正确的步骤。 尽可能经常这样做,以防止你的标准下滑,因为一个维护良好的黑匣子测试是一个尽可能返回最准确的结果。
5.关于黑匣子测试的最佳书籍
虽然黑盒测试和软件测试作为一个整体是一个不断发展的领域,但有几本书仍然是相关的,并为改善你的测试工作提供了很多见解。
一些关于黑盒测试的最好的书包括:
– “黑匣子测试:软件和系统的功能测试技术》,作者:Boris Beizer
– “软件测试:Srinivasan Desikan, Gopalaswamy Ramesh著《软件测试:原理与实践》。
– 软件测试要点》,Ralf Bierig, Stephen Brown, Edgar Galván著
– “软件测试简介”,保罗-安曼、杰夫-奥夫特著