软件测试
什么是软件?
软件 = 程序 + 数据 + 文档
软件测试的对象有哪些?程序 + 数据 + 文档
C/S与B/S架构
C/S:客户端服务器,这种就是我们一定要安装一个客户端才能够用的软件,就叫C/S。比如:微信、qq
B/S:浏览器服务器,只需要一个浏览器,就可以访问服务的,就是B/S。比如:淘宝、京东
软件测试是什么?
使用
人工和自动化
手段来运行或测试某个系统的过程,其目的在于检测它是否满足规定的需求
或弄清预期结果与实际结果之间的差别
。
我们为什么要做软件测试,它的目的是什么?
- 软件测试为了发现程序存在的代码或业务逻辑错误
- 软件测试为了检验产品是否复合用户需求
- 软件测试为了提高用户体验
软件测试的分类
按测试的阶段划分
- 单元测试:主要是测试程序代码,为的是确保各单元模块被正确的编译,比如有具体到模块的测试,也有具体到类,函数,方法的测试等。 -----
一般是开发来完成
- 集成测试:单元测试后,将各单元组合成完整的体系,测试软件单位之间的接口是否正确、数据能否正常传递。----
比如说注册和充值这两个共是否能够连通(执行者:开发人员)
- 系统测试:把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞等。(计算机程序结合外设+网络等其他元素进行的测试)----
根据测试用例,进行完整的系统测试(执行者:测试人员)
- 验收测试:主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。----
用户对软件进行验收
Alpha测试
:把用户请到开发方对软件进行测试,测试环境受开发方控制,测试人不多,测试时间比较集中(执行者:测试人员、用户、公司内部人员)beta测试
:测试环境不受开发方控制,测试人比较多,测试时间不集中
两者的最大区别
:
- 测试场所不一样
- 一般先做Alpha测试,再做beta测试
按测试技术划分(是否查看代码划分)
- 黑盒测试:只需要关注外部的输入与输出,不需要关注程序内部的逻辑
- 白盒测试:需要关注内部逻辑具体实现,而不需要关注外部的输入与输出
- 灰盒测试:既需要关注外部的输入与输出,也需要关注内部逻辑具体实现
按测试对象是否运行划分
- 动态测试:运行被测系统,而进行的测试
- 静态测试:不需要运行被测系统,而进行的测试(界面检查 文档检查 代码走查)
按不同测试手段划分
- 手动测试(点点点)
- 自动化测试(替代手工 工具/写代码)
按测试包含的内容划分
- 功能测试:验证软件的业务功能是否符合需求
- 界面测试:被测系统的界面与原型图是否一致
- 安全测试:对被测系统的安全进行测试(对账号多次进行输入用户名密码,是否允许输入 sql注入)
- 兼容性测试:被测系统在不同的测试环境下是否正常(淘宝(b/s))浏览器:ie/chrome/firefox
- 易用性测试:被测系统的各个功能是否操作方便、是否容易理解、是否容易上手
- 性能测试(负载测试、压力测试):某个特定的时间,用户数量剧增,软件是否正常。b站崩溃
其他测试
- 冒烟测试:在进行正式测试前对主要功能进行的测试,冒烟测试一般可能开发或者测试主管来负责
- 回归测试:开发对存在问题的功能进行修改后,再一次进行的测试
- 探索性测试/自由测试:根据自己项目经验而进行的随意测试