测试知识点
缺点:测试后置(1.测试前面存在的问题推迟到测试才发现,导致项目大面积返工,失去及早修复的机会;2.必须留够足够的时间给测试活动,否则导致测试不充分,给用户的体验就会差);隐式等待1000ms:driver.manage().timeouts().implicitlyWait(Duration.ofMillis(1000));一个接口可以是一个事务,多个接口也可以是事务,一个流程可以是事务,事务代
目录
1.软件的生命周期
需求分析----设计--计划--编码--测试--运行维护
2.常见的开发模型
2.1瀑布模型
周期:需求分析----设计--计划--编码--测试
优点:强调开发的阶段性;线性结构,每个流程只执行一次;是其他模型的基础框架
缺点:测试后置(1.测试前面存在的问题推迟到测试才发现,导致项目大面积返工,失去及早修复的机会;2.必须留够足够的时间给测试活动,否则导致测试不充分,给用户的体验就会差);周期太长,产品很迟才被看到,可能会导致需求/功能过时
适用场景:只适合做需求固定的小项目
2.2螺旋模型
优点:强调严格的全过程风险管理;强调各开发阶段的质量;增加风险分析和原型
缺点:项目中存在的风险性与风险管理人员的技术水平有关;需求人员、资金、时间的增加和投入,可能会导致项目的成本太高
适用场景:规模庞大、复杂度高,风险高的项目
2.3增量模型、迭代模型
适用场景:大型项目,需求不明确
2.4敏捷模型
3.测试模型
3.1V模型

优点:明确的标注了测试过程中不同类型的测试
缺点:跟瀑布模型的缺点一样,把测试放在编码之后的一个阶段,未在需求阶段就介入测试
3.2双V模型(W模型)

优点:有利于尽早发现问题
缺点:需求、设计、编码都是串行执行;重流程,无法支持敏捷开发模式
4.软件测试的生命周期
需求分析--测试计划--测试设计、测试开发--测试执行--测试评估--上线--运行维护
5.BUG的级别
5.1级别
分为崩溃、严重、一般、次要(对应P0,P1,P2,P3级别)
5.2与开发人员产生争执怎么办?(面试考点)
1)先检查自身,是否bug描述不清楚
2)站在用户的角度考虑并抛出问题
3)bug定级要有理有据
4)提高自身技术和业务水平,在提出bug的同时也要给出建议解决方案
5)万不得已的情况下,只能召开bug评审(测试代表、开发代表、产品代表要参加)
6.测试用例
6.1设计测试用例的万能公式
1)页面测试
2)功能测试
3)性能测试
4)安全性测试
5)易用性测试
6)兼容性测试
7)弱网测试(使用fiddler抓包工具来构造弱网)
网络测试要点:无网测试、网络切换测试、弱网体验测试、各个网络功能测试(丢包、延时等)、异常机制
8)安装卸载测试
6.2具体的设计方法
1)等价类
有效等价类:符合规格/需求的集合
无效等价类:不符合规格/需求的集合
缺点:等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他方法设计方法进行补充
2)边界值
边界值分析法的测试用例来自于等价类的边界
边界值包含:边界值 + 次边界值
3)判定表法
4)正交法
5)场景法
6)错误猜想法
7.测试方法
7.1白盒测试
白盒测试有静态测试和动态测试
静态测试方法:例如有桌面检查、代码审美、代码走查等
动态测试方法:语句覆盖、判定覆盖、条件覆盖、路径覆盖、判定条件覆盖、条件组合覆盖
7.2黑盒测试(不关心代码内部逻辑,只注重功能)
测试方法:等价类、边界值、场景法、正交法、错误猜想法、判定表法
8.测试阶段分类
1)单元测试
2)集成测试
3)系统测试
4)冒烟测试
5)回归测试
6)验收测试
9.测试组织划分
9.1a测
例如公司的软件产品刚做出来,由公司内部人员对这个软件进行测试
9.2b测(内侧)
面对一部分普通用户进行的测试
10.自动化测试常用函数
10.1元素定位
1)cssSelector
2)xpath
10.2操作测试对象
1)点击/提交对象 click();
2)模拟按键输入 sendKeys();
3)清除文本内容 clear();
4)获取文本信息 getText();
5)获取当前页面标题 getTitle();
6)获取当前页面URL getCurrentUrl();
10.3窗口
10.3.1切换窗口
1)获取当前页面句柄 driver.getWindowHandle();
2)获取所有页面句柄 driver.getWindowHandles();
3)切换当前句柄为最新页面 driver.switchTo().window(handleRet);
10.3.2设置窗口大小
1)窗口最大化 driver.manage().window().maximize();
2)窗口最小化 driver.manage().window().minimize();
3)全屏窗口 driver.manage().window().fullscreen();
4)手动设置窗口大小
driver.manage().window().setSize(new Dimension(1024, 768));
10.3.3屏幕截图
需要额外导入maven依赖:commons-io
10.3.4关闭窗口
driver.close(); 注意:窗口关闭之后要重新定义driver
10.4等待
1)强制等待
Thread.sleep();
优点:使用简单,调试时比较有效
缺点:浪费大量时间,影响运行的效率
2)隐式等待
隐式等待是一种只能等待,他可以在规定时间内不断查找元素,他找到元素就会继续执行,如果超时还没有找到就会报错。
implicitlyWait(); 参数:Duration类中提供的毫秒、秒、分钟等方法
隐式等待1000ms:driver.manage().timeouts().implicitlyWait(Duration.ofMillis(1000));
优点:智能等待,作用于全局
3)显示等待
显示等待也是一种只能等待,在指定时间内只要满足操作的条件就会继续执行后续代码
new WebDriverWait(driver, Duration.ofSeconds(3)).until($express);
优点:显示等待是智能等待,可以自定义显示等待的条件,操作灵活
缺点:写法复杂
10.5导航
1)打开网站
driver.get("https://www.baidu.com");
2)浏览器的前进、后退、刷新
driver.navigate.forward();
driver.navigate.back();
driver.navigate.refresh();
10.6弹窗
Alert alert = driver.switchTo.alert();
1)确认
alert.accept();
2)取消
alert.dismiss();
10.7文件上传
使用 sendKeys("指定文件路径"); 对文件进行上传
11.性能测试
11.1常见性能测试指标
1)并发数
2)吞吐量
单位时间内处理的并发数,直接体现软件系统负载承受能力。吞吐量越高,系统承受的并发越多,性能越好。
3)响应时间
4)事务
一个接口可以是一个事务,多个接口也可以是事务,一个流程可以是事务,事务代表一个完整的功能。
5)TPS 和 QPS
TPS:每秒处理事务数,用于衡量系统在一定时间内能够处理的事务数
QPS:每秒查询率
6)资源利用率
11.2性能测试分类
1)基准测试
2)并发测试
3)负载测试
4)压力测试
5)稳定性测试
更多推荐




所有评论(0)