测试基础
1 给你一个杯子,你准备怎么测试
考虑 水杯 怎么设计
考虑 笔 怎么设计
2 请说明黑盒测试和白盒测试的区别
3 请问了解静态测试吗?做过静态测试吗?结合项目,说明你实现静态测试的过程
1.0什么是测试
硬件测试
软件测试
找缺陷(bug)
1.1定义:
寻找软件出现的缺陷和问题,保证软件的质量
1.2若干活动
点工 调参员 看代码————>白盒
编写 测试方案
编写 测试计划 项目 时间 内容
提取测试需求
编写 测试用例(新手写)
执行测试用例
提交缺陷
回归测试 测试bug和需求变更过的
等
1.3方向
功能测试 :web测试 APP测试 黑盒
自动化测试
接口测试
安全渗透
测开————>开发测试工具(python django flask)
性能测试
白盒工程师
ci测试
等
1.4 软件测试分类
1.4.1 按照阶段划分
单元测试:
测试的是:针对的是单个功能,列如注册
针对代码进行测试,一般是开发负责
集成测试:
组装测试
系统测试:
针对系统的整体性测试,包含 软件功能 硬件功能
验收测试:
用户检查产品是否符合自己的预期
α 阿尔法测试:内测版本 bug比较多
β 贝塔测试: 公测版本 bug相对较少
γ 伽玛测试: 候选发布版本 不能能bug了
不能进行穷举测设,不能让用户测试
应该让:
甲方
第三方
甲方授信,乙方协助测试
1.4.2 按照是否覆盖源码
1.4.2.1 白盒测试
代码内部的实现,技术难度高
1.4.2.2 黑盒测试
关注点:
关心输入和输出,不关心内部实现
黑盒分类:
功能测试
性能测试
1.4.2.3 灰盒测试
黑盒+白盒的中盒
既关注黑盒的输入和输出,又关注白盒的代码逻辑
1.4.3 按照是否运行
1.4.3.1 静态测试
不运行被测试的程序
测试对象:
文档
代码
1.4.3.2 动态测试
运行被测程序:
测试对象:
运行中的程序
1.4.3.3 按照是否自动化
人工测试:
手工测试,就是功能测试
自动化测试:
大量的,重复的功能,可以使用自动化
工具自动化:postman工具等
代码自动化:
java: 用ui自动化,接口自动化
python: 用ui自动化,接口自动化
ruby(R语言)
1.4.3.4 其他测试
冒烟测试:
开发提测的版本,进行接受性测试
关注点:
最基本的功能
最重要的功能
回归测试:
关注点:
修复的bug和修改的新需求
部分旧功能
随机测试:
探索测试:
幂等测试(重要)
1.5 软件开发流程
1.5.1.1 瀑布模型(重点)
计划:以文档形式来进行驱动,每一个阶段,都要进行文档的编写与输出
优点
开发阶段很清晰,当前阶段完成之后,主要只关注后续阶段
缺点
代码完成之后,测试入场,可能已经有缺陷风险,不能及时纠正缺陷
不太适应多变的需求
可能会有延期的风险
成本很高
适合场景
适合需求清晰的大型项目:银行,建筑,审批等
案例
项目:怎么做 计算器:实现加减乘除
1.5.1.2 快速原型模型
适合需求多变的小型项目
先进行简单的需求分析,先出一个简单的原型,在跟用户交流,不断迭代更新原型
1.5.1.3 螺旋模型
适合需求不明确的大型项目
1.5.1.4 增量模型
作业,根据瀑布模型完成,计算机的加减乘除
1.6 目的:
项目早期:
针对需求或者设计做测试,发现其中的问题,规避更多的错误,处于缺陷预防阶段
项目中期:
及早的发现缺陷,及时修改缺陷
项目后期:
主要看软件是否可用,功能是否实现,是否满足用户的需求
##
常见语言
后端
java
c
c++
c#
.net
python
golang
RuBy
易语音————>中文语音
前端
js
( jq vue.js react.js)————>js框架
ui 偏页面测试
接口 偏后端
设计测试用例