软件测试工程师的必需技能 | 当前位置: 首页> 学习中心> 小白入门> 详情 |
随着时代的发展,软件测试工程师的角色和职责也在悄然发生着变化,从一开始单纯的在瀑布式开发流程中担任测试阶段的执行者,到敏捷开发流程中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),我们将立即处理