📜  功能测试

📅  最后修改于: 2021-01-08 09:04:53             🧑  作者: Mango

功能测试

在进行功能测试之前,我们应该了解测试,什么是测试?

什么是测试?

简而言之,测试就是将实际结果与预期结果进行比较。完成测试以识别所有函数是否都按预期工作。

什么是软件测试?

软件测试是一种检查实际结果是否符合预期结果并确保软件没有任何缺陷或错误的技术。

软件测试可确保应用程序没有任何缺陷,或者实际需求不存在需求。手动或自动测试都可以进行软件测试。

软件测试也定义为对被测应用程序(AUT)的验证。

有两种测试类型:

功能测试:

这是一种软件测试,用于验证软件应用程序的函数是否按照要求规范工作。在功能测试中,每个函数通过给出值,确定输出并用期望值验证实际输出来进行测试。功能测试是作为黑盒测试执行的,旨在确认应用程序或系统的功能是否符合我们的预期。这样做是为了验证应用程序的功能。

功能测试也称为黑盒测试,因为它侧重于应用程序规范而不是实际代码。测试人员只需要测试程序而不是系统。

功能测试的目标

功能测试的目的是检查主要的输入函数,必要的可用函数,屏幕GUI的流程。功能测试将显示错误消息,以便用户可以轻松浏览整个应用程序。

功能测试的过程是什么?

测试人员在功能测试中遵循以下步骤:

  • 测试人员在软件应用程序中验证需求规格。
  • 经过分析,需求规格测试人员将制定计划。
  • 在计划了测试之后,测试人员将设计测试用例。
  • 设计测试后,案例测试人员将制作可追溯性矩阵的文档。
  • 测试人员将执行测试用例设计。
  • 分析覆盖率以检查应用程序的覆盖测试区域。
  • 缺陷管理应该管理缺陷解决。

在功能测试中要测试什么?说明

功能测试的主要目标是检查软件系统的功能。它专注于:

  • 基本可用性:功能测试涉及系统的可用性测试。它检查用户是否可以自由浏览屏幕。
  • 可访问性:功能测试测试功能的可访问函数。
  • 主线函数:它专注于测试主要功能。
  • 错误条件:功能测试用于检查错误条件。它检查是否显示错误消息。

说明执行功能测试的完整过程。

可以执行以下步骤来执行功能测试:

  • 有必要了解软件要求。
  • 识别测试输入数据
  • 用选定的输入值计算预期结果。
  • 执行测试用例
  • 实际结果与计算结果的比较

解释功能测试的类型。

功能测试的主要目标是测试组件的功能。

功能测试分为多个部分。

以下是功能测试的以下类型。

单元测试:单元测试是一种软件测试,其中测试了软件的各个单元或组件。单元测试,检查应用程序的不同部分,还通过单元测试完成了功能测试,因为单元测试可确保每个模块正常工作。

开发人员进行单元测试。单元测试在应用程序的开发阶段完成。

烟雾测试:通过烟雾测试进行功能测试。冒烟测试仅包括系统的基本(功能)功能。冒烟测试被称为“构建验证测试” 。烟雾测试旨在确保最重要的函数正常工作。

例如,Smoke测试验证应用程序是否成功启动将检查GUI是否响应。

健全性测试:健全性测试涉及整个高级业务方案是否正常工作。进行完整性测试以检查已修复的功能/错误。理智测试比烟雾测试进步不大。

例如,登录正常。所有按钮均正常工作;单击按钮后,页面导航是否完成。

回归测试:这种类型的测试主要是为了确保代码更改不会影响系统的现有功能。回归测试指定修复bug后何时在系统中出现bug,回归测试专注于所有部分是否正常工作。回归测试的重点是对系统是否有任何影响。

集成测试:集成测试结合了各个单元并进行了整体测试。该测试的目的是暴露集成单元之间交互中的故障。

白盒测试:白盒测试被称为透明盒测试,基于代码的测试,结构测试,广泛的测试以及玻璃盒测试,透明盒测试。这是一种软件测试方法,其中测试人员已知要测试内部结构/设计/实现。

白盒测试需要分析组件或系统的内部结构。

黑盒测试:也称为行为测试。在此测试中,测试人员不知道其内部结构/设计/实现。这种测试是功能测试。我们之所以称这种类型的测试为黑盒测试,是因为在此测试测试器中看不到内部代码。

例如,一个不了解网站内部结构的测试人员通过使用Web浏览器提供输入并根据预期结果验证输出来测试网页。

用户验收测试:这是客户根据要求对系统进行认证的一种测试。测试的最后阶段是在将软件发布到市场或生产环境之前的用户验收测试。 UAT是一种黑箱测试,其中涉及两个或多个最终用户。

重新测试:重新测试是一种测试,用于检查在修复缺陷后是否成功通过了最终执行中不成功的测试用例。通常,测试人员在测试产品或其组件时会发现错误,然后分配漏洞。该错误已分配给开发人员,他已将其修复。修复后,将错误分配给测试人员进行验证。此测试称为重新测试。

数据库测试:数据库测试是一种检查类型,它检查被测数据库的模式,表,触发器等。数据库测试可能涉及创建复杂的查询以对数据库进行加载/压力测试并检查其响应能力。它检查数据的完整性和一致性。

示例:让我们考虑一个用户进行交易的银行应用程序。现在从下面的数据库测试来看,事情很重要。他们是:

  • 应用程序将交易信息存储在应用程序数据库中,并将其正确显示给用户。
  • 在此过程中不会丢失任何信息
  • 该应用程序不保留部分执行或中止的操作信息。
  • 用户信息不允许个人访问。

临时测试:临时测试是一种非正式的测试类型,其目的是破坏系统。这种类型的软件测试是计划外的活动。它不遵循任何测试设计来创建测试用例。临时测试是在应用程序的任何部分随机进行的;它不支持任何结构化的测试方式。

恢复测试:恢复测试用于定义应用程序从崩溃,硬件故障和其他问题中恢复的能力。恢复测试的目的是验证系统从故障测试点恢复的能力。

静态测试:静态测试是一种软件测试技术,通过它我们可以检查软件中的缺陷而无需实际执行。进行静态测试是为了避免在开发的早期阶段出现错误,因为在早期阶段更容易发现故障。静态测试用于检测动态测试中可能未发现的错误。

为什么我们使用静态测试?

静态测试有助于在早期发现错误。借助静态测试,这将减少开发时间。它减少了测试成本和时间。静态测试还用于提高开发效率。

组件测试:组件测试也是一种软件测试,其中在不与其他部件集成的情况下分别对每个组件执行测试。组件测试也是黑盒测试的一种。组件测试也称为单元测试,程序测试或模块测试。

灰盒测试:灰盒测试定义为白盒测试和黑盒测试的组合。灰盒测试是一种测试技术,仅在有关系统内部功能的有限信息下执行。

有哪些功能测试工具?

除了手动测试之外,功能测试还可以通过各种方式执行。这些工具简化了测试过程,并有助于获得准确和有用的结果。

它是在开发过程之前确定和指定的重要且基于最高优先级的技术之一。

用于功能测试的工具是:

Tools Features/ Characteristics
Sahi
  • It is an open-source and automation testing tool, released under Apache License open source license, used for testing of the web application.
  • Sahi is written in Java and JavaScript and considered for most of the testing techniques.
  • It runs as a proxy server; it is browser-independent.
SoapUI
  • It is an open-source functional testing tool, used for web application testing.
  • It is simple and easy to design.
  • It supports multiple environments, i.e., at any instance, the target environment may be set up.
Watir
  • Watir, is an abbreviated form of web application testing in ruby, is an open-source tool for automating web browser./li>
  • It uses a ruby scripting language, which is concise and easy to use./li>
  • Watir supports multiple browsers on various platform.
Selenium
  • The open-source tool, used for functional testing on both web application and applications of the desktop.
  • It automates browsers and web application for testing purpose.
  • It gives the flexibility to customize the automated test case
  • Provides the advantage of writing test scripts, as per the requirements, using web driver.
Canoo WebTest
  • An open-source tool for performing functional testing of the web application.
  • Platform independent
  • Easy and fast
  • Easy to extend to meet growing and incoming requirements.
Cucumber
  • Cucumber is an open-source testing tool written in Ruby language. This tool works best for test-driven development. It is used to test many other languages like java, c#, and python. Cucumber for testing using some programming.

功能测试的优点是什么?

功能测试的优点是:

  • 它生产无缺陷的产品。
  • 它确保客户满意。
  • 它确保满足所有要求。
  • 它确保了应用程序/软件/产品的所有功能的正常工作。
  • 它确保软件/产品按预期工作。
  • 它确保安全性。
  • 它提高了产品的质量。

示例:在这里,我们给出一个银行软件示例。在银行中,当钱从银行A转移到银行B时,银行B没有收到正确的金额,要收取费用,或者钱没有转换成正确的货币,或者错误的转移或银行A没有收到对帐单通知从银行B收到付款。这些问题很关键,可以通过适当的功能测试来避免。

功能测试的缺点是什么?

功能测试的缺点是:

  • 功能测试可能会遗漏系统中的关键和逻辑错误。
  • 此测试不能保证该软件能够正常运行。
  • 在功能测试中,进行冗余测试的可能性很高。

包起来

在这里,我们可以轻松得出结论,要为顶级软件产品打下坚实的基础,功能测试必不可少。它是结构的基础,并且是每个测试例程的关键部分。