时间:2021-07-06(自学软件测试)
笔记内容
前言
自学视频来源:https://www.bilibili.com/video/BV14v411B7p5?t=15
个人分享:软件测试是半开发的,要会看代码,掌握HTML+JS+MYSQL+LINUX+SPRINGBOOT+数据结构与算法+测试工具+PYTHON。这样才能走的长远
提示:以下是本篇文章正文内容,本文章仅是读者自己的日常学习笔记,大家一起加油!!!
剩下的还没有整理完,一些自动化测试
一,软件和软件的分类
(1)软件的定义:
软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。
**软件=程序+数据+文档**
程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。
数据是使程序能正常操纵信息的数据结构。
文档是与程序的开发、维护和使用有关的图文资料。
(2)软件的分类:
1.按层次划分
系统软件+应用软件
2.按组织划分
商业软件+开源软件
3.按结构划分
单机软件(一个计算机就能使用的软件,画图,计算器)
分布式软件(多个计算机联合使用的软件,联机,王者 ,QQ)
二,软件缺陷
(1)软件缺陷的定义
1.软件未实现产品说明书要求的功能
2.软件出现了产品说明书指明不应该出现的功能
3.软件实现了产品说明书未提到的功能
4.软件未实现产品说明书虽未明确提及但应该实现的目标
5.软件难以理解,不易使用,运行缓慢(从测试角度看)最终用户会认为不好
例:
ybq:yzg你去给我买瓶水。
yzg买了一杯热水
问yzg做的事情是否满足需求?
yzg觉得满足了需求,热水也是水啊!(多喝热水!!!)
ybq觉得没有满足需求,我要的是奶茶,奶茶也是水啊(你什么都不懂!!!)
总结:需求不明确
注:
1.所有不满足或者超出需求的都是缺陷
2.没有不存在缺陷的软件,只有迄今为止尚未发现缺陷
(2)软件缺陷的定义
正向思维的定义
反向思维的定义
IEE定义的软件测试
广义的软件测试
软件测试的目的
测试和调试 的区别
软件测试的对象
三,软件测试的由来
起源上世纪70年代中期
《测试数据选择的原理》
《软件测试的艺术》
20世纪80年代早期,软件行业开始逐渐关注软件产品质量,
并在公司建立的软件质量保证部门QA或SQA
四,软件测试过程开发模型
(1)软件测试V模型
v模型也称快速应用开发模型,即RAD模型
V模型左侧是开发阶段,右侧是测试阶段
开发阶段从定义用户需求开始,对需求进行需求分析,讲需求转换为概要设计和详细设计,最后形成程序代码。
测试阶段在代码编写完以后,先做单元测试,然后集成测试,最后集成测试,到系统测试
V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;
系统测试应当验证系统设计,检测系统功能,性能的质量特性是否达到软件设计的指标;
由测试人员和用户进行软件测确认测试和验收测试追述软件需求说明书测试,以却确认软件的实现是否满足用户需求或合同的需求
v模型的局限性:就是把测试过程放在了需求分析,概要设计,详细设计,以及编码之后的一个阶段,其实测试也是可以对需求分析,系统设计的验证和功能的确认
(2)软件测试W模型
相对与v模型,w模型增加了软件各开发各阶段中应同步进行的验证和确认活动;
w模型测试伴随整个软件生命周期,测试的对象不仅仅包括程序,需求,设计等同样需要测试
w模型缺陷:需求,设计,编码是串行,只有上一阶段完成下一阶段才开始工作,所以W模型无法支持迭代开发模型
(3)软件测试H模型
和v模型w模型相比较,H模型将测试活动完全独立出来,使得测试准备活动和测试实行活动清晰地体现
只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了
H模型揭示了四个方面的内涵
1.软件测试不仅仅指测试的执行,还包括很多其他的活动
2.软件测试是一个独立的流程,贯穿产品的整个生命周期,与其他流程并发的进行;
3.软件测试要尽早准备,尽早执行
4.软件测试是根据被测物的不同而分层次进行的,不同层次的测试活动可以是按照某个先后顺序进行的,也可以反复的
(4)软件测试X模型
(略)
(5)软件测试前置模型
1.开发与测试结合
2.对每一个交付内容进行测试
3.在设计阶段进行计划和测试计划
4.测试和开发结合在一起
5.验收测试和技术测试保持相互独立
6.反复交替的开发和测试
7.发现内在的价值
编码-测试-编码-测试
五,软件测试分类及流程
(1)按照测试方法分类
1.白盒测试
白盒测试又称结构测试或逻辑驱动测试,指通过程序内部结构的分析,检测来处理寻找问题
白盒测试把程序看成一个装在透明的白盒子,也就是清楚了解程序的结构和处理过程,检测所有的结构和路径都是正确的,检查程序的颞部动作是否按照设计说明的规定正常执行
2.黑盒测试
黑盒测试又称功能测试或数据驱动测试,指通过软件的外部表现来发现缺陷和错误。
黑盒测试把测试对象看出一个黑盒子,完全不考虑程序内部结构和处理过程;
测试者仅需要从程序的功能需求规范考虑,确定测试用例和推断测试结果的正确性,是站在使用软件或程序的角度
3.灰盒测试
灰盒测试介于白盒测试和黑盒测试之间,主要关注输出对于输入的正确性;同时也关注内部表现,通过一些特征性的现象,事件,标志来判断内部运行的状态
将黑盒和白盒测试结合起来是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采用集路径执行信息和外部用户接口结果的测试技术
(2)按照测试方式分类
1.静态测试
2.动态测试
(3)按照测试过程分类
1.单元测试
2.集成测试
3.系统测试
4.验收测试
(4)按照测试目的分类
1.功能测试
2.接口测试
3.用户界面测试
4.健壮性测试
5.性能测试
6.强度测试
7.压力测试
8.负载测试
9.安全性测试
10.可靠性测试
11.回复测试
12.安装/卸载测试
13.兼容性测试
14.文档测试
(5)按照测试是否需要人共干预分类
1.手工测试
2.自动化测试
(6)软件测试流程
六,软件测试用例
(1)用例测试定义
对一项特定的软件产品进行测试任务的描述,体现测试方案,方法,技术和策略
内容包括测试目标,测试环境,输入数据,测试步骤,预期结果,测试脚本,并形成文档
(2)用例测试编写
七,黑盒测试
黑盒测试注重于测试软件的功能需求:主要试图发现五类错误
1.功能不正确或遗漏
2.界面错误
3.数据库访问错误
4.性能错误
5.初始化和终止错误等
1.等价类划分法
有效等价类:对于程序而言有意义的输入数据
无效等价类:对于程序而言,不合理无意义的输入数据
2.边界值分析法
标准边界值测试:只考虑有效数据范围的边界值
健壮边界值测试:考虑有效和无效数据范围的边界值
3.因果图法
(略)
4.决策表法
(略)
5.正交测试法
(略)
6.错误推测法
(略)
7.场景法
(略)
八,白盒测试
(1)静态白盒测试
不执行程序的情况下审查软件设计,体系结构和代码从而找出软件缺陷的过程
测试对象是文档,代码等非计算机执行的部分
常用的有:
代码审查法
静态结构分析法
静态质量度量法
(2)动态白盒测试
1.逻辑覆盖测试法
语句覆盖
判定覆盖
条件覆盖
判定条件覆盖
条件组合覆盖
路径覆盖
2.基本路径测试法
以详细设计或者源代码作为基础,导出程序控制流程图
复杂度等
3.程序插桩法
(略)
九,单元测试
(1)单元测试的主要任务
1.程序语法检查
2.序逻辑检查
3.模块接口测试
4.局部数据结构测试
5.路径测试
6.边界条件测试
7.错误处理
8.代码书写规范检查
(2)单元测试流程
1.指定单元测试计划
2.搭建测试环境
3.执行单元测试用例
4.判断测试用例是否通过?
5.提交《单元测试报告》
(3)单元测试–静态检查
1.检查算法的逻辑正确性
2.模块接口的正确性检查
3.输入参数有没有正确性检查
4.调用其他方法接口的正确性检查
5.出错处理
6.保证sql语句,表达式的正确性
7.检查常量或局部变量使用的正确性
8.表示符定义的规范性
9.程序风格的一致性,规范性
10.检查程序中使用的神秘数字是否采用了表示符定义
11.检查代码是否可以优化,算法效率的提高
12.检查程序是否清晰可见
13.检查方法内部注释
14.检查注释文档
(4)单元测试–动态跟踪
1.设置断点
1.函数调用语句
2.判断转移/循环语句
3.sql语句
4.复杂算法段
2.可疑变量查看在跟踪状态下,当程序停止在某条语句时可以查看当前变量的值和对象的属性
3.主义群集现象
(5)单元测试策略
1.孤立的单元测试策略
2.自定向下的的单元测试策略
3.自低向上的单元测试策略
十,集成测试
(1)主要解决的问题
1.将各个软件单元组装起来,各个软件单元在通过接口进行数据交互的时候,数据是否发生流失的情况
2.将各个软件单元组装成系统或者子系统,能否达到预期设计的各项功能要求
3.某一个软件单元的功能会不会对其他软件模块产生不良影响
4.全局数据结构是否有问题,是否被不正常修改
5.每个软件所产生的误差积累起来,是否会被放大。从而影响系统的误差