软件工程-第七章-实现

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(使用前将#替换为@)

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

  • Python爬虫学习笔记(十)————Scrapy

    目录 1 scrapy是什么 2 安装scrapy 3 scrapy项目的创建以及运行 1 创建scrapy项目 2 项目组成 3 创建爬虫文件 跳转到spiders文件夹中去创建爬虫文件 scrapy genspider爬虫文件的名字 网

随机推荐

  • 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