功能测试-- 自动化测试(测试开发,持续集成,testops)
– 性能测试 --高级性能测试 --(架构师)
软件测试的分类:
方法:(思路)
黑盒测试 :只需要检查输入和输出,中途的原理和过程不进行考虑
白盒测试: 透明盒子,中间的整个结构清清楚楚,通过检查内部的结构看功能有没有问题,对应到软件看代码写的对不对
灰盒测试:结合两种方法
方向:
1)功能测试:测试功能,比如一个网站可以画思维导图的事情就是这个网站的功能,功能测试采用最多的方法是黑盒测试,但两者并不等同
2)性能测试:测试性能,判断检测服务器能达到多好(比如双十一淘宝卡就是性能不好)
分为三个方向:
-
压力测试(发现软件的性能瓶颈, 找底线,食堂空位不会有一丝剩余且客户达到最多)
-
负载测试 (一般采用峰值的百分之八九十进行模拟 持续保持高强度工作能够维持多长时间)
-
并发测试 (测试多线程出错的情况 一瞬间所有人在做同一个事情)
3)安全测试:(黑客里面的一些盗取信息这样?? 了解,模拟攻击系统)
阶段:
1)单元测试:测试小的代码块
测试对象:开发写的代码模块(开发写的(def)方法,函数,类)
2)集成测试:通过接口将不同的模块进行连接,测试方向是中间的通道,即接口
测试对象:接口(数据与数据之间互相传输的通道,类似usb)
3)系统测试:集成过后就是形成系统,有以下几个方面
功能,性能,安全,
兼容性:web 同一个网站在不同浏览器上能否正常使用
app (分为andriod iOS系统)在不同手机上安装之后能够正常运行
易用性:用户体验(主观)是否顺手这样
稳定性:在使用的过程中会不会出现软件崩溃的现象,一般7*24
UI:软件的界面是否好看,风格是否统一(主观)也可以依照设计图进行测试
4)验收测试:交给用户,是否满足最开始所求的要求,最后的过程就是验收过程
系统测试通过之后,跟测试没有很大的关系,让别人去看,但是是测试阶段的过程
对象:
平台上
APP测试(手机),web测试(电脑)(自动化),物联网(手机+硬件),车联网(汽车),小程序测试,嵌入式测试(扫地机器人,程序运行到硬件里面,通过嵌入式开发做的东西,实现的),大数据测试,AI测试(体力)
都是软件,测试的方法都是一样的,并不是多么高大上
硬件测试:抗震抗衰高温情况腐蚀度等,需要外在的辅助进行
状态:
静态测试:白盒测试看代码
动态测试:黑盒或者灰盒
这两个指软件的状态,运行起来和不运行起来
其他:
冒烟测试:测试前的测试 , 在测试前检测具备可测试性嘛?不通过打回去重新进行测试(非正式)
回归测试:APP测试结束,bug告诉开发,之后检查开发有没有把bug修改完成叫做回归测试
阿法α测试:内测 软件不知道交给实际用户使用会不会出现问题,找内部人员进行尝试使用
贝塔β测试:公测 用户也参与进来试用
互联网公司研发部门的团队:
项目经理:负责整个项目的管理
产品经理:负责软件的需求收集设计等待
开发:前端 (app)后端(运行在后面的逻辑什么的 写代码)
测试
运维:负责硬件网络设备的维护和管理
运营:产品完成后要靠运营拉用户
设计:负责对软件的UI进行设计
研发管理模型:(采用不同的模型,工作流程不一样)
瀑布流:从上往下,不可逆转,每个步骤之间独立,上下级之间分明,但是不变通
需求分析–制定计划—系统设计–编码–测试–交付 //从上而下不变通,效率低
V字型:
开发做的工作 测试所做的工作(一一对应)
需求分析↓ 验收测试↑
概要设计 ↓ 系统测试↑
系统设计 ↓ 集成测试↑
编码 -> 单元测试↑
W字型:(双v模型,用的最多)
用户需求↓ 用户需求↓ 交付↑ 验收测试↑
需求分析 ↓ 需求分析↓ 实施↑ 系统测试↑
概要设计 ↓ 测试设计↓ 集成 ↑ 集成测试↑
详细设计↓ 编码↑ 用例设计↓ 单元测试↑
开发↑ 测试↑
开发和用户工作同时进行
敏捷模型:
目前比较流行的趋势,但是大多数在摸索
高效的工作,及时的沟通,工作日报,白板,站立会,集中办公
螺旋型:
H字型:了解
软件是什么:
程序,文档,数据的合集
优秀的测试养成攻略:
测试能力,文档能力,编程能力
测试流程:
1)需求分析阶段
需求分析:需求文档,产品原型,口述
学习业务流程,
提取功能点,(从大到小的把功能提取出来然后写清楚,找到最小的功能按照树状的结构列出来)
编写需求分析说明书
没有需求处理方式:参考市面上已经成熟的同类型的产品实现
2)测试设计阶段
测试计划:时间人员资源的分配
测试方案:针对每个测试内容如何开展测试,采用什么测试计划,什么测试工具
测试策略:哪些内容先测,哪些内容后测,开始测试和结束测试的标准是什么
前三个就是六要素
!!! 测试用例:就是大家都要了解的
3)测试执行阶段
4)测试总结阶段
5w+1h why what when where who how
测试用例的编写和bug的管理
【1】测试用例:
【用例编号 (唯一)用例名称(言简意赅) 前置条件(执行用例之前软件必须要满足的条件) 优先级(执行这条用例的时间要求紧急等级) 重要级(被测的功能在系统里面的重要级别) 测试数据 测试步骤 预期结果 实际结果】
要对软件进行测试,对测试过程做一个设计,从哪里测,怎么测,地毯式扫描,判断预期结果和操作的实际结果是不是一样
给测试人员提供工作的依据
根据我们之前的需求分析说明书转化而来的,测试用例达到百分之多少的覆盖
测试方法:(具体的方法,具体的应用)
等价类:找出最具有代表性的值(少部分的值能代表大部分的情况)
无效等价类:有效值范围外有代表性的值 0 200.01
有效等价类:有效值范围里的代表值 0.01 0.02 200 199.99 99.99
边界值:0.01, 200就是发红包的边界值,拿到边界值可以根据边界值找到实际的等价类
等价类和边界值是用来测试数据使用的
场景法:
微信红包(用户针对发红包的事情会怎么操作)
成功发送:1)用户输入符合要求的金额,发送红包成功 —> 0.01 0.02 200 199.99 99.99
发送失败:2)用户输入超出范围的值不能发送成功 —> 0 200.01
3) 用户输入非数字的值不能发送成功 —> h 汉字 $%。
上面三种简单效率高,缺点:有可能导致遗漏
因果图
判定表
路径覆盖
测试常识:
测试是无穷无尽的(微信发红包填写的金额多种组合)
评审:
同行评审
小组评审
部门评审
项目评审
第三方评审
邮件评审
【2】bug的管理:
bug的管理平台: 禅道 bugfrree ALM/QC testlink(只需要会一个就行)
bug的六要素:
1、编号 2、 名称 3、bug的优先级 :高中低 4、bug的等级:致命的 :核心流程,闪退崩溃,钱有关 严重的 : 一般的 : 轻微的:UI上 用户体验
5、bug复现步骤:用例步骤复制,预期结果实际结果 6、附件:目的为bug佐证
bug的生命周期:bug发现到通过就是它的生命周期(bug管理流程)
bug的状态:
新建new
打开、激活、open
已确认
已解决
拒绝
重新打开
关闭
延期处理
重复bug;
版本迭代:
随着时间推进,测试次数,会发布很多版本,其中版本号是不断叠加的
增量测试:只测试已知的有变化的部分(该回归还是回归)
全量测试:每发一个新版本,又全部测试一遍,测试软件的所有功能
3)测试执行阶段
1、照着测试用例一条一条执行预期结果和实际结果做比对,一样则通过,不一样则有问题
2、提交bug
3、回归测试:检查已经知道的bug是否被修改,在版本2上检查版本1的是否已改好
4)测试总结阶段
编写测试报告
1)对工作的总结,
2)对bug的统计分析(测试、开发、软件模块、等级、解决的时间、每个版本、状态),
3)对被测软件质量的评估(1、2级bug全部关闭,3级关闭80%以上,四级无所谓)
测试应用:
1)web测试:
浏览器访问对应的地址,打开对应的网站
2)APP测试:
测试环境搭建好之后,把app安装在我们的测试里,点开,挨个根据测试用例测试
比web更复杂 1、安装/卸载 2、消息推送 3、更新 4、 弱网(手机网络情况比较复杂,不同网络下使用看效果)5、场景交互测试(来电话,正在听歌,调用相机),前后测试台的切换 6、权限测试 7、离线测试
以上是APP专项测试,其他两个都有
区别:新版本在app需要安装,web不需要安装
软件结构:
B/S :使用最新不需要安装
brower 浏览器 server服务(运行在服务器里面的东西)
淘宝啊,微博啊,网站全部是bs架构
C/S :使用最新需要安装
client客户端 (需要单独安装的,比如APP,电脑上的qq 微信,和浏览器一样,通过网络去访问服务器,实现对数据的展示和操作) server服务
Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。 以及如果需要的话,可能还有一定的操作空间。 具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就是用户浏览这个网站所花费的时间。
Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的CGI等程序 [2] 。
举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web, 会看到所有保存在硬盘上的 Cookie。在这个文件夹里每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的 Web 站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名, 就可以看到是哪个 Web 站点在机器上放置了Cookie(当然站点信息在文件里也有保存)