目录

1.软件的生命周期

2.常见的开发模型

2.1瀑布模型

2.2螺旋模型

2.3增量模型、迭代模型

2.4敏捷模型

3.测试模型

3.1V模型

3.2双V模型(W模型)

4.软件测试的生命周期

5.BUG的级别

5.1级别

5.2与开发人员产生争执怎么办?(面试考点)

6.测试用例

6.1设计测试用例的万能公式

6.2具体的设计方法

7.测试方法

7.1白盒测试

7.2黑盒测试(不关心代码内部逻辑,只注重功能)

8.测试阶段分类

9.测试组织划分

9.1a测

9.2b测(内侧)

10.自动化测试常用函数

10.1元素定位

10.2操作测试对象

10.3窗口

10.3.1切换窗口

10.3.2设置窗口大小

10.3.3屏幕截图

10.3.4关闭窗口

10.4等待

10.5导航

10.6弹窗

10.7文件上传

11.性能测试

11.1常见性能测试指标

11.2性能测试分类


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)稳定性测试

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐