1. 技能要求
1)Linux使用
使用Linux是测试工程师的基本功,无需掌握太难的Linux命令,能做到查看日志、定位问题就可以了。
2)数据库使用
测试工程师需要熟练掌握数据库,后台服务程序会处理各种数据,如订单、合同、用户数据等,这些数据一般存储到数据库中。数据库的 学习主要分为两类:
- 关系型数据库(Relational Databases)
是创建在关系模型的基础上的数据库,用于超大规模数据的存储。它借助集合代数等数学概念和方法来 处理数据库中的数据。数据库管理系统(DBMS,Database Management System),是一种专门用于存储、修改并从数据库提取信息的系统软件。
常见的关系型数据库管理系统主要有MySQL、MariaDB、MS SQL、Oracle等。
- 非关系型数据库(NoSQL Databases)
非关系型数据库使用对象关系映射(ORM)来促进与其数据的通信。
常见的非关系型数据库管理系统主要有MongoDB、RethinkDB、CouchDB等。
3)测试用例设计能力
测试中最基础的是设计测试用例,这不仅要求测试工程师熟悉产品功能,能够就某一功能的深层逻辑进行测试用例设计,还要求他们对用户的使用场景进行系统化思考。测试工程师需要掌握以下测试用例设计方法:
- 边界值分析;
- 等价类划分;
- 因果图;
- 判定表;
- 正交实验设计。
4) 编码能力
具备阅读代码的能力,能够预估测试范围,强化测试用例覆盖程度,有效提高测试效率; 熟练掌握编码,测试工程师可以独立开发测试工具、测试框架,辅助测试工作。
5) 自动化测试
为满足业界不断增长的测试需求,提高测试效率,测试人员不仅要具备熟练的编程能力以及优秀的手工 测试能力,还要具备熟练使用自动化工具的专业知识。目前市面上流行的自动化测试有以下几种:
a.Selenium
Selenium 是一个测试框架,用于跨各种浏览器和平台(如 Windows、Mac 和 Linux)执行 Web 应用程序测试。Selenium支持测试人员使用各种编程语言编写测试程序,如 Java、PHP、C#、Python、Groovy、Ruby 和 Perl等。简单来说。Selenium通过WebDriver把脚本产生的操作指令传递到浏览器, 执行我们需要的操作并且获取相应的反馈,在脚本中完成校验。
值得一提的是,Selenium支持一些大型的、知名度高的浏览器供应商,这些供应商将 Selenium 作为浏览器的基础部分。Selenium 无疑是大多数其他软件测试工具的基础。
b.TestingWhiz
TestingWhiz 是一个由 CMMI3 级 IT 解决方案提供商Cygnet Infotech提供的无代码自动化测试工具。
TestingWhiz 工具的企业版提供了各种完整的自动化测试解决方案,例如 Web 测试、软件测试、数据库测试、 API 测试、移动应用程序测试、回归测试套件维护、优化和自动化以及跨浏览器测试。
TestingWhiz 提供各种重要功能,例如:
- 关键字驱动、数据驱动测试和分布式测试浏览器扩展测试;
- SMTP 集成;
- 与 Mantis、TFS 和 FogBugz 等Bug跟踪工具集成;
- 与 HP Quality Center、Zephyr、TestRail 和 Microsoft VSTS 等测试管理工具集成集中式对象存储库;
- 版本控制系统集成自定义录制规则。
c.HPE Unified FunctionalTesting
HPE UFT是测试桌面、Web和移动应用程序的流行商业工具,支持功能测试和回归测试自动化。此工具使用 Visual Basic Scripting Edition 脚本语言来注册测试过程并在测试应用程序时操作各种对象和控件。
QTP 提供各种功能,如:
- 创建测试;
- 检验数据;
- 增强测试;
- 运行测试脚本分析测试结果维护测试。
d.TestComplete
TestComplete 是一个功能测试平台,支持 JavaScript、Python、C++Script等多种脚本语言。它能提供多种解决方案,通过SmartBear 软件对桌面、网站和移动应用程序进行自动化测试。
TestComplete 提供以下功能:
- GUI测试;
- 测试可视化工具脚本测试;
- 测试录制和回放。
e.Ranorex
Ranorex是一款在Windows操作系统上运行的GUI自动测试化工具,主要用于对使用GUI的软件进行的软件测试,是计算机软件与用户进行交互的主要方式。
Ranorex 提供以下功能:
- GUI识别;
- 可重复使用的测试代码错误检测;
- 与各种工具集成录制和回放。
f.ZTF
目前市面上的自动化测试框架主要分为单元测试框架和某种领域的自动化测试框架,这些框架往往与各 个语言绑定,需要将这些自动化测试框架的测试脚本统一管理起来。而ZTF聚焦于自动化测试的管理功 能,提供了自动化测试脚本的定义、管理、驱动、执行结果的回传、Bug的创建以及和其他自动化测框 架的集成,具有语法简单、跨平台、跨语言、跨框架、工程化、跨场景的特点。
ZTF能解决如下问题:
- 用例信息的管理;
- 测试脚本的执行;
- 测试结果的比对;
- 缺陷Bug的提交。
ZTF打通了项目管理和持续集成工具之间的沟壑,贯穿持续集成、持续测试、持续部署等DevOps生命周期的不同阶段。
g.ZenData
与前面的自动化测试框架不同,ZenData并不是测试框架,而是辅助自动化测试的工具。如今自动化测试面临规模化、工程化的挑战,其中关键需求是灵活的测试数据以及规模化的管理。ZenData不仅可以用于手工测试场景下面测试数据的准备,也可以用于自动化测试脚本里面的数据生成和解析,还可以一键生成海量数据用于性能和压力测试。
Zendata特性:
不懂代码也可以使用,轻松上手数据格式完全自定义,无任何限制一键生成百万条数据,毫无压力
不论是UI自动化测试工具Selenium,还是辅助自动化测试的ZenData数据生成器,它们都可以自动执行一些重复但必不可少的测试工作,也可以完成手工测试几乎不可能完成的任务。但这些工具并不是万能 的,甚至在执行中也会暴露出一些缺陷,所以需要测试人员在问题出现时进行故障排除。因此,在开发 流程中,尤其是对于持续交付、持续集成的开发方式而言,测试人员拥有自动化测试能力是必不可少的。
还有一种最快速的,报班学习