软件工程导论期末复习(七)

2023-05-16

本文用书:《软件工程导论》 第六版 清华大学出版社

1、编码

2、测试技术

3、调试的途径有哪些?

4、软件可靠性和可用性的基本概念

第七章 实现

7.1 编码

1.编码:软件设计结果翻译成用某种程序语言书写的程序。

2.测试:软件测试的目的是在软件投入生产性运行前,尽可能多的发现软件中的错误。

3.实现=编码+测试。

7.2 软件测试基础

1.软件测试:为发现程序中的错误而执行程序的过程。

2.软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求)

3.测试方法(黑盒测试和白盒测试)  

4.测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)

5. 测试阶段的信息流( 软件配置,包括需求说明书、设计说明书和源程序清单等; 测试配置,包括测试计划和测试方案。 )

 

7.3 单元测试

1.测试内容

(1)模块接口测试

(2)重要路径测试

(3)边界条件测试

(4)错误处理测试

(5)局部数据结构测试

2.模块测试步骤:

 

3.代码审查

(1)审查小组:组长、程序设计者、程序编写者、程序测试者

4.计算机测试

模块并不是一个独立的程序,因此必须为每个单元测试开发驱动软件和(或)存根软件。  

通常驱动程序也就是一个“主程序”,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果。  

存根程序代替被测试的模块所调用的模块。因此存根程序也可以称为“虚拟子程序”。它使用被它代替的模块的接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用它的模块。

7.4 集成测试

1.非渐增式测试:该测试是首先对每个模块分别进行单元测试, 然后再把所有的模块按设计要求组装在一起进行的测试。

2.渐增式测试:该测试是逐个把未经过测试的模块组装到已经测试过的模块上去,进行集成测试。每加入一个新模块进行一次集成的测试,重复此过程直至程序组装完毕。

(1)自顶而下增值

优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误,能够尽早发现系统主控方面的问题。

缺点:需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力,无法验证桩模块是否完全模拟了下属模块的功能。

(2)自底而上增值

优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。

缺点:最后才能发现系统主控方面的问题。

3.以上二者的优缺点:

(1) 非渐增式方法把单元测试和集成测试分成两个不同的阶段, 前一阶段完成模块的单元测试,后一阶段完成集成测试。 而渐增式测试把单元测试与集成测试合在一起, 同时完成。 

(2) 非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。 

(3) 渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现。 

(4) 渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。 

(5) 渐增式比较彻底,已测试的模块和新的模块组装在一起再测试。 

(6) 渐增式占用的时间较多,但非渐增式需更多的驱动模块、 模块, 也占用一些时间。

(7) 非渐增式开始可并行测试所有模块, 能充分利用人力, 对测试大型软件很有意义。

7.5 确认测试

1.目标:验证软件有效性。

(1)验证指的是保证软件正确地实现了某个特定要求的一系列活动;

(2)确认指的是为了保证软件确实满足了用户需求而进行的一系列活动。

2.通常使用黑盒测试法。

3.α测试:Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现的错误和使用中遇到的问题。总之,Alpha测试是在受控的环境中进行的。

4.β测试:Beta测试由软件的最终用户们在一个或多个客户场所进行。与Alpha测试不同,开发者通常不在Beta测试的现场,因此,Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户记录在Beta测试过程中遇到的一切问题(真实的或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。

7.6 白盒测试技术

1.常用的覆盖标准

例子:

 

① 语句覆盖: 选择足够的测试用例,使得程序中每个语句至少都能被执行一次。

 

② 判定覆盖: 执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。

 

③ 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。

 

④ 判定/条件覆盖: 执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。

 

⑤ 条件组合覆盖: 执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。

 

 2.步骤:

1)选择逻辑覆盖标准。

2)按照覆盖标准列出所有情况。

3)选择确定测试用例。

4)验证分析运行结果与预期结果。

3.注意

 用例格式: [输入(A,B,X),输出(A,B,X)]

7.7 黑盒测试技术(略)

1.等价分类法

2.边值分析法

3.错误推测法

7.8 调试

1.调试:在测试发现错误之后排除错误的过程。

2.调试的途径:

(1)蛮干法;

(2)回溯法;

(3)原因排除法;

7.9 软件可靠性

1.软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率

2.软件可用性:程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件工程导论期末复习(七) 的相关文章

随机推荐

  • 戴尔dell poweredge r730服务器系统安装配置详解教程

    这篇文章主要介绍了戴尔dell poweredge r730服务器系统安装配置详解教程 需要的朋友可以参考下 第一次给服务器安装的是ubantu系统 xff1b 首先我们开机进入小型BIOS设置一下RAID 或者进入服务器管理系统 xff0
  • Huawei交换机配置Telnet登录

    Huawei交换机配置Telnet登录 一 交换机开启Telnet服务 lt Huawei gt system view 进入系统视图 Huawei telnet server xff1f 查看有enable还是disable选项 xff0
  • Huawei设备配置系统时间

    系统时钟是设备上的系统时间戳 由于地域的不同 xff0c 用户可以根据当地规定设置系统时钟 用户必须正确设置系统时钟以确保其与其他设备保持同步 华为设备出厂时默认采用了协调世界时 UTC xff0c 但是没有配置时区所有在配置设备系统时钟前
  • A start job is running for Raise network interface(5min 13s )问题解决方法

    我在笔记本电脑上安装了Ubuntu 16 04 xff0c 当我有局域网连接时 xff0c 启动ubuntu是很快的 xff0c 当LAN电缆断开时 xff0c 需要大约5分钟才能获得登录屏幕 xff0c 这个实在是无法忍受 我的推测 xf
  • Linux常用浏览器

    1 火狐浏览器是一个安全高效的浏览器 xff0c 它具有速度快 隐私保护 丰富的插件资源 不同设备之间同步数据 分页浏览 个性化定制等特性 2 谷歌浏览器 谷歌浏览器是一个由Google公司开发的网页浏览器 xff0c 具有稳定 快速 安全
  • Ubuntu18.04 解压zip文件乱码的解决方法

    在Ubuntu的系统下解压zip文件的时候居然出现了乱码 xff0c 通过查找网上的资料 xff0c 解决的办法有两种 一 通过unzip行命令解压 xff0c 指定字符集 xff0c 由于zip格式中并没有指定编码格式 xff0c Win
  • /etc/resolv.conf文件详解

    etc resolv conf它是DNS客户机配置文件 xff0c 用于设置DNS服务器的IP地址及DNS域名 xff0c 还包含了主机的域名搜索顺序 该文件是由域名解析器 xff08 resolver xff0c 一个根据主机名解析IP地
  • CCF 201812-4 数据中心 Java

    一 题目 问题描述 试题编号 xff1a 201812 4试题名称 xff1a 数据中心时间限制 xff1a 1 0s内存限制 xff1a 512 0MB问题描述 xff1a 样例输入 4 5 1 1 2 3 1 3 4 1 4 5 2 3
  • QT 显示文件目录

    include lt QDir gt include lt iostream gt int main int argc char argv QCoreApplication app argc argv QDir dir dir setPat
  • 面向对象设计——系统动态模型设计(1,交互模型)

    在这张图中 xff0c 系统对象静态设计前边我们在分析中已经学习了 xff0c 这个阶段需要做的就是细化优化 这里我们主要学习系统设计 xff0c 这篇博客我们学习系统动态建模中交互模型建模 首先需要我们学习的是对象之间的通信 xff0c
  • 面向对象设计——系统动态模型设计(2,状态模型)

    这篇总结状态模型建模 xff1a 状态图和活动图 先看看状态图和活动图小结 xff1a 下边我们看一下 xff0c 状态图的事务 xff08 活动图的在前边的博客中已经给出 xff0c 活动图另一个大用处就是细化说明用例 xff09 xff
  • 【sql语句基础】——查(select)(单表查询)

    目录 查 select 单表查询基本语法表代码样例select注意事项 where子句排序order by子句合计 统计函数 count求和sum平均值avg最大值最小值max和min 分组group by过滤having 分页查询limi
  • 软件工程导论期末复习(一)

    本文用书 xff1a 软件工程导论 第六版 清华大学出版社 第一章 软件工程学概述 一 软件危机 1 什么是软件危机 xff1f 指在计算机软件开发和维护过程中所遇到的一系列严重问题 2 软件危机的典型表现 xff1a xff08 不怎么重
  • 软件工程导论期末复习(二)

    本文用书 xff1a 软件工程导论 第六版 清华大学出版社 1 可行性研究的目的是什么 xff1f 2 应从哪些方面研究可行性 xff1f 3 如何画系统流程图 xff1f 4 如何画数据流图 xff1f 5 了解数据字典及成本效益分析 第
  • 软件工程导论期末复习(三)

    本文用书 xff1a 软件工程导论 第六版 清华大学出版社 1 需求分析的基本任务是什么 xff1f 2 分析建模 2 1什么是模型 xff1f 模型 xff1a 就是为了理解事物而对事物做出的一种抽象 xff0c 是对事物的一种无歧义的书
  • 软件工程导论期末复习(四)

    本文用书 xff1a 软件工程导论 第六版 清华大学出版社 1 有穷状态机 2 peri网技术 第四章 形式化说明技术 4 1 概述 1 非形式化方法的缺点 用自然语言书写的系统规格说明书 可能存在矛盾 二义性 含糊性 不完整性及抽象层次混
  • 软件工程导论期末复习(五)

    本文用书 xff1a 软件工程导论 第六版 清华大学出版社 1 在设计过程中 xff0c 总体设计一般有哪两个主要阶段组成 xff1f 2 什么模块化 xff1f 模块独立性包含哪些内容 xff1f 度量准则是什么 xff1f 3 启发规则
  • 软件工程导论期末复习(六)

    本文用书 xff1a 软件工程导论 第六版 清华大学出版社 1 结构程序设计中有哪几种基本控制结构 xff1f 2 了解人机界面的设计 3 掌握过程设计的工具 xff08 程序流程图 盒图 PAD图 xff0c 判定树 xff09 4 面向
  • 技术人在互联网如何变现

    1 免费 xff08 引流的过程 xff09 免费的东西为什能够写到这里来 xff0c 天下哪有免费的午餐 xff0c 免费是实现流量聚集的手段 互联网无时无刻不体现免费的模式 xff0c 博客 各家文章平台 微博 公众号 短视频等等 xf
  • 软件工程导论期末复习(七)

    本文用书 xff1a 软件工程导论 第六版 清华大学出版社 1 编码 2 测试技术 3 调试的途径有哪些 xff1f 4 软件可靠性和可用性的基本概念 第七章 实现 7 1 编码 1 编码 xff1a 软件设计结果翻译成用某种程序语言书写的