测试基本理论

功能测试-- 自动化测试(测试开发,持续集成,testops)

– 性能测试 --高级性能测试 --(架构师)

软件测试的分类:
方法:(思路)
黑盒测试 :只需要检查输入和输出,中途的原理和过程不进行考虑

白盒测试: 透明盒子,中间的整个结构清清楚楚,通过检查内部的结构看功能有没有问题,对应到软件看代码写的对不对

灰盒测试:结合两种方法

方向:
1)功能测试:测试功能,比如一个网站可以画思维导图的事情就是这个网站的功能,功能测试采用最多的方法是黑盒测试,但两者并不等同

2)性能测试:测试性能,判断检测服务器能达到多好(比如双十一淘宝卡就是性能不好)

分为三个方向:

  1. 压力测试(发现软件的性能瓶颈, 找底线,食堂空位不会有一丝剩余且客户达到最多)

  2. 负载测试 (一般采用峰值的百分之八九十进行模拟 持续保持高强度工作能够维持多长时间)

  3. 并发测试 (测试多线程出错的情况 一瞬间所有人在做同一个事情)

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(当然站点信息在文件里也有保存)

猜你喜欢

转载自blog.csdn.net/weixin_44697051/article/details/113991346