《软件工程》第七章 实现 作业

2023-10-26

1.什么是模块测试和集成测试?它们各有什么特点?

1)模块测试:

     指把每个模块作为一个单独的实体来测试。目的是发现模块内部可能存在的差错,保证每个模块作为一个单元能正确运行,所以又称单元测试。对多个模块的测试可以并发进行。在这个测试步骤中所发现的往往是编码和详细设计的错误。

2)集成测试:

     是测试和组装软件的系统化技术,包括子系统测试和系统测试。子系统测试着重测试模块接口以保证协调与通信;系统测试除发现设计和编码的错误,还应验证系统确实能提供需求说明书中指定的功能,且系统的动态特性也符合预定要求,因此在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。

2.什么是黑盒测试?黑盒测试主要采用的技术有哪些?

     1)主要检测软件的每一个功能是否能够正常使用,又称功能测试。不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。主要用于测试过程的后期。

     2)主要采用等价划分、边界值分析、错误推测设计测试方案。

·等价划分

     使用该方法首先需要划分输入数据的等价类,为此需要研究程序的功能说明,从而确定输入数据的有效等价类和无效等价类。而后主要使用以下两个步骤:设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步骤直到所有有效等价类都被覆盖为止;设计一个新的测试方案,使它覆盖且只覆盖一个尚未被覆盖的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止。

·边界值划分

     使用该方法首先应确定边界情况,通常应着重测试输入等价类和输出等价类的边界。选取的测试数据应该刚好等于、刚刚小于和刚刚大于边界值。通常总是与等价划分联合使用。

·错误推测

     基本想法是列举出程序中可能有的错误和易发生错误的特殊情况,并根据它们选择测试方案。很大程度上靠直觉和经验进行,还应仔细分析规格说明书,注意找出遗漏或省略部分,以便设计相应的测试方案,检测程序员对这些部分的处理是否正确。

3.什么是白盒测试?白盒测试主要采用的技术有哪些?

     1)主要检测软件编码过程中的错误,又称结构测试。软件程序被看作是一个打开的盒子,盒子里有测试软件的源程序,还能够分析盒子内部结构,所以能够全面地测试程序代码结构。在测试过程的早期阶段进行。

     2)主要采用逻辑覆盖和控制结构测试设计测试用例。

·逻辑覆盖

     是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。测试数据执行程序逻辑的程度从覆盖源程序语句的详尽程度分析,发现错误能力从弱到强大致有以下不同标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

·控制结构测试

     以环形复杂度为基础,导出基本可执行路径集合,以设计测试用例的方法,是根据程序的控制结构设计测试数据的技术。测试用例要保证程序的每个可执行语句至少执行一次。常用的有:基本路径测试、条件测试、循环测试。

4.某程序规定,输入三个整数作为三角形的边长。当三角形为等边三角形、等腰三角形、一般三角形时,给出三角形类型并计算其面积。请用等价类划分法设计该程序的测试用例。

分析已知可得:

输入条件

三个数均大于零(正数)

输出条件

一般三角形

等腰三角形

三个数均为整数

等边三角形

列出等价类并编号:

有效等价类

三边均为正数

1

三边均为整数

2

任意两边之和大于第三边

3

任意两边之和大于第三边且存在两边相等

4

任意两边之和大于第三边且三边相等

5

无效等价类

有一边不大于零

6

有两边不大于零

7

三边均不大于零

8

有一边不为整数

9

有两边不为整数

10

三边均不为整数

11

存在两边之和等于第三边

12

存在两边之和小于第三边

13

测试用例:

 

测试用例

覆盖等价类号码

预期输出

覆盖有效等价类

3

4

5

1、2、3

一般三角形 S=6

5

5

6

1、2、3、4

等腰三角形 S=12

3

3

3

1、2、3、4、5

等边三角形 S=3.9

覆盖无效等价类

-1

4

5

6

非法输入

-1

0

5

7

非法输入

-1

0

-2

8

非法输入

0.3

4

5

9

非法输入

0.3

0.4

5

10

非法输入

0.3

0.4

0.5

11

非法输入

3

4

7

12

非法输入

3

4

8

13

非法输入

5.基本路径测试。

void Func(int nPosX, int nPosY) {
    while (nPosX > 0) {
        int nSum = nPosX + nPosY;
        if (nSum > 1) {
            nPosX--;
            nPosY--;
        }
        else {   
            if (nSum < -1)
                nPosX -= 2;
            else
            nPosX -= 4;
        }
    } // end of while
}

用例编号

路径

输入数据

预期结果

1

1-11

nPosX = -3
nPosY =  2

nPosX = -3
nPosY =  2

2

1-2-3-6-7-9-10-1-11

nPosX =  1
nPosY = -3

nPosX = -1
nPosY = -3

3

1-2-3-6-8-9-10-1-11

nPosX =  3
nPosY = -3

nPosX = -1
nPosY = -3

4

1-2-3-4-5-10-1-11

nPosX =  3
nPosY = -1

nPosX = -2
nPosY = -2

6.回答下列问题。

     1)什么是模块测试和集成测试?它们各有什么特点?

     2)假设有一个由1000行FORTRAN语句构成的程序(经编译后大约有5000条机器指令),估计在对它进行测试期间将发生多少个错误?为什么?

     3)设计下列伪码程序的语句覆盖和路径覆盖测试用例:

START
INPUT (A, B, C)
IF A> 5
    THEN X = 10
ELSE X = 1
END IF
IF B > 10
    THEN Y = 20
ELSE Y = 2
END IF
IF C > 15
    THEN Z = 30
ELSE Z = 3
END IF
PRINT (X, Y, Z)
STOP

     2)根据美国的一些统计数字可以推知每1000条指令中大约有5~20个错误,所以本题设程序约有25~100个错误。

     3)由题可画出如下流程图:

                    

     在本题中语句覆盖和路径覆盖可使用相同用例:

用例编号

输入数据

预期输出

1

A = 10
B = 15

C = 20

X = 10
Y = 20

Z = 30

2

A = 1
B = 2

C = 3

X = 1
Y = 2

Z = 3

7.某图书馆有一个使用CRT终端的信息检索系统,该系统有下列4各基本检索命令:

名称

语法

操作

BROWSE

(浏览)

b(关键字)

系统搜索给出的关键字,找出字母排序与此关键字相近的字。然后在屏幕上显示约20个加了行号的字,与给出的关键字完全相同的字约在中央

SELECT

(选取)

s(屏幕上的行号)

系统创建一个文件保存含有由行号指定的关键字的全部图书的索引,这些索引都有编号(第一个索引编号为1,第二个为2……以此类推)

DISPLAY

(显示)

d(索引号)

系统在屏幕上显示与给定的索引号有关的信息,这些信息与通常在图书馆的目录卡片上给出的信息相同。这条命令接在BROWSE/SELECT或FIND命令后面用,以显示文件中的索引信息

FIND

(查找)

f(作者姓名)

系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件

要求:

     1)设计测试数据以全面测试系统的正常操作;

     2)设计测试数据以测试系统的非正常操作。

1)正常操作

编号

输入

预期输出

1

b(海)

约20个加了行号的字,“海”约在中央

2

b(海)s(3)

创建“海”浏览结果第三行相应索引文件

3

b(海)s(3)d(7)

显示“海”浏览结果第三行索引号为7的图书信息

4

f(Hemingway)

显示Hemingway著作及索引号

5

f(Hemingway)d(1)

显示Hemingway著作索引号为1的图书信息

2)非正常操作

编号

输入

预期输出

6

b()

输入为空,请重新输入

7

s()

8

d()

9

f()

10

s(3)

未指定关键字,请先执行BROWSE

11

d(7)

未指定索引目录,请先执行BROWSE/SELECT或FIND

12

b(海)s(1000)

非法输入,请重新输入合法数字

13

b(海)s(3)d(1000)

14

f(Hemingway)d(1000)

15

b(海)s(v)

16

b(海)s(3)d(v)

17

f(Hemingway)d(v)


               初学者手写作业,对问题叙述较为简单浅显,仅作为学习过程记录。

               欢迎指正与讨论!

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

《软件工程》第七章 实现 作业 的相关文章

  • 华为OD题目: 快速开租建站

    华为OD题目 快速开租建站 知识点 BFSQ搜索拓扑排序 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 当前IT部门支撑了子公司颗粒化业务 该部门需要实现为子公司快速开租建站的能力 建站是指在一个全新的环境部署一套IT服务
  • An orientation marker must be set prior to enabling/disabling widget

    Set up the QVTK window viewer reset new pcl visualization PCLVisualizer viewer false viewer gt addCoordinateSystem 1000
  • 梦幻模拟战更新服务器正在维护,梦幻模拟战1月24日更新公告 新活动揭示的哲学开放[多图]...

    梦幻模拟战在1月24日对游戏进行了更新 开放了最新的活动揭示的哲学 并有丰厚的奖励等着玩家们获取 接下来安族小编就带大家来看看具体更新公告 服务器将在1月24日6 00进行更新维护 预计维护时长约90分钟 维护期间指挥官无法登陆服务器 给您
  • 【华为OD统一考试B卷

    文章目录 题目描述 输入描述 输出描述 用例 C java javascript python 题目描述 对一个数据a进行分类 分类方法为 此数据a 四个字节大小 的四个字节相加对一个给定的值b 取模 如果得到的结果小于一个给定的值c 则数
  • HDOJ 1827 - Summer Holiday 简单的tarjan求强联通分量+缩点

    题意 听说lcy帮大家预定了新马泰7日游 Wiskey真是高兴的夜不能寐啊 他想着得快点把这消息告诉大家 虽然他手上有所有人的联系方式 但是一个一个联系过去实在太耗时间和电话费了 他知道其他人也有一些别人的联系方式 这样他可以通知其他人 再
  • MMOCR之DBNET文字检测

    MMCV系列之MMOCR 注 大家觉得博客好的话 别忘了点赞收藏呀 本人每周都会更新关于人工智能和大数据相关的内容 内容多为原创 Python Java Scala SQL 代码 CV NLP 推荐系统等 Spark Flink Kafka
  • R语言入门(安装使用基础操作详细说明)合集

    R使用基础知识 Rstudio使用 R包管理 操作数据 空间数据处理 在jupyternotebook中使用R语言 参考博客 Rstudio使用 ctrl enter运行当前行代码 help中查找说明文档 查看前后绘图图片 工作目录设定及管
  • Android音视频任务列表之(一)——在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View

    一 使用ImageView绘制图片 1 在布局文件中添加ImageView控件
  • 云原生环境 - Dockerfile挂载nfs盘【真实案例】

    文章目录 背景 解决 第1步 搭建NFS Server 第2步 调整Dockerfile 安装nfs utils 第3步 设置privileged权限 参考 背景 项目中使用RainBond 基于Kubernetes的云原生平台 部署相关微
  • 干货

    作者 李家丞 同济大学数学系本科在读 现格灵深瞳算法部实习生 近年来 深度学习模型逐渐取代传统机器视觉方法而成为目标检测领域的主流算法 本系列文章将回顾早期的经典工作 并对较新的趋势做一个全景式的介绍 帮助读者对这一领域建立基本的认识 营长
  • 数据库知识点总结(一)

    第一章 绪论 重点 掌握关系数据模型的相关概念 数据库系统三级模式和两层映像的体系结构 数据库系统的逻辑独立性和物理独立性等 难点 本章的难点是需要掌握数据库领域大量的基本概念 此 外 数据模型及数据库系统的体系结构也是本章的难点 1 1
  • 三个C语言中字符转换的函数

    wcstombs 将宽字符转换成多字符 mbstowcs 把多字符转换成宽字符 Setlocale 本函数用来配置地域的信息 设置当前程序使用的本地化信息 使中文路径生效的函数
  • 【RuoYi-Vue-Plus】学习笔记 08 - Mybatis Plus 分页插件实现分页功能

    文章目录 前言 参考目录 代码分析 1 分页构建使用 1 1 构建分页参数 2 分页插件 paginationInnerInterceptor 2 1 分页溢出处理 overflow 2 2 单页条数限制 maxLimit 前言 前段时间框
  • 阿里资深架构师答疑:数据湖概相关念、特征、架构与案例

    写在前面 最近 数据湖的概念非常热 许多前线的同学都在讨论数据湖应该怎么建 阿里云有没有成熟的数据湖解决方案 阿里云的数据湖解决方案到底有没有实际落地的案例 怎么理解数据湖 数据湖和大数据平台有什么不同 头部的云计算玩家都各自推出了什么样的
  • 华为OD机试 - 乱序整数序列两数之和绝对值最小(Java)

    题目描述 给定一个随机的整数 可能存在正整数和负整数 数组 nums 请你在该数组中找出两个数 其和的绝对值 nums x nums y 为最小值 并返回这个两个数 按从小到大返回 以及绝对值 每种输入只会对应一个答案 但是 数组中同一个元
  • 1.16 I/O文件的读、写操作(open方式打开文件)

    存在一个hello txt文件 内容如下截图 打开文件的语句是 file open file name access mode file name代表文件名 文件的全路径 access mode代表打开文件的模式 文件各个模式如下 一 文件
  • arm-linux-androideabi 和 arm-linux-gnueabi

    编译环境 ubuntu18 04 软件版本 全志SDK 安卓版本8 1 0 linux 4 9 0 问题描述 在全志的安卓系统中 需要运行C项目代码 在查找交叉编译工具时 shell里直接arm tab出来的是arm linux andro
  • sql查询每个学生的最高成绩mysql语句

    张三 语文 100 张三 数学 83 李四 语文 88 李四 数学 100 查询每个学生的最高成绩 select b from select name max score score from course GROUP BY name a
  • 微信小程序调用域名服务器的服务

    微信小程序得益于它的简单便捷 在日常生活中应用的很普遍 做过开发的同学都知道 微信的前端比较简单易懂 并且微信自带云开发 提供云存储 可以满足一些商家或者自媒体的需求 如果企业类的用户使用小程序 数据是存在企业自己的服务器上 小程序也提供了

随机推荐

  • echarts的展示区域地图,添加纹理图片

    echarts的展示区域地图 添加纹理图片 下面我们以广西南宁的来做实例 来进行这个渲染和添加纹理图片的操作 首先我们先看看文档 echarts 的geo的areaColor是可以支持通过图片来对地图的区域内容来进行纹理填充的 也可以进行颜
  • 操作系统笔记整理10——输入输出系统(2)

    点此链接可跳转到 操作系统笔记整理 目录索引页 参考书籍 计算机操作系统 第四版 汤小丹等编著 文章目录 点此链接可跳转到 操作系统笔记整理 目录索引页 用户层I O软件 系统调用 库函数 假脱机 Spooling 系统 SPOOLing的
  • vue同意本站协议的制作

    div p msg p h5 表单提交 h5 div
  • Echarts遇到Vue3时遇到的问题

    将vue2的Echarts代码迁移到了vue3项目上 引发的问题 问题描述 1 点击图例legend时刻度轴偏移 图像不展示 以及报错 初始chart正常 图 点击图例后的chart和报错 图 2 调用resize 不生效且报错 初始正常
  • mysql之mysql约束19

    概述 本篇是我们DDL语言的最后一篇 从库和表的管理到本篇共3篇 1 mysql约束 常见约束 1 含义 一种限制 用于限制表中的数据 为了保证表中的数据的准确和可靠性 2 分类 六大约束 1 NOT NULL 非空 用于保证该字段的值不能
  • TypeScript -- ts的编译、类型注解、数组类型、联合类型、类型别名、函数类型、对象类型、接口类型、字面量类型、类型推断、类型断言、泛型、any类型

    TypeScript ts的编译 类型注解 数组类型 联合类型 类型别名 函数类型 对象类型 接口类型 字面量类型 类型推断 类型断言 泛型 any类型 TypeScript相较于JavaScript来说 是在js的基础上进行了制约 对原先
  • vmware克隆Centos6.4虚拟机网卡无法启动问题

    问题现象 通过vmware8的完全克隆功能快速创建一台版本为CentOS 6 4的linux虚拟机 创建后症状 启动之后使用ifconfig 发现无ip地址 只有回环地址为127 0 0 1MAC地址以及主机名都和源主机相同 源主机采用手动
  • 算法训练营第三十六天(8.26)

    目录 Leecode 198 打家劫舍 Leecode 213 打家劫舍 II Leecode 337 打家劫舍III Leecode 198 打家劫舍 题目地址 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题目类型 打家劫舍
  • Android Studio快捷键的设置

    设置好主题和字体之后 http blog csdn net yzzdmzdfq article details 51291322 很多小伙伴们开始迫不及待的编程了 很快就会发现 好像快捷键用起来不太舒服 于是想要设置一下快捷键 那么问题来了
  • JS原型、原型链到底是什么?

    前言 在js的学习中 原型毫无疑问是一个难点 但也是一个不可忽视的重点 在前端面试中也是一个高频考题 在接下来的深入学习中 你会发现原型 原型链等知识点其实并不难 1 一切皆为对象 JavaScript是一个面向 原型 对象的语言 对象是属
  • Linux网络基础 — 网络层

    目录 IP协议 IP协议报头格式 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 补充 网络层 在复杂的环境中确定一个合适的路径 IP协议 ip具有将数据从 主机A 跨网络送到 主机B 的能力 主机 配有IP
  • 如何在CMD下增加IP地址

    1 修改IP地址 注意事项 如果是设置有多IP的情况下 将清除其它IP 只保留此次命令中设置的IP地址 netsh interface ip set address name 本地连接 source static addr 192 168
  • 最大区间交

    先将所有区间按照左端点排序 然后遍历所有区间进行以下操作 第i个区间 a b ans max ans min maxr b a 1 maxr max maxr b
  • 从零开始实现C++ TinyWebServer(九)---- 项目知识点总结

    文章目录 前言 项目介绍 为什么要做这样一个项目 项目背景 项目描述 项目功能 项目流程 项目重难点 项目效果 解决方案 个人收获 线程池 线程的同步机制有哪些 线程池中的工作线程是一直等待的吗 如果同时1000个客户端进行访问请求 线程数
  • com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼...

    Spring boot使用MyBatis mysql配置运行时报错com mysql cj exceptions InvalidConnectionAttributeException The server time zone value
  • Odoo的XMLRPC调用

    Odoo的XMLRPC调用 使用场景 需要运行脚本调用odoo的模型方法 对数据库进行修改 企业内部有多个系统服务 系统间互相调用模型方法 基本调用过程 服务端定义好模型和方法 服务端odoo orm方法能被调用 加了 api model装
  • pytorch 详解NLLloss 与crossEntry

    NLLloss 与CrossEntry
  • 【Java进阶】多线程&高并发(一)<线程概述>

    一 线程相关概念 1 进程 进程 process 是计算机中的程序关于某数据集合上的一次运行活动 是操作系统进行资源分配与调度的基本单位 进程可以简单理解为正在操作系统中运行的一个程序 2 线程 线程 thread 是进程的一个执行单元 一
  • qt自定义带参数的构造函数(构造函数传参)

    源文件 h中 class Test public QMainWindow Q OBJECT public explicit Test QString path QWidget parent 0 构造函数有默认值的要放右边 新添加的参数需要放
  • 《软件工程》第七章 实现 作业

    1 什么是模块测试和集成测试 它们各有什么特点 1 模块测试 指把每个模块作为一个单独的实体来测试 目的是发现模块内部可能存在的差错 保证每个模块作为一个单元能正确运行 所以又称单元测试 对多个模块的测试可以并发进行 在这个测试步骤中所发现