软件测试工程师的必需技能
发布时间:2023-06-20

随着时代的发展,软件测试工程师的角色和职责也在悄然发生着变化,从一开始单纯的在瀑布式开发流程中担任测试阶段的执行者,到敏捷开发流程中QA(Quality Assurance)角色,为整个团队和产品的质量负责,测试工程师的职责和边界不断地扩大。近年来互联网行业出现了测试开发工程师,也就是要具备自动化测试和测试工具开发能力的测试工程师,可以说是对测试工程师的能力要求达到了一个新的高度。在实际企业运作当中,如何以最小投入能够最大程度保障产品质量是关键所在,围绕着这一核心目标,我们可以整理出一个测试工程师所具备的能力。



 01、掌握软件测试基础知识 


软件测试的定义、生命周期、软件测试流程、需求分析、问题定位能力

测试用例的设计、编写、评审

bug的基本知识以及缺陷管理工具的使用

测试计划、测试报告的编写

Linux系统常见命令,测试LAMP环境搭建

前端技术基础知识如:Html、JavaScript、CSS等

数据库基础知识,包括基本的sql语句、对数据库表增删改查操作等


 

 02、常见测试工具使用 


涵盖了功能测试、接口测试、性能测试、web端及app端常见的工具:

常见网络抓包工具:Fiddler、Charles

常见的自动化测试工具:Selenium、RF

常见的接口测试工具:Postman、Jmeter、SoapUI常见的缺陷管理工具:禅道、Jira、Bugfree等



 03、代码能力 


3.1、阅读开发代码

如果能够具备阅读开发代码的能力,对于提高测试人员的效率是很有帮助的,它可以帮助我们做到这些一些事情:

①通过开发修改的代码预估影响的范围,即测试的范围

②参加技术评审,预估测试的风险,难点,重点

③通过代码的逻辑设计测试用例,强化测试用例的覆盖程度

④对缺陷进行初步的定位

3.2、自动化测试

自动化测试是测试发展的方向,也是提高效率的有效方法。具备了代码能力,可以进行自动化测试框架/自动化测试平台的开发,来提高测试执行效率。

要从事自动化测试,需要至少熟练使用一到两门编程语言,如Java、Python,VB等,现在使用Python语言随着大数据、人工智能的崛起,也越来越火。推荐先学习Python,掌握以下Python技术栈:

①基本的语言知识,语法、函数、模块、输入与输出、面向对象编程

②脚本编写、标准库、第三方库,外部数据处理

③Unittest、Pytest测试框架、参数化、数据驱动

3.2.1、web自动化

Selenium是一个很经典的WEB端产品的UI自动化工具,针对不同的开发语言都有很好的支持。它的原理简单来说就是通过WebDriver把脚本产生的操作指令传递到浏览器,执行我们需要的操作并且获取相应的反馈,在脚本中完成校验。

Python+Selenium+Unittest

selenium安装、元素定位、脚本开发

unitest框架的使用

PageObject设计模式使用

ddt数据驱动测试

kdt关键字驱动测试

3.2.2、移动端自动化

Appium可以理解为就是移动端的Selenium。同样也是在移动端模拟人的操作来实现执行测试用例的目的。

Python+Appium+Unittest

appium使用、元素定位、脚本开发

APP控件定位、交互,参数化用例

测试框架封装改造

3.2.3、接口自动化

目前大多数的接口都是基于HTTP协议,很多语言,例如Python和Ruby都有很好的库来支持HTTP协议的请求,这就为我们设计接口自动化提供了很好的基础。

UI自动化无论是从实现的成本还是维护的成本来说都是巨大的,所以业界越来越把重心放到了接口层的自动化实现上。接口的自动化具备这样的优势:运行效率高、开发成本低、维护成本低、可以与开发代码同步开发。

接口自动化的实现思路也是简单明了的,那就是模拟浏览器,发送HTTP请求来实现对接口的调用,然后比较返回与期望值,达到验证结果的目的。当然,要设计一套真正高效的接口自动化框架也是不容易的。这里面涉及到如何提高用例的开发效率,降低开发维护成本等关键问题。同时还可以把接口测试与性能测试结合起来,丰富接口自动化测试的内涵。

Python+Requests+Pytest+Jenkins

接口自动化测试框架request

接口请求构造、断言(json/xml请求、响应断言)

接口报文抓包(浏览器、fiddler、charles等)

代理技术与mock技术

jenkins持续集成、allure生成报告



 04、业务知识 


测试的方法,规划,实施方法是多种多样的,如何在这些方法中进行选择,所依赖的正是对产品的业务的深刻理解。这里的产品业务不仅仅指产品的特性,同时还包括了产品的用户特征,用户的使用习惯,以及由此带来的对产品的流量趋势。也可以说,测试人员必须要站在用户的角度来分析产品,而不是产品开发人员的角度。测试人员还需要找到产品的核心功能和核心业务,通过这样的分析来进行测试优先级的划分,以及缺陷的定级,更好地进行测试工作



更多软件测试相关推荐:

软件测试更多干货文章

软件测试就业培训


文章来源:网络  版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理

相关阅读
/