软件测试入门学习
软件测试学习入门
软件测试?
1、什么是软件测试?
- 使用人工或自动的手段来运行或测量软件系统的过程,以体验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
软件测试的测试对象
2、软件测试的测试对象
- 软件需求
- 软件概要设计
- 软件详细设计
- 软件源码
- 可运行程序
- 软件运行环境
软件测试五大要素和两个目标
3、软件测试五大要素和两个目标
- 软件质量 人员 技术 流程 资源
- 测试覆盖率 测试效率
软件测试所遵循的原则
4、软件测试所遵循的原则
- 测试能显示缺陷的存在,但不能证明系统不存在缺陷
- 穷尽测试是不可能的,应设定及时终止的条件
- 测试应该尽早进行
- 缺陷具备群集特性
- 测试的杀虫剂悖论
- 测试的二八原则(百分之八十的时间或资源用在百分之二十的重点模块,重点测试这个软件百分之二十的重要模块,来达到测试的效率和资源配置最佳的比例)
- 测试活动依赖于测试背景
软件测试的分类
5、软件测试的分类
- 按照测试阶段分类(单元测试、集成测试、系统测试、验收测试)
- 按照测试手段分类
(根据测试对象的可见度:黑盒测试、白盒测试;
根据状态:静态测试、动态测试;
执行方式:手工测试、自动化测试) - 按照测试模式来分类(瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等)
- 按照测试类型分类(功能测试、性能测试、部署测试、文档测试、安全测试、兼容性测试、易用性测试、本地化测试、无障碍测试、可靠性测试)
- 其他的一些测试类型概念(回归测试、冒烟测试、Monkey测试、A/B测试)
单元测试
1、什么是单元测试
- 对软件中的最小可测试单元进行检查和验证。
单元测试的原则
单元测试的原则:
- 尽可能保证各个测试用例是互相独立的。
- 一般由代码的开发人员来实施,用以检验所开发的代码功能能符合自己的设计要求。
单元测试的益处
单元测试的益处:
- 能尽早发现缺陷、有利于重构、简化集成、文档用于设计
单元测试的限制
单元测试的限制:
- 不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误
- 每一行代码,一般需要3~5行测试代码才能完成单元测试,所以存在投入和产出的一个平衡。
集成测试
2、什么是集成测试
- 是在单元测试的基础上,测试将所有团建单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。
集成测试的主要实施方案
集成测试的主要实施方案:
- Big Bang:一次性集成,主要做法把大部分的开发模块都耦合起来形成一个完整的软件系统或者系统的主要组成部分,并把他们拿来做集成测试,即把所有的东西组装好,一起来做测试。
- 自顶向下:递增的组装软件结构的方法,一般来说从主程序开始沿控制层逐层的向下集成,通过这种方式逐层的测试,覆盖到所有的模块。
- 自底向上:最常用的集成测试,从程序模块的最底层模块开始,逐层的向上组装并逐层的测试。好处:针对我们已经组装的测试,不需要对上一层组装模块,比较好的锁定软件故障的位置
- 核心系统集成:先把核心的软件部分挑选出来,并对这些部件进行集成测试,在测试通过的基础上再逐步的扩展的外围的部件,直到最后形成稳定的软件产品
- 高频集成:同步软件开发过程,每隔一段时间研发团队就对现有的代码进行一次集成测试
系统测试
3、系统测试:
- 真实运行环境,主要包括功能测试、性能测试、稳定性测试、多种类型的测试。(偏于业务角度的验证)
系统测试的关注点
关注点:
①关注系统本身的使用;
②关注系统与其他相关系统的连通;
③关注系统在不同使用压力下的表现。
验收测试
4、验收测试(交付测试):
用户验收测试(开发方)、运行验收测试(运维)、合同和规范验收测试、α/alpha测试(开发者提供的环境测试、用户执行)、β/beta测试(脱离开发者环境,由用户提供测试环境)、release版本即为可交付版本。
黑盒测试
5、黑盒测试:
不考虑程序内部结构和内部特性下,通过相关暴露出的接口,对程序进行测试。
只检查程序的功能是否按照需求规定,正常使用;
程序是否能适当的输入输出数据,并产生正确的输出信息;
一般针对软件外面的界面,可见的功能;
从用户的视角,通过不同数据事件,通过输出结果进行判断;
优点:
1.容易实施,不需要关注内部的实现
2.更贴近用户的使用角度
缺点:
1.测试覆盖率较低,一般只能覆盖到代码量的不到40%
2.针对黑盒的自动化测试,复用率较低,维护成本较高。因:产品活动增/删(更新)
黑盒测试主要测试什么
黑盒测试主要测试什么
1.是否有不正确或遗漏的功能?
2.在接口上,输入是否能正确的接受?能否输出正确的结果?
3.是否有数据结构错误或外部信息(例如数据文件)访问错误?
4.性能上是否能够满足要求?