软件测试基础理论
1 测试工程师心态
如果要从事测试行业或者开展测试工作,首先要摆正心态:
你所有要做的工作的目的是要尽可能多的发现问题(bug),而不是去验证系统是正确的
2 基本概念
2.1 何为软件
软件是计算机系统中的程序和相关文件或文档的总称。
2.2 何为软件测试
使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
3 测试知识
3.1 软件测试的目的
目的是用最少的人力、物力和时间找出软件中潜在的各种错误和权限,通过修正错误和缺陷来提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。
3.2 软件测试的原则
- 测试标准是用户的需求
所有的测试都应当追溯到用户的需求,测试人员需要始终站在用户的角度去看问题、去判断缺陷的影响,系统中最严重的的问题是那些导致程序无法满足用户需求的缺陷。 - 事先定义好产品的质量标准
有了质量标准,才能依据标准对软件的质量进行正确的分析和评估。 - 应当“尽早地和不断地进行软件测试”
软件开发生命周期早起引入的错误占软件过程中出现错误总数的50%~60%,缺陷存在放大趋势。如:需求阶段一个错误可能会导致N个设置错误。越到后期修复缺陷付出的代价越大。 - 制定测试计划,避免随意性
- 制定周密的测试用例,不可将测试用例抛开
- 充分注意集群现象
- 避免测试自己开发的程序
- 完全测试是不可能的,测试需要终止
穷尽测试是不可能的,当满足准出原则时终止测试。 - 回归测试
修改程序后需要重新进行测试,已确认没有引发新的错误。 - 妥善保管一切测试过程文档
3.3 测试类型
3.3.1 按测试阶段划分
- 单元测试
- 集成测试
- 系统测试
- 回归测试
- 验收测试
3.3.2 按是否查看代码划分
- 黑盒测试
- 灰盒测试
- 白盒测试
3.3.3 按是否运行程序划分
- 静态测试
- 动态测试
3.3.4 按手段划分
- 功能测试
- 自动化测试
- 性能测试
- 安全测试
- 兼容性测试
3.4 测试用例设计方法
又叫黑盒测试方法、功能测试方法
- 等价类划分法
有效等价类:对于程序规格说明书来说是合理的、有意义的输入数据的集合
无效等价类:对于程序规格说明书来说是不合理的、无意义的输入数据的集合
举例说明:用户名输入框规则只支持输入字母、数字
有效等价类包括:ABCabc等字母、123999等数字、abc123等字母数字组合
无效等价类包括:!@#等特殊符号、abc!@#等字母符号组合、123_!!!等数字符号组合、中国666等汉字数字组合。。。。(还有很多) - 边界值分析法
举例说明:用户名输入框规定了长度8~16位
设计用例时需要设计 7、8、9、15、16、17位、空等输入数据 - 错误推测法
错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,有针对性的设计测试用例的方法。 - 因果图法
- 判定表驱动法
- 正交试验法
适用于平台参数配置的测试,可设计出最好的用例,达到最有效的测试目的。 - 功能图法
- 场景法
3.5 测试流程
接到测试任务是如何开展测试工作的
- 产品经理讲解需求
- 需求评审
- 开发、测试进行需求反讲
- 制定测试计划
- 测试计划评审
- 设计测试用例
- 评审测试用例
- 准备测试环境、测试数据
- 测试执行
- 测试封版
- 上线跟踪测试
- 测试总结、财富归档
3.6 常用测试工具
测试管理工具:禅道、bugfree、jira、QC等
性能测试工具:loadrunner、jmeter、nmon、jprofiler等
自动化测试工具:QTP、selenium、appium等
接口测试工具:postman、apifox、yapi等
安全测试工具:appscan、xscan、sqlmap、nmap等
其他工具:fiddler、jenkins、Navicat等
3.7 中间件
tomcat、tongweb、websphere、jboss等
3.8 数据库
mysql、oracle、redis、mongodb、db2等