软件工程——第7章实现知识点整理

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明!

文章目录

 1.实现由哪两个部分组成?

2.编码是什么?所选用的程序设计语言对程序的哪些特性有着深远影响?

3.软件测试在软件生命周期中横跨哪两个阶段?

4.测试的工作量往往占软件开发总工作量的比例是多少?

5.编码之前的一项重要工作是?

6.编码的规则都应考虑哪些方面?

7.效率主要是指哪两个方面?

8.效率的原则?

9.测试阶段的根本目的是?

10.软件测试的目的或定义是?

11.测试的准则有哪些?

12.按测试时间顺序,测试步骤分为哪几种?

13.平行运行是什么?

14.测试阶段的信息流中包含哪两部分,各自分别有哪些部分组成?

15.单元测试是什么?主要使用哪种测试技术?

16.单元测试的测试重点?

17.代码审查比计算机测试优越的原因是?

18.单元测试需要开发哪两个虚拟程序?

19.模块内聚程度高给单元测试带来的好处?

20.集成测试是什么?主要目标是?

21.模块组装成为程序有哪两种方法?

22.渐增式测试方法把模块结合到程序中时,有哪两种策略?

23.自顶向下和自底向上两种策略的对比?(一种策略的缺点即是另一种的优点)

24.混合策略是什么?

 25.回归测试是什么?

26.确认测试的目标是什么?验证和确认的区别?

27.软件有效性的定义?

28.进行确认测试的基础是什么?

29.确认测试的主要对象是?通常采用哪种测试法?

30.Alpha测试和Beta测试区别是什么?

31.测试用例是什么?

32.白盒测试技术包含哪些?

33.逻辑覆盖是什么?

34.逻辑覆盖由弱到强分为?

35.控制结构测试包括?

36.基本路径测试是控制结构测试中的一种,具体步骤是什么?

37.白盒测试与黑盒测试的区别?

38.黑盒测试技术都有哪些?

39.等价类划分法的步骤?

40.错误推测法的特点?

41.选择输入组合的有效途径有哪些?

42.调试是什么?

43.调试的途径有哪些?

44.软件可靠性和软件可用性的区别是什么?

45.估计错误总数的方法有哪些?

46.软件评审是什么?

47.软件评审根据不同的评审阶段划分为哪几类?

48.为什么说软件评审极为重要?(软件评审的意义)

章末小结


 1.实现由哪两个部分组成?

实现由编码测试组成,它们统称为实现

2.编码是什么?所选用的程序设计语言对程序的哪些特性有着深远影响?

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

所选用的程序设计语言的特点以及编码风格,将会对程序的可靠性、可读性、可测试行和可维护性产生深远的影响

3.软件测试在软件生命周期中横跨哪两个阶段?

单元测试阶段 :模块编写者和测试者是同一人

综合测试阶段 :由专门的测试人员承担

4.测试的工作量往往占软件开发总工作量的比例是多少?

40%以上

5.编码之前的一项重要工作是?

选择一种适当的程序设计语言,高级语言明显优于汇编语言

6.编码的规则都应考虑哪些方面?

  1. 程序内部的文档
  2. 数据说明
  3. 语句构造
  4. 输入输出
  5. 效率

7.效率主要是指哪两个方面?

时间和容量空间

8.效率的原则?

  1. 效率是性能要求
  2. 效率是靠好的设计来提高的
  3. 程序的效率和程序的简单程度是一致的,不要牺牲程序的清晰行和可读性来不必要地提升效率

9.测试阶段的根本目的是?

        测试阶段的根本目的是尽可能多地发现和排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

        暴露问题并不是软件测试的最终目的,发现问题是为了解决问题。

10.软件测试的目的或定义是?

  1. 测试是为了发现程序中的错误而执行程序的过程(定义)
  2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
  3. 成功的测试是发现了至今为止尚未发现的错误的测试

11.测试的准则有哪些?

  1. 所有测试都应该能追溯到用户需求
  2. 应远在测试开始之前就制定出测试计划
  3. pareto原理运用到软件测试中,即错误中的80%可能是由程序中20%的模块造成的
  4. 应该从“小规模”测试开始,并逐步进行“大规模”测试
  5. 穷举测试是不可能的
  6. 为了达到最佳的测试效果,应该由独立的第三方从事测试的工作

12.按测试时间顺序,测试步骤分为哪几种?

  1. 单元测试
  2. 集成测试
  3. 系统测试
  4. 验收测试(确认测试)

13.平行运行是什么?

        平行运行是指关系重大的软件产品在验收之后往往并不立即投入生产性运行,而是要再经过一段和旧系统平行运行时间的考验

14.测试阶段的信息流中包含哪两部分,各自分别有哪些部分组成?

  1. 软件配置:需求说明书、设计说明书、源程序清单
  2. 测试配置:测试方案与计划等

15.单元测试是什么?主要使用哪种测试技术?

        单元测试集中检测软件设计的最小单元——模块,其主要使用“白盒测试技术

        对多个模块的测试可以并行地进行,应用人工测试和计算机测试两种不同的方法完成工作,相互补充,相辅相成

16.单元测试的测试重点?

  1. 模块接口
  2. 局部数据结构
  3. 重要的执行通路
  4. 出错处理通路
  5. 边界条件(最重要)

17.代码审查比计算机测试优越的原因是?

        在一次代码审查会上可以发现许多错误,而用计算机测试的方法发现错误后,通常需要先改正这个错误才能继续进行测试,即错误是一个一个发现并改正的

18.单元测试需要开发哪两个虚拟程序?

驱动软件(主程序)

存根软件(桩模块、虚拟子程序)

19.模块内聚程度高给单元测试带来的好处?

        模块内聚程度高可以简化单元测试过程。如果每个模块只完成一个功能,那么需要的测试方案数目将明显减少,模块中的错误也易于预测和发现

20.集成测试是什么?主要目标是?

集成测试是测试和组装软件的系统化技术,其主要目标是发现与接口有关的问题

21.模块组装成为程序有哪两种方法?

        模块组装成为程序有非渐增式测试方法渐增式测试方法,在集成测试时普遍采用渐增式测试方法

22.渐增式测试方法把模块结合到程序中时,有哪两种策略?

自顶向下自底向上两种策略

23.自顶向下和自底向上两种策略的对比?(一种策略的缺点即是另一种的优点)

自顶向下测试方法主要缺点:

  1. 需要存根程序
  2. 可能遇到于此相联系的测试困难
  3. 低层关键模块中的错误发现较晚
  4. 用这种方法在早期不能充分展开人力

自顶向下测试方法主要优点:

  1. 不需要测试驱动程序
  2. 能够在测试阶段的早期实现并验证系统的主要功能
  3. 能够在早期发现上层模块中的接口错误

 

24.混合策略是什么?

混合策略=改进的自顶向下测试方法+混合法

【注】:混合法也被称为“三明治法”,即对软件结构中较上层使用自顶向下的测试方法,对较下层使用自底向上的测试方法

 25.回归测试是什么?

回归测试是指重新执行已经做过的测试的某个子集

26.确认测试的目标是什么?验证和确认的区别?

确认测试也称为验收测试,其目标是验证软件的有效性

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

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

27.软件有效性的定义?

软件有效性是指如果软件的功能和性能和用户所合理期待的一致,软件就是有效的

28.进行确认测试的基础是什么?

软件需求规格说明书

29.确认测试的主要对象是?通常采用哪种测试法?

确认测试以用户为主进行,通常使用黑盒测试法。这个阶段发现的问题通常和需求分析阶段的差错有关,涉及面较广,解决起来较为困难

30.Alpha测试和Beta测试区别是什么?

Alpha测试是在受控的环境中进行,通常由开发者指导用户测试

Beta测试由软件最终用户在一个或者多个客户场所进行,开发者不在测试现场

31.测试用例是什么?

测试数据预期的输出结果称为测试用例,最困难的问题是设计测试用的输入数据

32.白盒测试技术包含哪些?

逻辑覆盖控制结构测试

33.逻辑覆盖是什么?

逻辑覆盖是逐渐进行越来越完整的通路测试过程的总称

34.逻辑覆盖由弱到强分为?

  1. 语句覆盖(点覆盖):选择足够多的测试数据,使被测试程序中每个语句至少执行一次
  2. 判定覆盖(边覆盖):不仅每个语句必须至少执行一次,每个判定的每个分支也都至少执行一次
  3. 条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果
  4. 判定/条件覆盖:使判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果
  5. 条件组合覆盖:选取足够多的测试数据,使得每个判定表达式中的条件的各种可能组合至少出现一次

【注】:

  1. 判定覆盖>=语句覆盖
  2. 条件覆盖>=语句覆盖
  3. 条件覆盖通常强于判定覆盖,没有具体包含关系
  4. 判定/条件覆盖>=判定覆盖
  5. 判定/条件覆盖>=条件覆盖
  6. 最强标准为路径覆盖

35.控制结构测试包括?

基本路径测试、条件测试、循环测试

36.基本路径测试是控制结构测试中的一种,具体步骤是什么?

  1. 根据过程设计结果出相应的流图
  2. 流图的环形复杂度,数是多少就有多少条独立路径,独立路径结果不唯一
  3. 确定线性独立路径的基本集合(独立路径至少包含一条在定义该路径之前不曾用过的边)
  4. 设计可强制执行基本集合中每条路径的测试用例

37.白盒测试与黑盒测试的区别?

  1. 白盒测试检测软件的逻辑结构,黑盒测试检测软件的功能
  2. 白盒测试前提是测试者完全知道程序的结构和处理算法,而黑盒测试则是把程序看成一个黑盒子,不考虑程序的内部和处理
  3. 白盒测试在测试的早期进行,而黑盒测试主要用于测试过程的后期
  4. 二者使用的技术方法不同,白盒测试技术主要有逻辑覆盖、路径测试,而黑盒测试技术主要有等价类划分、边界值分析

38.黑盒测试技术都有哪些?

等价类划分、边界值分析、错误推测

39.等价类划分法的步骤?

  等价划分首先划分出输入数据的等价类,从而确定输入数据的有效等价类无效等价类,还需分析输出数据等价类,以便根据输出数据等价类导出相应的输入数据的等价类

【注】:处理边界情况时程序最容易发生错误,通常设计测试方案时总是联合使用等价划分和边界值分析两种技术

40.错误推测法的特点?

错误推测法在很大程度上依靠直觉和经验进行

41.选择输入组合的有效途径有哪些?

  1. 利用判定表或者判定树作为工具
  2. 计算机测试和人工检测相互结合

42.调试是什么?

调试是在测试发现错误之后排除错误的过程,是软件开发过程中最艰巨的脑力劳动

43.调试的途径有哪些?

  1. 蛮干法
  2. 回溯法
  3. 原因排除法(包括对分查找法、归纳法、演绎法)

44.软件可靠性和软件可用性的区别是什么?

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

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

45.估计错误总数的方法有哪些?

  1. 植入错误法
  2. 分别测试法

46.软件评审是什么?

        软件评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进

47.软件评审根据不同的评审阶段划分为哪几类?

  1. 需求评审
  2. 功能评审
  3. 质量评审
  4. 成本评审
  5. 维护评审

48.为什么说软件评审极为重要?(软件评审的意义)

        软件评审可以组织项目组集体的力量,对软件相关内容进行合理分析,尽可能的在软件的生命前期发现并解决问题,所以说软件评审极为重要

章末小结

        实现包括编码测试两个阶段。

        按照传统的软件工程方法学,编码是在对软件进行了总体设计和详细设计之后进行的,它只不过是把软件设计的结果翻译成用某种程序设计语言书写的程序,因此,程序的质量基本上取决于设计的质量。但是,编码使用的语言,特别是写程序的风格,也对程序质量有相当大的影响。

        大量实践结果表明,高级程序设计语言较汇编语言有很多优点。因此,除非在非常必要的场合,一般不要使用汇编语言写程序。至于具体选用哪种高级程序设计语言,则不仅要考虑语言本身的特点,还应该考虑使用环境等一系列实际因素。

        程序内部的良好文档资料,有规律的数据说明格式,简单清晰的语句构造和输入输出格式等,都对提高程序的可读性有很大作用,也在相当大的程度上改进了程序的可维护性

        目前软件测试仍然是保证软件可靠性的主要手段。测试阶段的根本任务是发现并改正软件中的错误。

        软件测试是软件开发过程中最艰巨最繁重的任务,大型软件的测试应该分阶段地进行,通常至少分为单元测试、集成测试和验收测试3个基本阶段。

        设计测试方案是测试阶段的关键技术问题,基本目标是选用最少量的高效测试数据,做到尽可能完善的测试,从而尽可能多地发现软件中的问题。

        应该认识到,软件测试不仅仅指利用计算机进行的测试,还包括人工进行的测试(例如,代码审查)。两种测试途径各有优缺点,互相补充,缺一不可。

        白盒测试和黑盒测试是软件测试的两类基本方法,这两类方法各有所长,相互补充。通常,在测试过程的早期阶段主要使用白盒方法,而在测试过程的后期阶段主要使用黑盒方法。为了设计出有效的测试方案,软件工程师应该深人理解并坚持运用关于软件测试的基本准则。

        设计白盒测试方案的技术主要有,逻辑覆盖和控制结构测试;设计黑盒测试方案的技术主要有等价划分、边界值分析和错误推测

        在测试过程中发现的软件错误必须及时改正,这就是调试的任务。为了改正错误,首先必须确定错误的准确位置,这是调试过程中最困难的工作,需要审慎周密的思考和推理。为了改正错误往往需要修正原来的设计,必须通盘考虑统筹兼顾,而不能“头疼医头、脚疼医脚”,应该尽量避免在调试过程中引进新错误。

        测试和调试是软件测试阶段中的两个关系非常密切的过程,它们往往交替进行

        程序中潜藏的错误的数目,直接决定了软件的可靠性。通过测试可以估算出程序中剩余的错误数。根据测试和调试过程中已经发现和改正的错误数,可以估算软件的平均无故障时间;反之,根据要求达到的软件平均无故障时间,可以估算出应该改正的错误数,从而能够判断测试阶段何时可以结束。

下一章:软件工程——第8章维护知识点整理

 

 反反复复,扎扎实实;念念不忘,必有回响!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/35137.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python编程实现针对回撤的交易策略

在金融交易市场上,回撤是一个常见的现象。因此,对于投资者来说,研究和设计针对回撤的交易策略是非常必要的。本文将介绍如何使用Python编程实现针对回撤的交易策略,以帮助投资者更好地进行交易。 一、回撤分析 在设计针对回撤的…

Cisco Catalyst 9000 Series Switches, IOS-XE Release Dublin-17.11.1 ED

Cisco Catalyst 9000 Series Switches, IOS-XE Release Dublin-17.11.1 ED Cisco Catalyst 9000 交换产品系列 请访问原文链接:https://sysin.org/blog/cisco-catalyst-9000/,查看最新版。原创作品,转载请保留出处。 作者主页:…

Basler相机一丢包就断开问题解决

问题描述: 两个相机, 一个相机aca2500-14gm连接电脑主板100M网卡没问题,帧率3帧,但是不会断。 一个相机aca2500-14gm连接USB转网口(千兆),pylon Viewer采图丢包严重并且几秒后相机断开。 解决…

Centos 7 下安装Redis

官网地址(英文):Redis 官网地址(中文):CRUG网站 or redis中文文档 Redis源码地址:GitHub - redis/redis: Redis is an in-memory database that persists on disk. The data model is key-v…

数据结构-排序

数据结构排序 1 知识框架2 插入排序2.1 直接插入排序2.2 折半插入排序2.3 希尔排序 3 交换排序3.1 冒泡排序3.2 快排 4 选择排序4.1 简单选择排序4.2 堆排序 5 归并和基数排序5.1 归并排序5.2 基数排序 1 知识框架 算法的稳定性:;两个相同的元素在排序算…

swiftUI和swift的区别

概述 SwiftUI是苹果公司推出的一种用于构建iOS、macOS、watchOS和tvOS应用程序界面的框架。它是基于Swift编程语言开发的,旨在简化UI开发过程并提供实时预览功能,使开发人员可以更快地构建出漂亮的应用程序界面。 Swift是苹果公司推出的一种面向对象的…

c++ word简单的写文本与画表格只支持docx

简单使用的代码如下所示&#xff1a; #include "stdafx.h" #include <windows.h> #include "minidocx.hpp" using namespace docx; using namespace std; std::string GB2312ToUTF8(const std::string& gb2312) { int len MultiByteToWid…

RK3588平台开发系列讲解(Camera篇)V4L2 主要特性

文章目录 一、V4L2 介绍1.1、模块化的架构1.2、统一的设备节点1.3、统一的视频数据格式1.4、支持多种视频设备1.5、支持流式 I/O1.6、支持控制参数1.7、支持事件通知二、V4L2使用场景沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要讲解V4L2 主要特性。 一、…

首发价11999元?华为智慧屏S3Pro电视7月10日上市

华为最新推出了两款全新的智慧屏 S3 Pro&#xff0c;分别是65英寸和75英寸版本&#xff0c;售价分别为5999元和7999元。除此之外&#xff0c;华为还推出了全新的S3 Pro 86英寸型号&#xff0c;首发价为11999元。这款电视将于7月10日上市&#xff0c;对于感兴趣的用户来说&#…

视频关键帧AI化的多种方法

视频关键帧AI化的逻辑是将视频切分成一帧帧的画面&#xff0c;然后使用SD绘画固定风格&#xff0c;最后统一在拼接在一起成为一个新的视频。 不管是Mov2Mov还是Multi Frame都能制作这种视频。但是这些操作起来比较麻烦&#xff0c;经过尝试处理较稳定的方法是可以通过img2im的…

C语言学习准备-编辑器选择

今天继续给大家更新C语言经典案例 今天的案例会比昨天稍微有一些难度&#xff0c;但是同时还是非常经典的案例 本来是想给大家继续更新C语言经典案例&#xff0c;但是有朋友反应C语言编辑器的选择&#xff0c;刚好我自己也是想更换一下C语言的编辑器&#xff0c;跟大家分享一下…

基于Web的智慧交通3D可视化系统

前言 城市交通是城市社会活动、经济活动的纽带和动脉&#xff0c;智慧交通系统对城市经济发展和人民生活水平起着极其重要的作用。 背景 随着我国城市化进程不断加快&#xff0c;现代城市交通问题日益受到人们的关注。特别是汽车数量的与日俱增&#xff0c;给城市带来了大量…

中国物流,驶入大航海时代

出海的一体化&#xff0c;不仅仅是物流的一体化&#xff0c;更是产业链、供应链的一体化。在诸多问题下&#xff0c;想要帮助企业更好地出海&#xff0c;就不能只专注于自身的长板&#xff0c;而是需要先补齐短板。 作者|斗斗 编辑|皮爷 出品|产业家 出海时代真的要来了。…

类Twitter风格的RSS阅读器

本文完成于 2 月中旬&#xff0c;其中的反代还是 frp npm 方案&#xff1b; 什么是 RSS ? RSS 是用 PHP、Laravel、Inertia.js、Tailwind 和 Vue.js 编写的简单的类Twitter 风格的 RSS阅读器&#xff0c;支持 RSS和ATOM 格式。 命令行安装 在群晖上以 Docker 方式安装。 官…

刷题日记06《回溯算法》

问题描述 力扣https://leetcode.cn/problems/Ygoe9J/ 给定一个无重复元素的正整数数组 candidates 和一个正整数 target &#xff0c;找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。 candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同…

【容器起不来~tomcat】

记录一次线上容器~tomcat起不来的场景: **部门由于资金有限,只能用tomcat去部署,话不多说直接贴图: Docker 镜像 Tomcat 启动失败– 查看线上日志,日志报错了,报错内容如下: 1,Error response from daemon: driver failed programming external connectivityon endpoint jen…

离线安装ffmpeg源码包【详细教程】

今天分享一下ffmpeg源码包的安装过程&#xff0c;针对在没有网络环境下&#xff0c;且不能直接使用yum如何成功安装ffmpeg源码包。博主本人通过正式服务器测试&#xff0c;记录整个安装过程。值得大家收藏 同时&#xff0c;我会分享一下如何使用ffmpeg对H.264格式视频(MP4)进行…

ss客服让您在Facebook 的客户服务更便捷

ss客服让您在Facebook Messenger 的客户服务更便捷 在这个信息时代&#xff0c;新兴通讯软件蓬勃兴起&#xff0c;比如Facebook Messenger。事实证明&#xff0c;这对企业来说非常有利&#xff0c;同时突出了电子邮件、网络聊天和电话等传统渠道的局限性。在传统渠道上&#xf…

PostGIS(2):PostGreSQL数据库空间扩展模块安装

正式开始解读PostGIS 3.1.10文档之前&#xff0c;我们还是先简单叙述一下如何安装PostGIS。 从引言篇已经了解到&#xff1a;PostGIS是对象关系型数据库PostGreSQL的一个拓展模块。既然如此&#xff0c;我们必须先安装PostGreSQL数据库&#xff08;详细教程可参考&#xff1a;P…

Cocos2dx学习笔记:浅谈游戏内的适配方案

前言 本篇在讲什么 Cocos2dx中的适配方案 本篇适合什么 适合初学Cocos的小白 本篇需要什么 对Lua语法有简单认知 依赖Cocos2dx3.15环境 依赖Sublime Text编辑器 依赖VS 2015编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手…