软件测试的定义
软件测试是贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行
验证和确认的活动过程,其目的是"尽早尽快"的发现软件中存在的各种问题
列如:与用户需求,预先定义的不一致性。
软件开发的生命周期:
1 客户提出需求(概念)
2 根据客户的需求写出相对的 <<需求文档说明书>>
3 前端同时设计效果图(原型)
后台开发人员设计编写代码实现功能
测试人员也会根据需求文档编写测试计划和测试用例
4 在后台开发实现功能后根据测试用例测试人员进行测试。
5 开发完全结束后测试人员进行整体测试, 全面测试,测试成功后上线
6 软件上线后根据用户体验和实际效果进行小版本迭代。
软件缺陷产生的原因种类:
1 需求变更次数频繁 理解误差 产品
2 开发和设计 代码问题 开发人员
3 运维 资源使用率产生 公司问题
测试流程
1 在立项会上根据客户需编写需求文档/规格说明书,ui设计原型图后台编码,
测试人员编写测试计划和测试用例
2 随着开发的代码实现测试进测试评审
3 代码实现后测试人员再进行冒烟测试
4 代码实现后测试执行测试用例
5 根据执行的结果进行对应的bug提交给相对应的开发人员让其修改代码
6 开发修改后我们测试人员进行回归测试
7 直到项目上线后 我们测试人员编写测试总结用于下一个版本的迭代
* 冒烟测试:在这个软件中主要的功能实现后进行测试
* 回归测试:在开发人员修改后进行的同一个问题的测试
软件测试的分类
1 按阶段划分:
a. 单元测试 对一个模块测试
b. 集成测试 对多个模块测试(有一定的关联)
c. 系统测试 在软件编译后执行的整体测试
d. 验收测试 对软件执行后端用户体验的测试
α 阿尔法测试 有一定的开发测试人员的测试 内部测试
β 贝塔测试 只有用户参与的测试 公测
2 是否运行程序划分
a. 静态测试 UI设计图
b. 动态测试 有执行代码过程中产生的问题
3. 是否查看源代码
a. 黑盒测试: 见名知意 它就是一个黑色的盒子我们是看不见里面逻辑走向的
所以只能通过盒子的外表进行测试,比如说页面上的点点点操作,输入
数据得出测试结果 这就是黑盒测试
a.1 功能测试:界面 安装 兼容 易用
a.2 性能测试:压力测试 负载测试 一般性能 稳定性测试
压力测试: 在同一时间内进行多个用户的访问
负载测试: 在多个用户在一段时间的持续访问 (可能面试)
b. 白盒测试: 它就相当于是一个透明的盒子可以看清楚代码逻辑结构 并且直接基于代码覆盖
所有逻辑结构的测试过程 关键是要懂代码并且会写来进行测试
c. 灰盒测试: 它是介于黑盒与白盒之间,它不需要清除每一行代码的逻辑只需清除代码封装后端
的每个单个模块实现
常见的软件测试开发模式
V型(常用) :把测试过程作为需求分析,设计编码之后的一个阶段
ww 型: 测试开发同步进行实现的一个概念
螺旋型: 大公司 国企用的多 客户始终参与每个阶段的开发 随时更改需求
公司组织架构
一般在公司内部部门有: 人事 财务 开发(前端 后台 移动端 测试) 市场(产品经理) 运维(产品上线的维护)
开发 - 测试: 一个测试对应五个开发(一个前端 三个后台 一个移动端)
CEO 首席执行官
CTO 首席技术执行官
CFO 首席财务执行官
COO 首席运营执行官
UI
ANDROID
IOS
QA
TS
DBA
UE
RD
总监
项目经理 pm
组长
组员
QA 与 QC
产品经理
测试工具
world 文档 测试计划 测试用例 缺陷报告
接口工具 charles Fiddler Postman
性能工具 Jmeter Loadrunner
BUG管理工具 禅道 Jira Bugzilla Mantis
自动化管理工具 Selenium Appnium untest pytest
云测工具 Testing