测试是一个很有意思的事情。只要你对这个世界好奇,你天然地就有探索、求知、追求自由的欲望。可以说,人人都有测试的基本禀赋。
测试的基本模型
在操作被测对象前,你对被测对象的反应会有一个预期,操作之后,你观察其实际反应(输出)是否符合预期。如果不符合预期,可以尝试找找原因,对被测对象进行修复,修复后再次测试,直到满足你的期望。
一个系统的可测试性在我看来,就是要在被测系统的相关环节有相应的输出,可以进行连续的、可重入的观察和分析。
这里简单列一下测试的相关技术、技能,主要是过往曾经用到的,也只是一个入门参考。
做测试还要有一个重要特质,就是具有良好的和各色人等沟通的技能,满怀热情、细腻性格和批判性思维。用户视角是一个重要的切入点和立足点。
基本技能
- 测试管理工具:比如:Mantis(Defect Tracking,即 Bug 管理)、Testlink(测例管理),现在使用《禅道》,可以注册账号免费体验在线版,也可以下载其 PHP 免费版源码自己搭建。
- Excel 表:准备测试数据、分析结果。
- MySQL:准备测试数据、分析结果。观察输出数据。有 GUI 和 Web 管理工具。
- 版本管理工具 git。可以通过 github.com 了解。
- 浏览器:尤其是 Chrome 或者 Firefox,安装 postman 扩展。
- fiddler:抓个链接、分析 http 协议什么的很方便。http 协议要了解。
- Redis:有 Web 管理工具(PHP 版)可以观察所存储的数据。
- Memcached:一般用来缓存 session。
- Unit Testing:QUnit 或者 PHPUnit,至少了解一下。在 API 自动化测试上实践过。
- 性能测试:ab,http_load 什么的。
拓展技能
- Linux:掌握 Linux Bash shell 基本命令。命令行操作有时候会比较方便。看看 CentOS 或者 RedHat Enterprise Linux。shell 脚本要会一些。
- Nginx:HTTP 服务器。
- PHP:服务脚本。
- Python:和持续集成(Continuous Integration)相关。测试人员掌握一门编程语言还是必要的,是置业上升的一个重要的通道。也是自动化测试的帮手。
- JavaScript 脚本语言,值得了解;Node、Gulp 也要懂些。
- Markdown 标记语言,写 API 接口文档和写点文章什么的。简书就不错。
- 编辑器:vim 或者 sublime v3,需要练习,掌握以后方便许多。
测试专业性
测试是具有专业性的。专业性给我们带来信任和尊重。
ISTQB 对于测试职业的理解
可以看看 Software Testing Practices Report 2015-2016。