一:首先软件测试的基本流程:
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