测试篇-理论知识

mac2025-04-24  7

一:首先软件测试的基本流程:

1.产品提出需求,相关人员进行开会讨论确认需求,保证需求可执行。

2.前端,后台相关人员进行功能开发,测试编写测试用例。

3.前端与后台进行联调完毕后,测试进行冒烟测试,确保测试对象正常运行。

4.进行测试接口测试,仿真测试以及最终的线上测试,发现bug上传禅道通知相关人员确认并进行修改,修改后进行回归测试,妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。

5.整体bug全部修改完毕,重新走完流程确保无遗漏,编写测试报告交付产品经理或者项目经理确认最终进行打包上线。

测试用例的内容点:功能测试(当前所有的功能点通过性测试),界面易用性(是否符合需求),中断测试(APP切换,断网断电,来电信息),性能测试(客户端:耗电量,运行内存,服务器:响应时间,压力测试),安全测试(授权,代码是否会被获取,是否做混淆或者加密),兼容性(不同版本,浏览器,机型),网络(wifi,热点,4G,无网,不同运营网络测试,弱网(延时,丢包))

二:软件测试的基本原则:

1.测试软件存在缺陷。证明测试对象是有缺陷的。

2.测试尽早介入,缺陷发现越早,修复成本越小。

3.不可进行穷尽测试(无意义测试)。

4.缺陷集群性(2/8原则)80%的缺陷发现在20%的模块中。

5.杀虫剂悖论,如果一直使用相同的测试方法或手段,可能无法发现新的bug。

6.测试环境的特殊新,测试活动依赖测试内容,不同的行业,测试活动的开展都有所不同,比如测试技术、测试工具的选择,测试流程都不尽相同,所以软件测试的活动开展依赖于所测试的内容

7.不存在缺陷谬论,软件测试不仅是找出缺陷,同时也需要确认软件是否满足需求。

三:测试级别(按开发阶段):

1.单元测试(Unit Testing):针对被测的最小组成单元实施的测试(类,函数,功能模块)

2.集成测试(Integration Testing):组件间,单元与组件间,单元之间的接口测试,验证接口是否符合设计,接口是否调通。

3.系统测试(System Testing):充当用户对软件进行测试。

4.验收测试(Acceptance Testing):线下测试,uat仿真测试,线上真实测试。α测试 = 内测  β测试 = 公测  UAT测试 = 正式版

四:测试分类:

1.功能测试(严重当前功能是否正常运行)(白,黑,灰测试)

2.兼容性测试(验证软件在不同情况下的表现)

3.安全测试(验证安装在系统内的保护机制在实际应用中不被入侵不受因素影响,在发布之前找到问题并解决降低成本)

4.性能测试(通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试)

5.按测试对象分类:     1.白盒:软件内部,底层代码     2.黑盒:软件的主体功能     3.灰盒:既兼顾黑盒又要兼容白盒,(接口测试)

6.测试对象是否执行:     1.静态测试:测试不执行(布局,页面)     2.动态:将软件运行在真实的环境中测试

7测试手段:     1.手动测试;由测试进行手动验证     2.自动化测试:(脚本测试)、(第三方测试工具)

8.软件质量:(功能靠用,效率可移)     1.功能性(满足显示或者隐式需求)、易用性(易学)、可靠性、效率性、可维护性()、可移植性(在不同平台上使用)

day02:

编写测试用例:

用例编号    九悦-首页-定位     日期         测试人         测试目的    定位     执行条件             测试过程             预期结果             实际结果         bug 等级    致命    严重    一般    低级

1.4测试用例的设计方法 1.等价类划分    使用场景:  在有输入框使用等价类划分以及边界值法混合使用 按照需求将穷尽数据进行分类 区分去有效的数据和无效的数据 有效数据成为 有效等价类

无效数据成为 无效等级类

2.边界值      使用场景:  在有输入框使用等价类划分以及边界值法混合使用       有效边界值     1-100       无效边界值     -1 —负数的无穷尽                        101–整数的无穷尽 3.因果法      应用场景:  一个界面有多个操作,多个操作之间有一定的组合关系或者是限制关系 输入不同的操作会产生不同的效果

4.场景法       应用场景:      在界面没有过多的填写项,所有的操作都是通过鼠标的单击双击  金融类 游戏类 硬件交互类

ATM取款机  取款失败的场景: 1.密码错误 2.账号余额不足 3.Atm中没有钱 4.吞卡 5.超限 6.无效的银行卡 7.非银行卡 5.判定表 6.正交 7. 随机法     使用场景:  列表数据中实现随机数据 在无穷中的数据中随机选择进行测试

day03:

测试强度        测试强度在有需求文档或者api的时候可以根据需求文档测试       在没有测试文档或者是api的时候,可以根据个人经验是否测试     考虑的因素: 1.2个整数(正整数 负整数) 2.2个输入框是否为空 3.特殊符号 4.中英文字母/汉字 5.提醒框 / 输入框是否重置

Bug是指在代码中存在的

1.2软件缺陷       定义: 缺陷就是软件的问题,最终表现为没有客户的需求

1.3哪些属于软件缺陷 1.软件没有达到规格说明书定义的功能 2.软件出现了规格说明书上指明不能存在的错误 3.软件功能超出了说明书上的范围 4.软件测试人员或者用户觉得不友好的 5.软件未达到说明书上应该具有的功能

1.4软件缺陷的表现形式 1.功能上没有实现或者部分没有实现 2.设计不合理 功能不明确的 逻辑不清楚的 或者是逻辑本身就是存在矛盾 3.实际结果与预期结果不同 4.没有达到规格要求说明书上的要求性能指标 5.运行有错的 崩溃  中断 页面混乱 6.数据不正确 精度不够  不完整 或者是格式不统一 7.用户不能接受的问题。如果存取时间过长,页面不美观  小广告太多 8.硬件或者软件存在的其他问题

1.5软件缺陷的状态(生命周期) 1.提交    – 测试人员提交发现的缺陷给开发 2.打开   –  将缺陷转一个待处理的状态 3.拒绝   –  开发者不认为这是一个缺陷  4.修复   –  开发者将缺陷进行修改 5.关闭   – 测试人将进行回归测试之后认为该缺陷已经解决后  6.推迟   – 将问题持续到下一个版本中在去解决 但是要记录详细的修复日期或者版本   测试人员新提交的缺陷为  新建状态,在确认有效后将缺陷状态改为 打开状态, 开发人员修改后  已修复状态   测试人员需要进行回归测试,如果验证问题已解决 将状态改为 修复状态  如果经过回归测试验证缺陷依然存在  将缺陷的状态改为 打开状态 让开发再次修复。如果开发人认为此缺陷需要延期修复 将缺陷的状态改为延期(推迟状态)  延期的时候有项目负责人 开发主管 测试主管确认 才可以延期 否则还是打开状态

1.6软件缺陷的严重程度进行划分 1.low     – 表面性错误    2.Medium  – 影响到一个对立的功能,仅仅发生在特定条件下 与需求定义的不台一直 断断续续的出现的问题 3.High      – 功能点没有实现不符合客户的需求 导致丢失数据  4.Veryhigh   – 频繁死机 大部分功能不能使用 5.Critical     – 系统瘫痪 异常退出 死循环 严重计算失误

结局缺陷的优先级

1.low  --时间和资源允许情况下进行修复 2.Medium – 不会延迟发布  3.Highh  – 必须在发布之前解决 4.Veryhigh    --必须解决   5.Critical    –

1.7 软件的缺陷的分类:    1.系统缺陷    2.数据缺陷    3.数据库缺陷    4.接口缺陷    5.功能缺陷    6.安全性缺陷 7.兼容行缺陷 8.性能缺陷 9.界面缺陷

17缺陷报告         1.7.1 书写规范:        1.标题简洁  提供缺陷的本质信息即可        2. 复现的步骤要详细 可以用数字编号(测试用例的编号)        3.实际结果要描述浮现后的结果        4. 列出期望结果(在测试用例中存在期望结果可以不写)         5.提供条件(可以在测试用例)        6.提供严谨的测试报告给开发人员

缺陷报告的使用以及测试用例的案列   https://blog.csdn.net/weixin_41948075/article/details/89287926

day4:

Mysql 1.1数据库的介绍:       数据库从小到大的分类:       大型数据库   Oracle  Db2       中型数据库    sqlserver         小型数据库    mysql       微型数据库    sqlite 1.2 数据库的安装       数据库分为服务端和客户端    客户端分为常用的可视化工具类: 猫抓  小海豚    安装的注意事项:   1.如果安装失败 需要在注册表将数据完全删除  (运行输入regedit  使用ctrl+F 查找并删除) 2. 安装的时候 一定要更改编码  utf-8 3. 允许多个人员多数据库的访问 4. Mysql的端口号  3306   mysql只有用户权限 root  5. 卸载mysql的服务端  同时将文件安装后的文件夹删除

1.3数据库的数据类型         整数类型   int  bigint         小数类型   float  double         字符串类型      char(10)   数据库会分配一个长度为10个空间 长度是不可以                        发生改变 Varchar(10)数据库会分配一个长度为10个空间 长度是可以发生改变的         时间类型    date   time  datatime   timestamp(时间戳) 大数据类型     blob  clob 文本类型       text 1.4 sql的分类        DDL   数据库定义语言      create  alter  drop (对库和表的操作)        DCL   数据库控制语言      grant  revoke        DML  数据库的操作语言     insert into    update  delete         DQL  数据库的查询语言      select  order by  group by  limit  inner join  left                                     join    right  join 1.5 sql的注意事项         1. mysql不区分大小写         2. 数据库的中注释以 #   /**/   –          3. 数据库的 “”  ‘’ 没有区别 1.6sql表语句 1.查看所有数据库   Show databases   2.新建数据库 Create database  数据库的库名   3.删除数据库 Drop database  数据库的库名 4. 切换数据库        Use 数据库库名 5.查看当前数据库的表    Show tables

1创建表  Create table 表名( 字段名  数据类型   约束条件, 字段名1  数据类型1, 字段名2  数据类型2, )

Sql约束条件:      自增  auto_increment             主键  primary key      非空  not null 唯一 unique 默认值  default 外键  foreign key  (实现多表的联查)

Eg:   Crate table student( Id  int  primary key  auto_increment unique, Stu_id  int not null unique, Stu_name varchar(20), Stu_sex default sex(‘男’),     Stu_age int )

1.6.2对表结构的操作          查看表结构 Desc 表名   查看的是表的 字段名  数据类型 约束条件          查看建表语句             Show crate table  表名           修改表名              Alter table 旧表名 rename 新表名          修改字段              Alter table 表名 change 字段名 新字段名 数据类型           添加字段              Alter table 表名 add 字段名 数据类型           删除字段              Alter table 表名 drop 字段名            删除表                 Drop table 表名

1.6.3  对表的增 删  改                   增: 1.单条数据的增加   Insert  into 表名(字段名) values (字段值) 2.多条数据的增加                            Insert  into 表名 (字段名) values (字段值1),(字段值2),(字                            段3).。。。。

删除:  delete from 表名 where 删除条件 1.物理删     将数据从数据库中删除 2.逻辑删  将数据的状态从1改为 0  (0 为不显示  1显示)

修改:                                Update form  表名 set  字段名=字段值 where 条件                           跟新一行一列                         Update 表 set 字段名 = 字段值 where id = 1 更新一行多列 Update 表 set 字段名 = 字段值 where  name=‘张鹏’ 更新多行一列 Update 表名 set 字段名 = 字段值 where id>=3 and id <=5 跟新多行多列  Update 表名 set 字段名 = 字段值 where  id = 2 or id= 3 跟新多个字段  Update 表名 set 字段名1= 字段值 1, 字段2 = 字段值2 where 条件

1.6.4 对表的查询               1. 查询所有:(*代表的是通配符 代表所有数据 可以换成 具体的字段查询) Select * from 表名 2. 条件查询 Select * from 表名 where 条件

3.区间查询              Select  * from 表名 where id >3 and id<5     Select  * from 表名 where id >3 or id<5     4.排序查询   order by    升序 asc    (mysql中默认的就是asc) 降序 desc

Select * from 表名 order by stu_age asc/desc 5.分页查询   limit  初始值,记录行数(每页显示的行数)   Select * from stu limit 0,3 每页记录数 pagesize 页码数  pageNumber

Limit(pageNumber-1) * pagesize   ,  pagesize  真分页   将查询出来的所有数据直接分页   假分页   将查询出来的所有数据在页面展示的时候在进行分页

6.去重查询   distinct  一般和聚合函数一起使用 7.模糊查询   like   %  相当于任意字符  _  相当于一个字符       Select * from 表名 where  字段名 like ‘%张%’ Select * from 表名 where  字段名 like ‘张_’ 8.分组查询 group by     Select * from 表名 group by sex  =‘男’ 9.having  实现分组进行查询

1.6.5  sql中范围符号                  And   or   in                   Between and    1 > M< 10  (错误的)

1.7聚合函数          1.7.1求和                         Sum(字段名)

Select  sum (stu_age) from 表名         1.7.2 求平均     Avg(字段名) Select  avg(stu_age) from 表名  1.7.3 求最大值 Max(字段名) Select  max(stu_age) from 表名         1.7.4 求最小值 Select  min(stu_age) from 表名

1.7.5 求总的行数      Select  count(stu_id) from 表名                    1.8 单表查询的公式 Select 分组条件 或者 聚合函数 From 表名 Where 条件 1 Group by 分组条件 Having  分组后的条件 Order by 排序条件 Limit   起始位置,记录数

1.9多表联查 – 实现使用笛卡尔积     –  内连接   INNER JOIN     –  外连接   左外链  LEFT JOIN     –                      右外联  RIGHT JOIN

– student 和中间表  stu_subject 实现相连    select stu_name,sj.subjectname from student  as stu    INNER JOIN stu_subject  as stu_sub    ON stu.stu_id = stu_sub.stu_id – 中间表和 subject 表实现相连    INNER JOIN subject as sj    ON stu_sub.subjectnumber = sj.subjectnumber

两表联查:

共同字段sid,查询表1的name,age,表2的成绩

SELECT 表1.字段,表1.字段,表2.字段 FROM 表1,表2 WHERE 表1.sid = 表2.sid

SELECT stu1.sname,stu1.sage,stu2.cj FROM stu1,stu2 WHERE stu1.sid = stu2.sid

SELECT stu1.sname,stu1.sage,stu2.cj FROM stu1 LEFT JOIN stu2 ON stu1.sid = stu2.sid ———————————————— 版权声明:本文为博主「@删库跑路」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zhangkaiyazky/article/details/100996859

最新回复(0)