软件工程-第七章-实现

2023-11-17

7. 实现

通常把编码和测试统称为实现。

所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。

目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。

7.2 软件测试基础

测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。

白盒测试主要用于对模块的测试,包括:程序模块中的所有独立路径至少执行一次;对所有逻辑判定的取值(“真”与“假”)都至少测试一次;在上下边界及可操作范围内运行所有循环;测试内部数据结构的有效性等。

黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能;界面错误;数据结构错误或外部信息(如外部数据库)访问错误;性能错误;初始化和终止错误。

7.2.3 测试方法

测试任何产品都有两种方法:

  • 如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;【黑盒测试】
  • 如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。【白盒测试】

对于软件测试而言,黑盒测试法把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息(例如数据库或文件)的完整性。黑盒测试又称为功能测试。

白盒测试法与黑盒测试法相反,它的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试。

7.2.4 测试步骤

大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成,因此,大型软件系统的测试过程基本上由下述几个步骤组成。

  1. 模块测试
  2. 子系统测试
  3. 系统测试
  4. 验收测试
  5. 平行运行

7.3 单元测试

7.3.2 代码审查

审查小组最好由下述4人组成:

  1. 组长,应该是一个很有能力的程序员,而且没有直接参与这项工程。
  2. 程序的设计者
  3. 程序的编写者
  4. 程序的测试者

7.4 集成测试

在这里插入图片描述

7.4.1 自顶向下集成

178

7.4.2 自底向上集成

179

7.5 确认测试

7.5.3 Alpha 和 Beta 测试

alpha测试与beta测试的区别:网页链接
在这里插入图片描述

7.6 白盒测试技术

7.6.1 逻辑覆盖

  1. 语句覆盖
  2. 判断覆盖
  3. 条件覆盖
  4. 判定/条件覆盖
  5. 条件组合覆盖
  6. 点覆盖
  7. 边覆盖
  8. 路径覆盖

7.6.2 控制结构测试

  1. 基本测试路径
  2. 条件测试
  3. 循环测试
    • 简单循环
    • 嵌套循环
    • 串联循环

7.7 黑盒测试技术

7.7.1 等价划分

7.7.2 边界值分析

7.7.3 错误推测

7.8 调试

7.8.2 调试途径

  1. 蛮干法
  2. 回溯法
  3. 原因排除法

7.9 软件可靠性

7.9.1 基本概念

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

7.9.2 估算平均无故障时间的方法

软件的平均无故障时间 MTTF

在这里插入图片描述

习题

  1. 什么是模块测试和集成测试?它们各有什么特点?
  • 模块测试是对每个单独的模块,分别用黑盒和白盒测试技术,测试它的功能是否正确,检查模块控制结构中的特定路径并发现最大数量的错误。其特点是:主要应用白盒测试的技术,对多个模块的测试可以并发的进行。
  • 集成测试是把模块装配在一起形成完整的软件包,在装配的同时进行测试。特点是:可能发生接口问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件工程-第七章-实现 的相关文章

  • 合肥工业大学 软件学院 软件质量保证与测试 第九章 软件测试

    文章目录 第九章 软件测试 1 软件测试概述 1 1 软件测试的定义 1 2 软件测试的目的 2 软件测试过程 3 软件测试类型 3 1 单元测试 3 2 集成测试 测试方法 3 3 系统测试 3 4 验收测试 3 5 回归测试 3 6 补
  • 代码圈复杂度cogC、ev、iv、v分别是什么含义

    代码圈复杂度cogC ev iv v分别是什么含义 前言 cogC ev iv v分别是什么含义 优化这四个指标的好处 优化方法 过度优化的坏处 书本推荐 文章推荐 工具推荐 前言 你好 在工作中看项目的代码有时明明代码很长却觉得容易阅读
  • 音乐软件案例分析

    项目 内容 这个作业属于哪个课程 2023年北航敏捷软件工程 这个作业的要求在哪里 软件案例分析 我在这个课程的目标是 学习软件工程理论 在实践中体会并运用软件工程理论 收获团队开发和软件工程实践经验 这个作业在哪个具体方面帮助我实现目标
  • idea插件生成用例图、时序图、类图、活动图

    给大家推荐一个idea生成用例图 时序图等的神器 PlantUML 最近软件工程要结课了 结课报告要附加用例图 时序图 类图 活动图等 类图我首先就想到可以用idea生成 嘿嘿 可惜忘了怎么用 搜着搜着 突然发现 idea生成时序图 用例图
  • 软件工程——第7章实现知识点整理

    本专栏是博主个人笔记 主要目的是利用碎片化的时间来记忆软工知识点 特此声明 文章目录 1 实现由哪两个部分组成
  • 个人安装与配置VMware 虚拟机过程中发现的注意事项

    1 官网下载VMware安装包 本人版本应该是16 0 0 官网地址 下载 VMware Workstation Pro CN 2 安装过程参考网上搜索到的教程VMware16的安装及VMware配置Linux虚拟机 详解版 何故的博客 C
  • Open Source Game Clones

    Open Source Game Clones This site tries to gather open source reimplementations of great old games in one place If you t
  • 服务计算:简单的web程序

    CloudGo 框架选择 看了go的一些框架如beego和iris觉得挺好的 本来想用 但是虚拟机出了点问题装不成 windows上装成了没ab指令 所以使用官方的net http库做简单的实验 看完beego和iris的特性我还是比较想用
  • 使命、愿景、价值观到底有什么区别

    以前的企业都是在发展到一定成熟阶段 才开始考虑这三个问题 但今天人们越来越多的意识到 哪怕在企业发展的初期 对于创业企业来说 确定公司的使命 愿景和核心价值观也是非常重要的 明确的使命 愿景和核心价值观对于企业的好处在于 形成统一共识目标方
  • 选择软件外包公司需要注意哪些方面

    每个行业中不同公司的实力都是良莠不齐 特别是IT软件外包公司更是如此 当我们一旦将整个项目交付对方之后 项目的成败就全看软件外包公司的表现 风险极大 那么 我们该如何选择一家靠谱的深圳软件外包公司 选择软件外包公司需要注意哪些方面 北京木奇
  • 软件工程期末试题及答案(史上最全)

    软件工程期末试题及答案 文章目录 软件工程期末试题及答案 一 填空题 二 选择题 三 判断题 四 简答题 五 分析题 六 画图题 一 填空题 在信息处理和计算机领域内 一般认为软件是 文库 程序 文档 和 数据 数据流图的基本组成部分有 数
  • [需求管理-4]:需求分析全过程:需求分析+资源评估+项目计划

    前言 需求收集后 需要经过漫长的需求分析和所需要评估过程 才能正式在某个软件版本中实现需求 在软件开发人员通过编程实现需求前 中间经过了多种角色的辛苦劳动 最终才会生成需要规格说明书 需求规格说明书是逐步由粗到细的分解过程 一个需求 要进入
  • Go 语言输出文本函数详解

    Go语言拥有三个用于输出文本的函数 Print Println Printf Print 函数以其默认格式打印其参数 示例 打印 i 和 j 的值 package main import fmt func main var i j stri
  • 软件工程期末复习+数据仓库ETL

    一 软件工程 请用基本路径测试方法为下列程序设计测试用例 并写明中间过程 第1步 画出流程图 1 菱形用于条件判断 用在有分支的地方 2 矩形表示一个基本操作 3 圆形是连接点 第2步 计算程序环路复杂性 流图G的环路复杂度V G 定义为
  • git 的碎步浪荡,添加仓库子项目,迁移仓库

    1 git仓库迁移 将他人的代码仓库 xxxx 移为自己的 yyyy 仓库 先创建自己的yyyy空仓库 假设url为 yyyy git 将 xxxx 的全部数据 包括分支和 tag 都 download 到本地 git clone recu
  • 【EI会议征稿】第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024)

    第四届计算机网络安全与软件工程国际学术会议 CNSSE 2024 2024 4th International Conference on Computer Network Security and Software Engineering
  • Docker 安全必知:最佳实践、漏洞管理与监控策略

    容器安全是实施和管理像 Docker 这样的容器技术的关键方面 它包括一组实践 工具和技术 旨在保护容器化应用程序及其运行的基础架构 在本节中 我们将讨论一些关键的容器安全考虑因素 最佳实践和建议 容器隔离 隔离对于确保容器化环境的强大性和
  • C# 介绍、应用领域、入门、语法、输出和注释详解

    什么是 C C 发音为 C Sharp 是一种由 Microsoft 创建的面向对象的编程语言 运行在 NET Framework 上 源于 C 家族 与流行的语言如 C 和 Java 相近 首个版本发布于 2002 年 而最新版本 C 1
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one
  • C# Break 和 Continue 语句以及数组详解

    C Break 它被用于 跳出 switch 语句 break 语句也可用于跳出循环 以下示例在 i 等于 4 时跳出循环 示例 for int i 0 i lt 10 i if i 4 break Console WriteLine i

随机推荐

  • SSL证书的作用,可以帮助网站达到什么样的效果

    近年来 企业建站非常普遍 出现了各类网站 随着互联网的发展 网络安全威胁事件也频繁发生 网站入侵 钓鱼网站等这些问题 不仅容易影响了企业的声誉 也会造成了用户的损失 那么如何保护网站数据的安全 让用户甄别出真假网站 我们可以使用SSL证书来
  • Blender建模汇总

    好消息是UE4官方正在完善UE4和Blender之间的工作流 在此之前还是建议扎实打好基础 建模方法基本上是之前总结的 利用插件或利用面片的方式 区别在于资源管理 不再滥用表面细分修改器 1 光剑 未应用修改器 可用于游戏模型 应用修改器后
  • 模块 ““element-plus““ 没有导出的成员 xxx。你是想改用 “import xxx from “element-plus““ 吗?

    项目场景 项目 vue3 ts element plus 很多时候导入element plus中某个api时 总是提示 模块 element plus 没有导出的成员 xxx 你是想改用 import xxx from element pl
  • 头歌:图像识别案例在线实验闯关

    第2关 基于全像素特征的手写体图像识别模型 任务描述 对图像像素数据集和图像标签数据集 按80 训练和20 测试进行随机划分 构建支持向量机分类模型 输出模型的准确率和测试集的预测准确率 编程要求 根据提示 在右侧编辑器补充代码 按照任务要
  • 解决Python中的PermissionError: Permission denied问题

    解决Python中的PermissionError Permission denied问题 在Python编程中 我们时常会遇到PermissionError Permission denied异常错误 这个错误通常出现在我们尝试访问或修改
  • Electron应用图标的配置与生成

    技术选型 1 electron 21 3 3 2 electron vite 1 0 17 3 vue 3 2 45 4 element plus 2 2 32 背景 默认情况下我们使用electron开发的应用使用的图标有四种类型 软件的
  • 【Python】基础内容

    简介 面向对象 解释型的编程语言 使用缩进作为逻辑层次 运行效率较低 单行注释 以 开头 注释内容 多行注释 以一对三个双引号引起来的内容 注释内容 数据类型 type 被查看类型的数据 查看数据类型 数字 Number 整数 int Py
  • java集合UML类图 总览

    Java集合框架主要包括两种类型的容器 一种是集合 Collection 存储一个元素集合 Collection 接口又有 3 种子类型 List Set 和 Queue 另一种是图 Map 存储键 值对映射 Map 接口又有 Abstra
  • unity开发android游戏(一)搭建Unity安卓开发环境

    1 下载安装Java的JDK http www oracle com technetwork java javase downloads index html JDK中 包含JRE 如果是64位的系统 推荐安装64位的java 2 下载An
  • Maven本地仓库有jar包却提示找不到 / 生成.lastUpdated文件

    Maven本地仓库有jar包却提示找不到 生成 lastUpdated文件 Maven仓库 remote repositories文件的作用 存在的问题 使用Maven管理项目时 如果连不到远程仓库 但是明明本地仓库中有对应的jar包 此时
  • 解决AttributeError: module ‘cv2‘ has no attribute ‘CV_HAAR_SCALE_IMAGE‘

    解决AttributeError module cv2 has no attribute CV HAAR SCALE IMAGE 问题描述 代码 frontalFaces faceCascade detectMultiScale image
  • Array.fill()用法

    Arrays fill 用于快速填充数组 但是只适用于一维数组 若是想填充二维数组则需要循环 详细用法 Arrays fill int a from to int var int a 需要填充的数组 from 数组填充的起始位置 包括此位置
  • Python类的构造方法深入剖析:详解与案例分析

    在Python中 类是面向对象编程的重要概念之一 类是对象的蓝图 通过定义类可以创建具有相同属性和方法的多个对象 类中的构造方法 init 方法 在对象创建时被调用 用于初始化对象的属性 本文将深入剖析Python类的构造方法 并通过案例分
  • Java中JSON把引用相同的对象变为"$ref":问题的分析与解决

    Java中JSON把引用相同的对象变为 ref 问题的分析与解决 后台返回给前端的数据一般是JSON格式的 使用com alibaba fastjson时 在把后台的响应数据转化为JSON格式时 具有相同引用的对象会变成 r e f
  • Postman的使用教程

    一 Postman背景介绍 用户在开发或者调试网络程序或者是网页B S模式的程序的时候是需要一些方法来跟踪网页请求的 用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具 今天给大家介绍的这款网页调试工具不仅可以调试简单的c
  • 目录的作用

    根目录 通常不在这里存储文件 bin 可执行文件 ls cd sbin 可执行文件 boot 开机启动的文件 包括linux内核以及开机菜单与开机所需配置文件等 dev 设备文件 任何设备与接口设备都是以文件形式存在于这个目录的 root
  • 一些重要站点

    linux常用命令集 http linux chinaitlab com special linuxcom nmon工具 http pkgs repoforge org nmon 一些源码工具的下载 http code google com
  • jdbc操作Date

    作为一个开发者 使用jdbc是最基本的要求 但是jdbc对应操作date类型的数据和hibernate是不同的 hibernate不需要考虑date是util date还是sql date也不需要考虑存入的date是否存有时分秒了 建议 J
  • [Python

    目录 一 问题简介 二 解决方案 1 全局搜索sign 2 文件局部搜索 3 寻找目标函数 4 调用函数 5 补全JS代码 6 token的获取 三 Python代码 1 UI类 2 爬虫逻辑类 四 完整代码 JS代码 Python代码 一
  • 软件工程-第七章-实现

    软件工程 第七章 实现 7 实现 7 2 软件测试基础 7 2 3 测试方法 7 2 4 测试步骤 7 3 单元测试 7 3 2 代码审查 7 4 集成测试 7 4 1 自顶向下集成 7 4 2 自底向上集成 7 5 确认测试 7 5 3