首先;谈到测试开发和测试角色,业务测试同学主要是用手工测试持续的维护开发的业务产品,测试发现bug,并且传达给开发人员修复,简称手测 and 口测。 但是对于测试开发人员来说,主要是要求会的多一些,知识面要广泛,需要掌握的知识比较多且凌乱; QA中的测试开发****,这个岗位的核心职能还是测试,是通过开发的手段提升测试的效率。也就是用程序自动化的方式实现测试,来保障软件产品的质量,包括功能测试和性能测试。其次,以下梳理需要掌握的测开基础知识;
一、基本技能
- 测试理论
- 需求分析(需求文档、API文档、UI、程序和数据)
- 编写用例(核心要素:名称、级别、步骤、期望结果、实际结果)
- 评审用例
- 用例执行
- 测试报告(markdown、html、excel、word、ppt)
- 开发模型(敏捷开发Scrum、瀑布模型、Agile、XP, 螺旋模型)
- 敏捷测试 冒烟测试 回归测试
二、专业技能
- SQL 语句 (连接工具:Navicat Premium、SQLyog)
- linux 常用命令(连接工具:xshell、crt,传输工具:winSCP、FileZilla)
- http、https 区别 tcp协议.
- BS、CS 区别
- post、get 区别
- web、App 测试区别
- 熟悉 Android(adb 命令等)、iOS、windows(pc)Batch、linux(pc)、WP*(mobile)
三、工具使用/搭建
- 抓包工具(fiddler、charles、wireshark 等)
- 数据库管理工具(Navicat、SQLyog)
- redis 管理工具(Redis Desktop Manager)
- 接口测试工具(Postman,HttpRuner)
- 性能工具(PC:LoadRunner、jmeter、Locust,Android-APP:monkey、GT、Emmagee*)
- 自动化测试工具(Appium、selenium-webdirver、macaca、airtest、Robot Framework、QTP、monkeyrunner*)
- 缺陷管理工具(禅道、bugfree、redmine、jira)
- 第三方测试平台(testin、腾讯优测、阿里MQC、 百度MTC)
- 设备批量管理平台:STF
- 项目同步工具:git、 svn
- 安全性测试:sql 注入(or 1=1)、 xss、url 加密、密码密文存储、https
- 持续集成:jenkins, teamcity
- 容器引擎和操作系统:docker, Linux
四、语言技能
- 编程语言 - 了解(java、python,golang ,php 等)
- 脚本语言 - 掌握(Python、shell、Ruby 等)
- 标记语言 - 了解(html、css、JavaScript 等.)
- 其他的代码管理能力 - git, gitlab等.
总之;当然以上的知识比较多,全面,但是真正对于工作中的测试开发来说; 对于测试开发角色,语言主要是用Python,其它任何语言都是可以的,只是Python相对更适合,测试开发很少用到数据库,即使要用到数据库,Redis、MySQL和Linux命令这三种也完全能够满足。
Python学习网站如下;