软件测试快速入门
1 软件测试是啥
1-1 软件测试工程师
从事软件测试工作的技术人才
职位要求:
理解软件测试概念
掌握软件测试方法
理解软件测试过程
1-2 定义
软件测试是利用人工或自动的手段,验证软件系统是否满足客户和用户的需求的过程。
1-3 对象
软件测试的对象是软件,不仅仅是程序。
在软件研发的不同阶段,软件测试对象不同。
程序是可执行的代码的集合,软件=程序+数据+文档。
1-4 目的
发现并减少软件中存在的缺陷,使其达到质量要求。
注意:缺陷>bug。
1-5 原则
(1)软件测试以满足用户和客户需求为依据
(2)软件测试是尽可能多的发现和减少缺陷,但不能消除所有缺陷
(3)软件测试需要软件测试人员和开发人员相互配合共同完成
1-6 测试流程
step1:拟定测试计划(测试经理或项目经理的负责)
step2:编写测试用例(测试工程师的主要职责)
step3:搭建测试环境(测试工程师、开发工程师、网络工程师)
step4:执行测试用例(测试员的要求)
step5:管理缺陷(测试工程师的能力体现)
step6:测试总结(测试经理或者测试组长牵头完成)
1-6-1 测试计划
测试计划包括:时间计划、人员计划、设备计划、测试方法、质量要求、风险管理
1-6-2 测试用例
测试用例是为了软件测试编写的指导文档。
编写测试用例体现水平。
测试用例的要素(以测试加法器为例):
(1)前提条件:加电
(2)测试步骤:输入加数1,加法符号+,再输入另一个加数1
(3)测试数据:加数1,另一个加数1
(4)预期结果:输出2
1-6-3 搭建测试环境
目的是为执行测试做好准备。
测试环境包括:硬件环境、软件环境、网络环境、测试数据。
1-6-4 缺陷管理
发现缺陷,提交缺陷报告。
追踪缺陷状态,直至缺陷解决。
1-6-5 测试总结
(1)系统评估:判断当前系统的状态,是否可以进入下一阶段;
(2)总结经验和教训。
1-7 面试问题
Q1:为什么想做软测工程师?
因为自己情商和与他人交流的能力较强,可以很好的和开发人员以及客户交流,解决软件缺陷。
Q2:谈谈你对软件测试的理解?
软件测试是利用人工或自动的手段,验证软件系统是否满足客户和用户的需求的过程。
目的是发现并减少软件中存在的缺陷,使其达到质量要求。
软件测试的对象是软件,不仅仅是程序。在软件研发的不同阶段,软件测试对象不同。
软件测试需要软件测试人员和开发人员相互配合共同完成。
2 软件测试有啥(软件测试分类)
2-1 按测试条件划分
黑盒测试、白盒测试和灰盒测试
2-2 按测试对象划分
1.静态测试:文档
文档评审、代码评审
2.动态测试
程序、数据
2-3 按测试内容划分(以QQ为例)
1.功能测试
注册、登录、聊天、建群、发送文件等。
2.非功能测试
(1)界面测试:外观、操作是否方便
(2)性能测试:接收和发送时长、点击后的响应速度
(3)可靠性测试:发送消息对方是否能收到以及是否遗漏消息,QQ号被盗后找回
(4)兼容性测试:QQ在PC、手机、平板上是否正常运行、在不同系统上是否正常运行
(5)安装测试:安装是否方便
PS:功能测试和非功能测试根据测试对象的不同,各自比例也会不同,有时界限也不是很明确。
例:
QQ对功能要求比较高,银行结算系统对性能测试要求高。
网上售票系统12306的支持100万人同时购票,在此属于功能测试,因为这种系统若不能达到此要求是不能上线的。
3.练习:测试汽车
(1)功能测试(着眼于主要功能,不要列举太多小方面,太片面):载人、载物
(2)非功能测试:
界面测试:外观;
性能测试:载重、加速能力
兼容性测试:适合在什么种类的路面上行驶
2-4 按测试时间阶段划分
1.单元测试(Unit Test)
(1)定义:单元测试是指针对软件中的最小可测试的部分单独进行正确性验证的测试。C语言中最小可测试部分为函数,C++中为类。
(2)测试活动:
代码评审(静态测试)
代码运行测试(动态测试)
(3)测试执行者:
软件开发工程师和白盒测试工程师
2.集成测试(Integration Test)
(1)定义:也叫组装测试或联合测试。是将已完成单元测试的模块按照设计要求,组装成子系统或系统时进行的测试。
(2)测试活动:
单元接口测试
模块聚合测试
(3)测试执行者:
软件开发人员
白盒测试工程师
3.系统测试(System Test)
(1)定义:针对整个已完成集成测试的系统进行的测试,目的是验证系统是否满足《需求规格说明书》要求。
(2)测试活动:
功能测试
非功能测试
(3)测试执行者
黑盒测试工程师
4.验收测试(Acceptance Test)
(1)定义:是在软件完成系统测试后,为项目部署和产品发布所进行的最后一个阶段的软件测试活动,也称交付测试。
(2)测试活动:
Alpha测试----在模拟环境下邀请用户参与的测试;
Beta测试----在真实环境下邀请用户参与的测试;
(3)测试执行者
用户和客户,软件测试工程师
软件测试过程模型:V模型
2-5 按测试的作用划分
1.验收测试
2.冒烟测试
冒烟测试用于确保新修改的模块和代码不会影响整个软件的稳定性而进行的测试。
3.回归测试
回归测试是在代码修改后,重复执行之前通过的测试用例。
2-6 按测试的执行方式划分
1.人工测试
2.自动化测试
人工测试 | 自动化测试 | |
成本 | 单次成本低 | 多次成本低 |
效率 | 低 | 高 |
场景 | 真实测试 | 模拟测试 |
2-7 练习
1.如果研发一台电冰箱,你打算怎么测试?
(1)单元测试:每个模块(如发动机、冷却机、外壳)设计完成后,进行单个模块的测试;
(2)集成测试:将每个模块拼装起来进行测试;
(3)系统测试:对整个冰箱系统进行功能和非功能测试;
(4)验收测试
2.如果给你一台冰箱,你打算怎么测试?
一是检验冰箱的外观有否破损,门能否打开,冷冻室、冷藏室的实测温度是否符合标称,温控装置能否正常发挥作用,灯光装置是否正常……
二是为冰箱设定最低温度并使之持续运行,记录其所能正常运转的最长周期,接入电源并在不同电压下观察冰箱的稳定情况,切断电源并检查冰箱的保鲜时间……