软件测试工程师需要具备的知识:操作系统、网络、数据库、数据结构、编程语言、测试理论等。但对这些都精通不大可能,只需要了解一些其中的基础知识点。
操作系统:
- 操作系统的几种类型:批量、分时和实时操作系统
- 进程 进程的同步和互斥 进程间的通信
- 线程
- 资源分配
- 处理机调度
- 内存管理
- 磁盘分区和管理
- I/O控制
- 文件系统管理
- Linux常用命令
网络:
- 常见网络拓扑结构(总线型、环形、星型、树型、网状、混合型等等)
- OSI模型(七层协议)
- 以太网 广域网
- 常见网络设备(路由器、网桥、中继器、网关等)
数据库:
- 关系型数据库
- 字段,关键字,表
- 索引
- 触发器
- 存储过程
- 事务 事务的提交和回滚
- 游标
- SQL语言,包括数据定义、数据操纵、数据控制
- 数据备份和灾难恢复
- 数据导入导出
- 权限控制
数据结构(计算机存储、组织数据的方式):
- 算法的时间复杂度(一个算法中的语句执行次数)和空间复杂度(算法在计算机内执行时所需存储空间的度量)
- 线性表 特殊线性表(栈、队列)
- 树(非线性数据结构)二叉树(每个节点最多有两棵子树)
- 图 图的遍历以及图的生成树 图的存储结构(邻接矩阵 邻接表 十字链表)
- 查找 顺序查找和二分查找
- 排序 插入排序、选择排序和交换排序
编程语言(以C语言和c++语言为例):
C语言
- 数据类型
- 运算符
- 数组
- 程序控制流(例如 If-else For While Do-while Switch等等)
- 函数 头文件
- 指针 结构
c++语言:
- 面向对象的编程方法
- 类和对象
- 构造函数和析构函数
- 公有、私有和受保护类型
- 继承和派生 多态
- 虚函数
- 掌握可视化c++编程工具
测试理论:
- 软件工程三要素:方法、工具、过程
- 软件开发模型(瀑布模型、螺旋模型、增量模型等)
- 需求分析(根据需求规格说明书)
- 软件设计基本原理(模块化、抽象、耦合、内聚)
- 程序流程图
- 软件测试基本概念(单元测试、集成测试、系统测试、回归测试、验收测试等)
- 功能测试 性能测试 界面测试 安全测试 兼容性测试 可用性测试
- 白盒测试与黑盒测试概念及测试方法
- 测试环境的搭建