前言
在上一次分享中,我们介绍了《软件测试笔记(十三)单元测试的介绍和工具选择》。今天我会介绍作为测试的重点之一的功能测试,因为关于功能测试是和软件的具体功能紧密结合的,所以这里会基本介绍下功能测试和市面上常用的功能测试的工具。
功能测试的定义
功能测试简单来说就是验证软件的每一个功能是否按照需求文档中的规定运行,通过输入适当的输入来测试功能,以验证实际输出是够与预期的输出匹配。它属于黑盒测试的范围,测试人员可以不需要关心功能内部如何实现。
功能测试的种类
下面列举了一些重要的功能测试的类型:
- 单元测试:为了检查源代码的单个单元或模块是否正常工作,同时保证对应功能模块按照需求文档实现。它是由开发人员在开发人员的环境中完成的。
- 集成测试:集成测试是测试两个软件单元之间接口的过程。集成测试通过多种方法完成,如大爆炸方法、自顶向下方法、自下而上方法和混合集成方法来保证用户数据流,逻辑流按照需求文档中定义的实现。
- 系统测试:测试完全集成的软件以评估系统是否符合其指定的需求称为系统测试(也称为端到端测试)。目标是已完成的软件和功能,以确保软件和功能是否按预期工作。
- 回归测试:在修复完缺陷后,对已经测试的软件和功能进行重复测。用来发现由于正在测试的软件和功,因为其他相关或不相关的组件的更改而引入或发现的任何缺陷。
- 用户验收测试:也称之发布前测试,由最终用户和测试人员一起完成的,以验证应用程序的功能。验收测试为确定应用程序是否按要求开发,而进行的测试,同时它需要得到客户的反馈接受或拒绝。申请验收测试的类型有 Alpha、Beta 和 Gamma 测试。
功能测试的测试技术
功能测试的主要目的就是要保证软件的功能复合测试需求。所以它可以按照以下的方法执行:
- 基于需求的测试:它包含所有的功能规范,这些规范构成了编写的所有测试用例的基础。
- 基于业务场景的测试:它包含有关如何从业务流程的角度感知系统的信息。
功能测试的主流工具
这里介绍的功能测试工具,有可能帮助组织更好地定位自己,以跟上软件测试的趋势,该列表包括开源和商业功能测试解决方案。
Selenium(开源):
Selenium 可能是 Web 应用程序最流行的开源测试自动化框架。Selenium 起源于 2000 年代,经过十多年的发展,已经成为 Web 自动化测试人员的首选自动化框架。Selenium 已经成为 Katalon Studio、Watir、dragor 和 Robot framework 等其他开源测试自动化工具的核心框架。
Selenium 支持多种系统环境(Windows、Mac、Linux)和浏览器(Chrome、Firefox、IE 和 Headless 浏览器)它的脚本可以用各种编程语言编写,如 Java、Groovy、Python、C#、PHP、Ruby 和 Perl。虽然对测试人员具有灵活性,他们可以编写复杂的测试脚本,以满足不同级别的复杂性,但它需要提高编程技巧和努力来构建自动化框架和库以满足特定测试需求。
UFT (付费):
UFT(Unified Functional Testing)是著名的商业功能测试工具。它为跨平台的桌面、web 和移动应用程序的 API、web 服务和 GUI 测试提供了全面的功能集。该工具具有先进的基于图像的对象识别功能、可重用的测试组件和自动化文档。
UFT 使用 Visual Basic 脚本编写测试过程和对象控制。UFT 与业务流程测试和质量中心集成,该工具通过与诸如 Jenkins 之类的 CI 工具集成来支持 CI。
Watir(开源):
Watir 是一个基于 Ruby 库的 web 自动化测试的开源测试工具。Watir 支持跨浏览器测试,包括 Firefox、Opera、headless browser 和 IE。它还支持数据驱动测试,并与诸如 RSpec、Cucumber 和 Test/Unit 等 BBD 工具集成。
IBM Rational Functional Tester (付费):
IBM RFT 是一个用于功能和回归测试的数据驱动测试平台。它支持很多的应用程序,如.Net、Java、SAP、Flex 和 Ajax。RFT 使用 Visual Basic.Net 和 Java 作为脚本语言。用户对 AUT 的操作,通过应用程序屏幕截图以脚本格式记录。
RFT 的另一个有趣的特性是它与 IBM Jazz 应用程序生命周期管理系统(如 ibmrationalteamconcert 和 Rational Quality Manager)的集成。
TestComplete (付费):
由 SmartBear 完成的 TestComplete 是一个强大的商业测试工具,用于 web、移动和桌面测试。它支持各种脚本语言,如 JavaScript、VBScript、Python 和 C ++ 脚本。与 Katalon Studio 一样,测试人员可以使用 TestComplete 执行关键字驱动和数据驱动的测试,该工具还提供了一个易于使用的录制和回放功能。
与 UTF 一样,TestComplete 的 GUI 对象识别功能可以自动检测和更新 UI 对象,这有助于减少在 AUT 更改时维护测试脚本的工作量在 CI 过程中,它还与 Jenkins 集成。
Tricentis Tosca(付费):
Tricentis Tosca 是一个基于模型的测试自动化工具,它为连续测试提供了相当广泛的功能集,包括支持敏捷和 DevOps 方法的 Dashboard、分析和集成。
Tricentis Tosca 帮助用户优化测试脚本的可重用性。与许多其他测试自动化工具一样,它支持多种技术和应用程序,如 web、移动和 APITricentis Tosca 还具有集成管理、风险分析和分布式执行的功能。
Ranorex(付费):
Ranorex Studio 是一个集桌面、移动和 web 于一体的自动化测试工具,受到全球 4000 多家公司的信赖该应用程序提供了无代码测试自动化,使初学者能够直接测试,以及一个完整的 IDE。
特点:
- 可靠的对象标识,即使对于具有动态 id 的 web 元素也是如此。
- 可共享对象存储库。
- 使用可重用代码模块减少测试维护。
- 跨平台和跨浏览器测试。
- 使用内置的 Selenium WebDriver 在 Selenium Grid 上并行测试或分发。
- 可定制,易于阅读的测试报告。
- 启用视频报告以查看在不重新运行测试的情况下导致测试失败的原因。
- 与完整的测试工具链集成:Azure DevOps、Jira、Jenkins、TestRail、Git 等等。
Sahi Pro(付费):
(付费):
Sahi Pro 帮助自动化 web 应用程序的功能测试 Sahi Pro 默认支持 web 应用程序和 REST API 自动化。Sahi Pro 非常适合对具有大量 AJAX 和动态内容的复杂 web 2.0 应用程序进行跨浏览器 / 多浏览器测试。Sahi Pro 运行在任何支持 javascript 的现代浏览器上它支持您测试 web 浏览器、桌面和移动应用程序它是一个面向测试人员的自动化回归测试工具。
特点:
- 内置的 Excel 框架,让您的业务分析师和非技术专业人士有助于测试。
- 简单而强大的 api
- 对象获取器和记录器
- 自动记录和报告
- 并行和分布式回放
- 持续集成
- 在任何操作系统上测试任何浏览器
- 测试任何 Windows 桌面应用程序
- 测试任何 iOS 和 Android、本机和混合应用程序
QA Wizard (付费):
QA Wizard Pro 自动化了 web、Windows 和 Java 应用程序的功能和回归测试,以及 web 应用程序的负载测试。
总结
这里介绍了功能测试的定义,关注点,测试技术以及主流的测试工具。当然,这里无法列举出所有的功能测试的工具,如果大家有好的推荐或者是对于功能测试的观点,请留言区留下您的宝贵意见。