前言
在上一次分享中,我们介绍了《软件测试笔记(十三)单元测试的介绍和工具选择》。今天我会介绍作为测试的重点之一的功能测试,因为关于功能测试是和软件的具体功能紧密结合的,所以这里会基本介绍下功能测试和市面上常用的功能测试的工具。
功能测试的定义
功能测试简单来说就是验证软件的每一个功能是否按照需求文档中的规定运行,通过输入适当的输入来测试功能,以验证实际输出是够与预期的输出匹配。它属于黑盒测试的范围,测试人员可以不需要关心功能内部如何实现。
功能测试的种类
下面列举了一些重要的功能测试的类型:
- 单元测试:为了检查源代码的单个单元或模块是否正常工作,同时保证对应功能模块按照需求文档实现。它是由开发人员在开发人员的环境中完成的。
- 集成测试:集成测试是测试两个软件单元之间接口的过程。集成测试通过多种方法完成,如大爆炸方法、自顶向下方法、自下而上方法和混合集成方法来保证用户数据流,逻辑流按照需求文档中定义的实现。
- 系统测试:测试完全集成的软件以评估系统是否符合其指定的需求称为系统测试(也称为端到端测试)。目标是已完成的软件和功能,以确保软件和功能是否按预期工作。
- 回归测试:在修复完缺陷后,对已经测试的软件和功能进行重复测。用来发现由于正在测试的软件和功,因为其他相关或不相关的组件的更改而引入或发现的任何缺陷。
- 用户验收测试:也称之发布前测试,由最终用户和测试人员一起完成的,以验证应用程序的功能。验收测试为确定应用程序是否按要求开发,而进行的测试,同时它需要得到客户的反馈接受或拒绝。申请验收测试的类型有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应用程序的负载测试。
总结
这里介绍了功能测试的定义,关注点,测试技术以及主流的测试工具。当然,这里无法列举出所有的功能测试的工具,如果大家有好的推荐或者是对于功能测试的观点,请留言区留下您的宝贵意见。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。