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

news2024/11/27 8:28:34

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

文章目录

 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章维护知识点整理

 

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

旅游卡系统招募城市合伙人

旅游业的不断发展,旅游卡系统作为一种新型的旅游消费模式也逐渐被越来越多的人所认可。现在,许多旅游卡系统开始招募城市合伙人,以进一步拓展其市场。 旅游卡系统是一种可以将不同景区、景点门票进行整合,并提供折扣优惠的旅游…

谈谈mysql——Binlog的复制方式和解析技巧

mysql 我们先来看一下MySQL的基本架构,从大的方面来讲,一个server层,一个引擎层。server层就像一个接口,可以对接任何符合规定的引擎。具体的细节可以参考我之前写过的文章mysql的这些坑你踩过吗?快来看看怎么优化mys…

vue3+pinia用户信息持久缓存(token)的问题

vue3pinia用户信息持久缓存(token)的问题 对博主来说,这是个相当复杂的问题。 当初在使用vue2vuex进行用户信息持久登录时,写了不下3篇博客,确实是解决了问题,博客链接如下 vue存储和使用后端传递过来的tokenvue中对…

动态规划之 509斐波那契数(第1道)

目录 题目:斐波那契数 (通常用 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。 解法: 动态规划法: 题目:斐波那契数 (通常用…

大象机器人人工智能套装2023版深度学习协作机器人、先进机器视觉与应用场景

引言: 介绍当前的版本 今天我们要介绍的是aikit2023,aikit2023是aikit的全新升级版。 AIkit 2023 是一套集视觉,定位抓取、自动分拣模块为一体的入门级人工智能套装。 该套装基于python平台,可通过开发软件实现机械臂的控制&am…

gitee提交项目失败记录:remote:error:hook declined to update refs/heads/master

问题描述; 今天修改了项目里面一些文件内容,结果提交的时候报错了,可以提交到本地仓库,但提交到中央仓库报如下异常,因此记录下,防止后面再遇到…… 解决办法: 登录gitee账号,在设置…

自定义MVC的进阶使用

文章目录 前言一、环境配置1.1 将框架打包成jar包1.2 将Jar包导入新项目1.3 将分页标签相关文件、及相关助手类导入1.4 配置文件 二、前后台编写2.1 实体类2.2 dao2.3 Servlet2.4 配置mvc.xml2.5 JSP2.6 运行结果 前言 通用增删改查、通用分页、XML解析反射建模,包…

【网络安全带你练爬虫-100练】第6练:内嵌发包提取数据

目录 一、分析目标: 二、代码实现 目标1:对于捕获的URL内嵌发包 目标2:找到电话和邮箱的位置 目标3:提取电话和邮箱 三、完整代码 四、网络安全小圈子 (注:需要带上登录成功后的cookie发包&#xff…

Nginx部署前后端分离项目

dev.env.js解释 //此文件时开发环境配置文件 use strice//使用严格模式 const merge require(webpacl-merge)//合并对象 const prodEnv require(./prod.env)//导出 module.exports merge(prodEnv,{//合并两个配置文件对象并生成一个新的配置文件,如果合并的过程…

使用Postman做接口测试并生成接口测试报告

学习目标 1、录制脚本或使用手写url进行抓包 2、微信api接口(可录制可手写) 3、添加多 个标签,获取多个标签,编辑多个标签,删除多个标签!!!(csv格式) 4、通过…

Java JDK 安装及环境配置教程

一、安装 1、安装包 jdk1.8安装包下载路径 2、创建一个英文的文件夹 注意:整个路径不要有中文、建议文件夹直接命名为JDK。 3、在该文件夹下创建两个空文件夹,分别为:jdk1.8 和 jre 其中jdk1.8 是我的JDK版本,这个可以自行改变。…

宝塔 安装/使用Jenkins-图文小白教程

一、Jenkins包下载 大家可以从Jenkins官网(https://www.jenkins.io/)根据自己的需要下载最新的版本。 但Jenkins官网下载较慢,容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。目前博主使用的是清华大学的开源镜像网站&…

【spring创建对象方式】 and 【Java创建对象方式】

Spring创建对象方式 通过构造函数创建对象,通过静态工厂方式创建对象,通过实例工厂方式创建对象 1、通过构造函数创建对象 无参构造函数: 最基本的对象创建方式,只需要有一个无参构造函数(类中没有写任何的构造函数…

excel 复制出来的数据内容自动带上空格

在excel中批量处理完了公式,想复制到navicat 或者文本编辑框里,发现都会自动带上双引号,但是excel 里是没有,查找了半天。 在excel里的文本如下所示 拷贝出来的结果如下所示: 经过检查发现原文中只要带有回车或者换行…

A40i Linux3.10开发板移植高精度定时器hrtimer驱动

目录 整编内核 修改Makefile文件 编译内核 生成.ko文件 应用层调用 这里使用整个编译内核的方式编译.ko文件。 整编内核 编写一个hrtimer_demo.c的驱动程序源码如下&#xff1a; #include <linux/module.h> #include <linux/kernel.h> #include <linux/i…

相机图片给 Livox 激光雷达点云赋色(python代码 单文件)

需要配置PCD文件路径, 图片路径,相机内参,相机和雷达的外参; 单文件, Windows , liunx 都可以运行。 雷达和相机外参如何标定请看我的另外一篇标定的代码文章。 效果如下图: 附上代码: # coding:utf-8import cv2 import numpy as np import open3d as o3ddef get_U…

记录一次在泛微OA中添加js代码块,限制开始日期时间不能大于等于结束日期时间

目标&#xff1a; 在选择流程后提交时&#xff0c;选择的开始日期、时间不能大于结束日期、时间选择的开始日期、时间不能等于结束日期、时间满足以上条件才可以提交 效果图&#xff1a; 在OA后台添加js代码的步骤&#xff0c;如下&#xff1a; 图一&#xff08;第1-5步参考图…

[NPUCTF2020]你好sao啊

前言 base64的解密算法&#xff0c;开始还以为是什么变种加密手段 分析 可以发现加密区域主要位于RxEncode中&#xff0c;最终结果为s中保存数据 解密算法写的有点怪怪的&#xff0c;知道是4转3但给人1的感觉不像是在解密&#xff0c;更像是在换表之类的操作 strchr的作用为…

小程序前端上传图片直传七牛云不存储服务器

fastadmin文件API接口文件下的common修改默认的upload方法&#xff0c;直接替换即可 /*** 上传文件* ApiMethod (POST)* param File $file 文件流*/public function upload(){$file $this->request->file(file);if (empty($file)) {$this->error(__(No file upload…

IDEA中使用Git拉取项目时设置重新输入用户名和密码

1、选择&#xff1a;file ----> setting ---->passwords 2、选中这个Do not save 3、点击OK 4、重新使用Git拉取代码会提示重新输入用户名和密码