IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> HIT软件构造期末复习笔记第212章 -> 正文阅读

[开发测试]HIT软件构造期末复习笔记第212章

第二讲: 软件测试与测试优先的编程

·黑盒测试:对程序外部表现出来的行为进行测试;用于检查代码的功能,不关注内部的实现细节——检查是否符合规约
等价类划分:针对每个输入数据需要满足的约束条件,划分等价类;从等价类中导出测试用例
边界值分析:对等价类划分的一个补充(在等价类划分时将边界值作为等价类之一加入考虑)
测试用例:输入+执行条件+期望结果

·测试覆盖度:
(1)笛卡尔积:全覆盖
(2)每个维度的每个取值至少被一个测试用例覆盖一次即可
代码覆盖度:
函数覆盖、语句覆盖、分支覆盖、条件覆盖、路径覆盖
覆盖度标准(100%语句覆盖,90%路径覆盖)

·以注释的形式撰写测试策略:
在这里插入图片描述

·TDD:
(1)先写spec (2)再写符合spec的测试用例 (3)写代码、执行测试、有问题再改、再执行测试用例,直到通过它
·Junit assert xxx:
在这里插入图片描述

第十二讲: 面向正确性与健壮性的软件构造

·健壮性:系统在不正常输入或不正常外部环境下仍能够表现正常的程度——倾向于容错
·正确性:程序按照spec加以执行的能力(最重要的质量指标)——倾向于直接报错
可靠性 = 健壮性 + 正确性

·Error/Runtime异常
在这里插入图片描述

Error:内部错误,一旦发生,想办法让程序优雅的结束
Exception:异常:自己程序导致的问题,可以捕获,可以处理
(1)将错误信息传递给上层调用者,并报告“案发现场”的信息
(2)Return外的第二种退出途径
(3)若找不到异常处理程序,整个系统完全退出
(4)分为运行时异常和其他异常
运行时异常:程序员在代码中处理不当造成,可避免
其他异常:由外部原因造成,无法完全避免

·Checked异常,Unchecked异常
在这里插入图片描述

Checked异常:必须捕获并指定错误处理器handle,否则编译无法通过
在这里插入图片描述
在这里插入图片描述

·Checked异常处理机制
(1)使用throws声明异常
在这里插入图片描述

方法应throws的异常:
该方法调用的其他函数抛出的checked exception
当前方法检测并使用throws抛出的checked exception
若无handler来处理抛出的checked exception,程序就终止执行
在这里插入图片描述

(2)使用throw抛出异常:
1.找到一个能表达错误的Exception类/或者构造出一个新的Exception类
2.构造Exception类的一个实例,将错误信息写入
3.抛出错误(throw)
在这里插入图片描述

4.一旦抛出异常,方法不会再将控制权返回给调用它的client,因此也无需考虑返回错误代码

·自定义异常类
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Finally关键字:无论程序是否碰到异常,finally关键字都将被执行
在这里插入图片描述

·断言
在开发阶段的代码中嵌入,检验某些假设是否成立。若成立则表明程序运行正常,否则表明存在错误
断言即是对代码中程序员所做的假设的文档化,不会影响程序的性能
形式:
在这里插入图片描述

所构造的message将在发生错误时显示给用户,便于快速发现错误所在;实际运行阶段,不再使用断言!
出现AssertionError即表示内部某些假设被违反了
在这里插入图片描述

可使用assert的情况:
内部不变量、表示不变量、控制流不变量(switch-case)、方法的前置、后置条件
断言只检查程序内部的状态是否符合规约,断言一旦false,程序就停止执行,外部错误(不受自己控制)要使用Exception机制去处理

·防御式编程的基本思路:
(1)最好的防御就是不要引入bug
(2)若无法避免,则将bug限制在最小范围内;限定在一个方法内部,不扩散
(3)Fail fast

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:46:59  更:2021-07-10 14:47:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 23:10:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码