软件工程复习简略

news2024/12/24 21:50:19

软件工程复习简略

          • 1.什么是软件生存周期?通常可划分为哪些阶段?
          • 2.简述需求分析要经过哪些步骤,每个步骤的作用。
          • 3.详细设计有哪些常用工具?(注意Pad图的画法)
          • 4.软件测试的目的和原则是什么?
          • 5.测试有哪些步骤?说明每一步骤的主要目标以及这些测试与软件开发各阶段之间的关系。
          • 6.说明软件测试和调试的目的有何区别?
          • 7.提高软件可维护性的方法有哪些?
          • 8.简述软件项目成本主要由哪些方面构成?
          • 9.什么软件质量?它强调哪几个要点?
          • 10.简述面向对象的开发方法有哪些优点。
          • 11.简述面向对象3种模型和5个层次
          • 12.UML的定义是什么?它的组成部分有哪些?
          • 13.盒图/PAD图
          • 14.用例图/类图
            • 14.1用例图
            • 14.2类图
          • 15设计黑盒测试用例
            • 15.1等价类划分法
            • 15.2边界值分析法
            • 15.3 错误推测法
            • 15.4因果图法
            • 15.5决策表法
            • 15.6场景法
          • 16白盒测试
            • 16.1代码检查法
            • 16.2静态结构分析法
            • 16.3程序插桩技术
            • 16.4逻辑覆盖法

请添加图片描述

1.什么是软件生存周期?通常可划分为哪些阶段?

软件生命周期指软件产品或软件系统孕育、诞生、成长、成熟、衰亡的生存过程,是软件从设计、投入使用到被淘汰的全过程。
分为软件定义、软件开发及软件运行维护3个阶段。
(1)问题定义
(2)可行性研究与计划
(3)需求分析
(4)总体设计
(5)详细设计
(6)编码和单元测试
(7)综合测试
(8)使用和维护

2.简述需求分析要经过哪些步骤,每个步骤的作用。

步骤:

  1. 验证可行性研究阶段得到的结果
  2. 分析系统的主要要求
  3. 得到系统的逻辑模型
  4. 修正系统的开发计划
  5. 验证软件需求

作用:

  1. 获得用户的真实需求
  2. 全面、准确理解用户需求
  3. 准确表达用户需求
  4. 修正开发计划、重新指定开发进度、预算。
  5. 建立需求规格说明书,确保软件需求的全面性、精确性和一致性
3.详细设计有哪些常用工具?(注意Pad图的画法)
  1. 程序流程图
  2. 盒图(N-S图)
  3. PAD问题分析图
  4. 过程设计语言PDL
  5. 判定表
  6. 判定树
4.软件测试的目的和原则是什么?

目标:

用最少的人力物力时间,找出软件中存在的问题,修正问题,规避商业风险。

原则:

  1. 完全测试是不可能的
  2. 测试中存在风险
  3. 软件测试只能表明缺陷的存在,而不能证明软件产品已经没有缺陷
  4. 软件产品中潜在的错误数与已发现的错误数成正比
  5. 让不同的测试人员参与到测试工作中
  6. 让开发小组和测试小组分立,开发工作和测试工作不能由同一部分人来完成
  7. 尽早并不断地进行测试,使测试工作贯穿于整个软件开发的过程中
  8. 在设计测试用例时,应包括输入数据和预期的输出结果两个部分,并且,输入数据不仅应该包括合法的情况,还应该包括非法的输入情况
  9. 要集中测试容易出错或错误较多的模块
  10. 应该长期保留所有的测试用例
5.测试有哪些步骤?说明每一步骤的主要目标以及这些测试与软件开发各阶段之间的关系。

测试类型/步骤:

  1. 单元测试
  2. 组装测试
  3. 确认测试
  4. 系统测试

目标:

  1. 单元测试:保证每个模块能作为一个独立的单元正确运行
  2. 组装测试:检查模块之间的接口及 接口之间的数据传递关系问题,以及单元组合后是否能够实现预期的功能等
  3. 确认测试:确认软件是否满足用户需求
  4. 系统测试:充分运行系统,验证系统,同系统的需求定义做比较,发现软件与系统定义不符合或矛盾的地方

关系:
项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。
需求分析阶段:确定测试需求分析,即确定在项目中需要测试什么,同时制定系统测试计划。
概要设计与详细设计阶段:制定单元测试计划和集成测试计划。
编码阶段:编写相应的测试代码和测试脚本。
测试阶段:执行测试并提交相应的测试报告。

6.说明软件测试和调试的目的有何区别?

1、目的:测试的目的是找问题,调试的目的是找到并解决问题。
2、人员:测试由专门的测试人员完成,调试由开发人员完成。
3、结果:测试从已知条件开始,使用预定义的过程,并且有预期结果;而调试条件未知,结果不可 预知。
4、过程:测试可以预先计划,可以制订测试用例和计划,进度可以度量;调试没有计划,进度也不可以度量。
5、阶段:测试贯穿于软件生命周期的整个阶段;调试只在编码阶段进行。

7.提高软件可维护性的方法有哪些?

1、建立明确的软件质量目标和优先级
2、使用提高软件质量的技术和工具。
3、选择便于维护的程序设计语言
4、采取明确的有效的质量保证审查报告
5、完善程序的文档

8.简述软件项目成本主要由哪些方面构成?
  1. 硬件成本
  2. 差旅费及培训费用
  3. 软件开发成本
  4. 项目管理费用
9.什么软件质量?它强调哪几个要点?

软件质量
概括地说:

软件与明确地和隐含地定义的需求相一致的程度。

具体地说:

软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准,以及所有专业开发的软件都应具有的隐含特征的程度。

定义强调以下三点:

  1. 软件需求是度量软件质量的基础,与需求不一致就是质量不高。
  2. 指定的标准定义了一组指导软件开发的准则,如果没有遵守这些准则,几乎肯定会导致质量不高。
  3. 通常,有一组没有显式描述的隐含需求。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的。
10.简述面向对象的开发方法有哪些优点。

优点:

  1. 与人们习惯的思维方法一致
  2. 稳定性好
  3. 可重用性好
  4. 可维护性好。
  5. 较易开发大型软件产品
11.简述面向对象3种模型和5个层次

三个模型:
1.描述系统数据结构的对象模型,
2.描述系统控制结构的动态模型
3.描述系统功能的功能模型。
五个层次:
主题层、类与对象层、结构层、属性层、服务层

12.UML的定义是什么?它的组成部分有哪些?

定义:
UML是为软件系统的制品进行描述、可视化、构造、文档化的一种语言。
组成部分:
UML=UML成员+UML建模规则

UML建模规则:相当于建模语言的语法
UML成员:它是UML的基本组成部分

UML成员=UML基本模型元素+关系+模型图

UML成员可进一步划分为:

UML 基本模型元素
关系
模型图

UML中有九种图(diagram)和五种视图(view)。
九种图包括:用例图、类图、对象图、状态图、顺序图、协作图、活动图、构件图和部署图。
用来观察系统的五种视图有:用例视图、逻辑视图、构件视图、并发视图和部署图。

13.盒图/PAD图

点击查看【bilibili】
点击查看【bilibili】
请添加图片描述

PAD图基础画法:
请添加图片描述

流程图基本画法:
请添加图片描述

盒图基本画法:
请添加图片描述

例题
请添加图片描述

分析:
请添加图片描述

盒图:
image.png
PAD图

  1. 多张子图

image.png

  1. 一整张图

image.png

14.用例图/类图

点击查看【bilibili】

14.1用例图

image.png

image.png
例题:
注意动词性的词
image.png

14.2类图

image.png
示例:
image.png

15设计黑盒测试用例
15.1等价类划分法

划分等价类的原则:

  1. 如果输入条件规定了取值范围或个数,则可确定一个有效等价类和两个无效等价类。

例如,输入值是选课人数,在0到100之间,那么有效等价类是“0≤学生人数≤100”,无效等价类是“学生人数<0”和“学生人数>100”。

  1. 如果输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。

例如,输入值是日期类型的数据,那么有效等价类是:日期类型的数据;无效等价类是:非日期类型的数据。

  1. 如果输入条件是布尔表达式,则可以分为一个有效等价类和一个无效等价类。

例如,要求密码非空,则有效等价类为非空密码,无效等价类为空密码。

  1. 如果输入条件是一组值,且程序对不同的值有不同的处理方式,则每个允许的输入值对应一个有效等价类,所有不允许的输入值的集合为一个无效等价类。

例如,输入条件“职称”的值是初级、中级或高级,那么有效等价类应该有3个,即初级,中级,高级,无效等价类有一个,即其他任何职称。

  1. 如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从不同的角度违反规则)。

例如,在Pascal语言中对变量标识符规定为“以字母为开头的…串”,那么其有效等价类是“以字母开头的串”,而“以非字母开头的串”为其中的一个无效等价类。

  1. 如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。

如最终用户与系统交互的提示。

设计测试用例的步骤可以归结为以下3步。

  1. 对每个输入和外部条件进行等价类划分,画出等价类表,并为每个等价类进行编号。
  2. 设计一个测试用例,使其尽可能多地覆盖有效等价类,重复这一步,直到所有的有效等价类被覆盖。
  3. 为每一个无效等价类设计一个测试用例。
15.2边界值分析法

边界值分析法是一种补充等价类划分法的黑盒测试方法,它不是选择等价类中的任意元素,而是选择等价类边界的测试用例。边界值分析法不仅重视输入范围边界,也从输出范围中导出测试用例。
通常情况下,软件测试所包含的边界条件有以下几种类型:数字、字符、位置、质量、大小、速度、方位、尺寸、空间等;对应的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况。
边界值分析法原则:

  1. 如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例。

如以a和b作为输入条件,测试用例应当包括a和b,以及略大于a和略小于b的值;

  1. 若规定了值的个数,应分别以最大、最小个数和稍小于最小和稍大于最大个数作为测试用例。

例如,一个输入文件有1-300个记录,设计测试用例时则可以分别设计有1个记录、300个记录以及0个记录和301个记录的输入文件;

  1. 针对每个输出条件,也使用上面的两条原则;

如果程序规格说明书中提到的输入或输出范围是有序的集合,如顺序文件、表格等,应注意选取有序集的第一个和最后一个元素作为测试用例;

  1. 分析规格说明,找出其他的可能边界条件。
15.3 错误推测法

基本想法:

  1. 列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选择测试方案。

例如,输入数据为零或输出数据为零往往容易发生错误;如果输入或输出的数目允许变化(如被检索的或生成的表的项数),则输入或输出的数目为0和1的情况(如表为空或只有一项)是容易出错的情况。

  1. 仔细分析程序规格说明书,注意找出其中遗漏或省略的部分,以便设计相应的测试方案,检测程序员对这些部分的处理是否正确。
15.4因果图法

在因果图中,用C表示原因,E表示结果,各节点表示状态,取值0表示某状态不出现,取值1表示某状态出现。

image.png
image.png
因果图法设计测试用例的步骤如下:

  1. 分析程序规格说明书的描述中,哪些是原因,哪些是结果,原因常常是输入条件或输入条件的等价类,而结果常常是输出条件;
  2. 分析程序规格说明书中描述的语义内容,并将其表示成连接各个原因与各个结果的因果图;
  3. 由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的,为表明这些特定的情况,在因果图上使用若干特殊的符号标明约束条件;
  4. 把因果图转化为决策表;
  5. 为决策表中每一列表示的情况设计测试用例。
15.5决策表法
15.6场景法
16白盒测试
16.1代码检查法
16.2静态结构分析法
16.3程序插桩技术
16.4逻辑覆盖法

点击查看【bilibili】

例:

if A and B
	then action1
if C or D
	then action2

逻辑覆盖法.jpg
路径覆盖
路径覆盖.png

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

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

相关文章

pythonselenium自动化测试实战项目(完整、全面)

前言 之前的文章说过&#xff0c; 要写一篇自动化实战的文章&#xff0c; 这段时间比较忙再加回家过11一直没有更新博客&#xff0c;今天整理一下实战项目的代码共大家学习。&#xff08;注:项目是针对我们公司内部系统的测试&#xff0c;只能内部网络访问&#xff0c;外部网络…

【SpringCloud负载均衡】【源码+图解】【三】LoadBalancer的工作原理

【SpringCloud负载均衡】【源码图解】【二】LoadBalancer配置 目录3. LoadBalancer的工作原理3.1 创建LoadBalancerRequest3.2 创建上下文3.2.1 properties3.2.2 configurations3.2.3 contexts3.3 获取ReactiveLoadBalancer3.4 获取ServiceInstance3.5 向serviceInstance请求结…

Java要学到什么程度才可以找工作?

Java为不同的集合提供了一个集合框架。集合基于数据结构&#xff0c;比如常见的&#xff1a;列表、数组、集合、哈希图等等。因此&#xff0c;在研究集合时&#xff0c;最好了解一点数据结构的相关知识。 主要副题&#xff1a; List Set Map ArrayList LinkedList Queue…

web3:智能合约-虚拟机(EVM、HVM、WASM、MOVE)

在区块链上&#xff0c;用户通过运行部署在区块链上的合约&#xff0c;完成需要共识的操作。而为智能合约提供运行环境的便是对应的虚拟机。 目录EVM基础概念技术细节EVM的存储模型交易在EVM的执行普通转账交易智能合约的创建或者调用EVM机器语言与现有的虚拟机科技作比较EVM的…

Java中类的复用

类的复用&#xff08;组合与继承&#xff09; 第一种方法&#xff1a;只需在新类中产生现有类的对象&#xff0c;新类由现有类组成&#xff0c;也称为组合&#xff0c;该方法只是复用了现有程序代码的功能&#xff1b; 第二种方法&#xff1a;按现有类来创建新类&#xff0c;…

m基于LPF-VMD和KELM的鸟群优化算法的风速预测算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 1).使用 LPF-VMD 对风速时间序列进行分解&#xff0c; 得到一个低频的趋势分量以及 n 个由 VMD 分解得 到的 BIMF。 2).对 LPF-VMD 分解得到的各分量分别建立 KELM 预测模型&#xff0c;采用 B…

【进阶】C语言第二课:升级你的指针(1)

目录 &#x1f929;前言&#x1f929;&#xff1a; 一、字符指针&#x1f92f;&#xff1a; 1.字符指针的使用&#x1f99d;&#xff1a; 2.常量字符串&#x1f98a;&#xff1a; 3.相关面试题分析&#x1f423;&#xff1a; 二、指针数组&#x1f9d0;&#xff1a; 三、数…

vue+nodejs公益图书借阅捐赠管理系统

公益图书捐赠管理系统 用户信息&#xff1a;id、用户名、密码、捐书数量&#xff08;管理员端可以点击跳转查看详情&#xff09;、上传电子书数量&#xff08;管理员端可以点击跳转查看详情&#xff09;、借阅图书数量&#xff08;管理员端可以点击跳转查看详情&#xff09;&am…

利用全长转录组多重阵列测序检测同源异构体

哈佛大学和麻省理工学院近期发表了“High-throughput RNA isoform sequencing using programmable cDNA concatenation.”研究论文中&#xff0c;将 cDNA 串联成可用于长读长测序最佳的单分子的技术应用于肿瘤浸润 T 细胞的单细胞 RNA 测序,提高了寻找可变剪接基因的准确度&…

秒懂:JCTool 的 Mpsc 高性能无锁队列 (史上最全+10W字长文)

文章很长&#xff0c;而且持续更新&#xff0c;建议收藏起来&#xff0c;慢慢读&#xff01;疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 &#xff1a; 免费赠送 :《尼恩Java面试宝典》 持续更新 史上最全 面试必备 2000页 面试必备 大厂必备 涨薪必备 免费赠送 经典…

C# 修饰符

一 访问控制符 二 static 1 static 的字段、方法、属性是属于整个类的 ① static方法中&#xff0c;不能访问实例变量&#xff1b; ② 调用static方法时&#xff0c;直接用类名访问 Console.Write();Math.Sqrt(); Convert.ToDateTime();DateTime.Parse String.Copy(a);Strin…

【JavaSE】javaSE练习项目——>《简易图书管理系统》

目录 前言&#xff1a; 1、项目实现要求 2、设计思路流程 设计思路&#xff1a; 登录后菜单的实现效果&#xff1a; 3、代码实现&#xff08;大体框架&#xff09; Main类 book包 Book类 BookList类 user包 User类 AdminUser(管理员)类 NormalUser&#xff08;普通…

Hibernate Validator 使用详解

目录 Hibernate Validator的依赖 Hibernate Validator 支持注解 空与非空检查 Boolean值检查 日期检查 数值检查 其他 Hibernate-validator扩展约束 Hibernate Validator 校验 简单对象校验 嵌套对象校验 Hibernate Validator 分组校验 静态分组 动态分组 动态分…

【软件测试】刚入职后,快速适应新的工作需要做啥?

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 入职一家新公司后&a…

基于AD8226的环境光传感器电路

人们越来越多地认为环境光是一种能源,可用于驱动心率监控器、浴室灯具、远程天气传感器和其他低功耗器件。对于能量采集系统,最关键的是精确测量环境光的能力。本设计思路将描述一种简单的低成本电路,可以根据环境光的强度按一定比例提供电压。 所用传感器是一款光敏电阻(L…

spring framework 容器

org.springframework.beans 和 org.springframework.context 包是 Spring Framework 的 IoC 容器的基础。 这里需掌握两个体系结构&#xff0c;BeanFactory 和 ApplicationContext。 BeanFactory 主要接口&#xff0c;可分为三级&#xff1a; BeanFactory 是顶层容器&#xf…

Nacos 配置中心之主动拉取

客户端 客户端的配置有两种方式来维持,一是客户端主动拉取,而是客户端长轮询更新 配置文件的种类 1、本地配置文件: 本地就已经存在的配置文件 2、 本地缓存文件: 从服务端获取的保存在了本地 (本地生成了文件) 3、 cacheData 缓存数据: 内存中缓存的配置文件数据 客户端主动获…

【分享】学浪PC端登录分析及实现

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!学浪PC端登录分析及实现 环境 win10Fiddlerchrome学浪PC端登录:aHR0cHM6Ly9zdHVkZW50LWFwaS5peWluY2Fpc2…

AE 动效制作和交付方案

在界面设计中&#xff0c;设计师利用动效让整个界面更加活泼&#xff0c;给界面元素带来生命力&#xff0c;解决功能上的问题&#xff0c;在更好地展示产品功能的基础上&#xff0c;凸显品牌的特色。而作为用户&#xff0c;动效增强了体验者的审美感受、情感需要&#xff0c;让…

德才论

目录 1015:德才论 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 思路: 1.技巧&#xff1a; 1.2结构体代码: 2.分类: 1.德才分类 1.2德才分类代码: 2.cmp函数 2.1 cmp函数代码: 3.超时问题(易错&#xff0c;算法要优化) 总代码…