一、V模型和W模型?
V测试需求-需求分析-概要设计-详细设计-编码和实现-单元测试-集成测试-系统测试-验收测试
W需求分析-概要设计-详细设计-编码实现-模块集成-系统构建-系统安装需求测试-概要设计测试-详细设计测试-单元测试-集成测试-系统测试-验收测试
二、B/S和C/S区别:
标准:相对于C/S架构来说B/S架构的两端都是使用现成的成熟产品,B/S会显示的标准一些。
效率:相对于B/S架构来说C/S中的客户端可以分担一些数据的处理,执行效率会高一些。
安全:B/S架构当中得到数据的传输都是以Http协议进行传输的,而Http协议又是明文输出。可以被抓包,那么B/S架构相比C/S架构显得就不那么安全了
升级:B/S架构只需要在服务器端将数据进行更新,前台只需要刷新页面就可以升级,而C/S架构必须要将两端都进行更新才可以。
开发成本:相对于B/S架构来说C/S当中的客户端需要自己开发,B/S不用,所以说C/S成本会高一些。
三、简述软件的分类
按场景类分:
工具类软件如:word, wps
影视类:腾讯视频爱奇艺
电商类:京东,淘宝
游戏类:英雄联盟穿越火线
按架构分类
1单机版软件:office、红警等
分布式软件:
C/S架构软件:客户端需安装】软件,如QQ 微信等
B/S架构软件:客户端为浏览器 ,如百度、hao123等
四、测试软件的原则
测试显示软件存在缺陷、穷尽测试是不可能的、测试今早介入、缺陷集群性、杀虫剂悖论、没有错误是好是谬论、测试活动依赖于测试内容
五、软件测试的流程
软件测试流程图
六、软件测试的分类
1.按阶段分:单元测试、集成测试、系统测试、验收测试
2.按内容分:功能测试、性能测试、兼容性测试
3.按其他分:冒烟测试、随机测试、安全性测试、探索性测试、Alpha测试、Beta测试
七、软件的定义
一系列按照特定顺序组织的计算机数据和指令的集合
测试计划
1.模板
1.测试目的:测试内容,最多遗留bug,上线时间
2.测试资源
人力资源:岗位、姓名、职责
软件资源:浏览器、操作系统、DB、运行环境、服务器
硬件资源:手机、电脑、平板、汽车、机器人
网络资源:互联网、局域网
3.测试范围
1. 测试对象
2.测试特性
3.测试非特性
4.测试进度:任务、测试人员、预期开始时间、预期结束时间、时间进度、备注
5.测试风险
1.内容:人资法环时
2.模板:风险编号、风险描述、责任人、风险等级、对项目的影响、规避方法
6.人员分工:岗位、姓名、工作内容
7.测试准测:启动(满足什么情况可以进行测试)、暂停(遇到什么情况测试要暂停)、再次启动(在什么情况下可以重新启动测试)、停止准测(什么情况可以停止测试)
8.测试策略:功能测试、界面测试、接口测试、兼容性测试、易用性测试、安全测试
9.输出文档:
1.模板:文档编号、文档名称、编写人、详情
2.内容:测试计划、测试用例、测试报告、测试缺陷
一、用例核心要素(9大项)
用例编号、所属模块、用例标题、优先级、前置条件、操作步骤、测试数据、预期结果、实际结果
二、什么是高质量测试用例
1.测试用例覆盖所有的用户需求
2.测试用例简单明了
3.各类型的测试用例要齐全
4.用最少的用例覆盖最多的需求
3.测试用例的分类
等价类划分法:
把所有有可能输出的数据分为若干个区域,然后从每个区域中取出少量有代表性的数据进行测
边界值分析法
取稍高于或稍低于边界的一些数据进行测试
上点:是指边界上的点,无论此时的域是开区间还是闭区间,开区间的话,上点就是在域外,闭区间的话,上点就是在域内。
离点:是指离上点最近的点,这里就跟是闭区间还是开区间就有关系了,如果是开区间,那么离点就在域内,如果是闭区间,那么离点就在域外。(开内闭外)
遵循的原则:开内闭外 开区间往中间找,闭区间往外找
内点:域内的任意点都是内点
因果图法
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
错误推测法
一般这钟方法是基于经验和直觉推测程序中可能发送的各种错误,有针对性的设计。只能作为一种补充
正交实验法
主要包括两部分内容:第一,是怎样安排实验。第二,是怎样分析实验。
场景法
通过模拟业务场景对系统的功能点或业务流程的描述,从而提高测试效果的黑盒测试方法
有两个流:基本流和备选流
缺陷产生的原因
1.需求不明确和变更
软件需求不清晰或者开发人员对需求理解偏差,导致软件设计时偏离用户的需求目标,造成软件功能或特征上的缺陷。此外,开发过程中客户频繁更新需求也会影响软件最终的质量。
2.软件结构复杂
3.编码问题
4.项目期限短
5.使用新技术
软件缺陷分类
1.测试种类:界面类、功能类、安全类、性能类、兼容性类
2.缺陷严重程度:严重、一般、轻微、次要
3.缺陷优先级:立即解决、高优先级、正常排队、低优先级
4.缺陷发生阶段:需求、架构、设计、编码、测试
缺陷的核心要素
缺陷编号、缺陷状态、缺陷标题、优先级、重现步骤、严重程度、缺陷类型、测试环境
缺陷状态:新建、已指派、已打开、已修复、已拒绝、已延期、已关闭、重新打开
缺陷报告
禅道测试人员执行流程:
1、 查看任务 测试人员登录禅道系统,进入“项目” → “任务” → 的链接页面,此时就可以查看项目经理分配给测试人员的 任务,如下图:
2、 提交bug 假设测试人员已经完成测试用例设计并测试用例执行完毕,并且在测试中发现了问题,那么测试人员就要通过禅道提交Bug给开发人员。测试人员,进入 “测试” → “Bug” 的链接页面,如下图:
3、bug提交 单击“提交bug”链接进入到提交Bug的页面,此时可以提交Bug并进行相应保存,如下图:
4、关闭bug 测试人员登录禅道系统,并验证所提Bug是否被开发人员修复好,如经验证,此Bug已被解决,将会弹出“关闭”按钮,并备注相关信息,如下图:
5、 点击“保存”后,“解决”按钮变为灰色,点击“关闭”,弹出如下图:
6、 当测试人员再次查看此Bug时,此Bug为关闭状态,如图所示:
7、 如果没有解决如果测试 人员验证此bug发现并没有解决,就会再次编辑此bug,并将bug的状态设置为激活状态并重新指派给开发人员。至此,bug的基本流程已经完成。
测试报告
1、概念:记录测试的过程和结果,对发现的问题和缺陷进行分析的文档
2、测试报告的分类:阶段测试报告、整体测试报告
3、报告内容:概要、测试过程、缺陷分析、测试总结
1)概要:编写目的(①对测试报告进行相应的解释 ②对项目进行简介 ③对于测试任务进行简单描述,要测试哪些内容)
测试人员(类似于测试计划中的人员分工,简单描述日期等)
测试环境(软件和硬件环境)
2)测试过程:阶段测试报告(①测试进度情况 ②用例执行情况 ③缺陷统计)
总体测试报告(①各版本的测试情况 ②各版本的缺陷统计)
3)缺陷分析:(① 按照缺陷级别②按照功能模块 ③按照轮次④缺陷总数⑤ 缺陷类型⑥缺陷趋势 )
4)测试总结:测试结论(① 通过/不通过 ②需求覆盖率100%,测试用例执行过率100% ③缺陷:致命=0,严重=0,一般=0,提示≤10%)
风险分析(① 测试进度、人员安排导致的风险 ②内容考虑范围之外导致的风险 ③测试环境不全面导致的风险)
遗留问题(遗留问题描述、等级、处理方法)
1、常见数据库
Oracle、MySQL、SQLServer、MongoDB(json格式)、Redis、Neo4J、SQLite
2、SQL语句分类
1)DDL-数据库定义语言
2)DML - 数据库操作语言
插入数据(insert into student values(1,’zhangsan’,’nan’,19,389.10,’1999-10-10’);)
删除数据(delete from student where id=1;)
修改数据(update student set salery=100.01,birthday=’1999-10-10’ where id=3;)
3)DQL-数据库查询语言
select * from student where math>80 and english>80 and chinese>80;
select * from student where name like ‘%张%’;(含有张)
select * from student order by math desc;(降序)
select * from student order by math desc limit m,n;(其中m是指记录从m+1开始,,N代表n条数据。例如:从第一天就是【0,几】)
select * from employee groupby sex having age>18;
创建学生表
create table student (id int primarykey auto_increment,name varchar(20),sex varchar(20),class_idint,constraint foreign key(class_id) references class(id));
select * from student where id in (select student_id from teacher_student where teacher_id=(select id from teacher where name='李老师' ));
2、连表查询
分类:内连接、外连接、交叉连接
1)内连接,inner join on
select * from customer c inner join orders o on c.id=o.customer_id;
2)左外连接,left join on(左外连接 left join on 设定条件,将两张表对应的数据查询出来,同时将左表自己没有关联的数据也查询出来)
select * from customer c left join orders o on c.id=o.customer_id;
3)右外连接, right join on (右外连接 right join on 设定条件,将两张表对应的数据查询出来,同时将右表自己没有关联的所有数据查询出来)
select * from customer c right join orders o on c.id=o.customer_id;