跳至主要內容

软件工程

yyshino大约 7 分钟

软件工程

系统流程图

系统流程图:是一种描绘物理系统的图,用图形符号以黑盒子形式描绘物理系统的各部 件,表达数据在系统各部件之间流动的情况。而不是对数据进行加工处理 的控制过程。

作用:描述物理系统的工具,用于可行性研究和需求分析阶段。

系统流程图的符号

image-20230507161645181image-20230505101317158image-20230505101502672

流程图的三种结构

image-20230505211729505image-20230506135834972

问题分析图(PAD)

image-20230506140002642image-20230506140031247image-20230506140120009

盒图

image-20230506140248797image-20230506140319788image-20230506140426091image-20230506140911587image-20230506140950994

DFD数据流图

描述信息流和数据从输入到输出过程所经受的变换。没有任何具体物理部件, 只是描绘数据在软件中流动被处理逻辑过程

image-20230507201433883image-20230506164905254image-20230506164933741

数据字典

数据字典:是关于数据的信息集合,即对数据流图中包含的所有元素定义的集合。

1.数据字典的内容:数据流、数据流分量(数据元素)、数据存储、处理。

数据字典用途: 在软件分析和设计的过程中给人提供关于数据的描述信息。

① 作为分析阶段的工具

② 估计改变一个数据将产生的影响

③ 是数据库开发的第一步

image-20230506165036891image-20230506165102431image-20230506165341822

SC结构图

image-20230506205243117image-20230506205150739

面向数据流设计方法也称为结构化设计方法(SD)

数据流图分类

(1)变换流:由输入、变换中心和输出三部分组成。

(2)事务流:在多种事务中选择一个执行。

变换分析: 把具有变换流特点的数据流图映射成软件结构。

变换型数据流图 => 软件结构图

事物型数据流图 => 软件结构图

实体-联系图(E-R图)

  • 实体:描述数据对象。

  • 属性:描述数据对象的性质。

  • 联系:描述数据对象之间的交互方式。

    • 一对一联系1:1
    • 一对多联系1:M
    • 多对多联系M:N
  • 表示方式

    • 矩形方框:实体
    • 菱形框:联系
    • 圆角矩形:属性

示例

image-20230506192130993
image-20230506192130993

判断表判定树

判定表:当算法中包含多重嵌套的条件选择时判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。

组成:

  • 左上部列出所有条件,左下部是所有可能的动作。
  • 右上部是表示各种条件组合,右下部是和每种条件组合相对应的动作。

判定树

依据判断表来画

依据条件分类

黑盒测试

黑盒方法

等价类划分法

划分等价类的规则(理解即可)

  • 如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类。

  • 如果输入条件代表集合的某个元素,则可定义一个有效等价类和一个无效等价类。

  • 如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类(所有不允许的输入值的集合)。

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

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

设计测试用例:

  1. 形成等价类表,每一等价类规定一个唯一的编号;
  2. 设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;
  3. 设计一新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖;

示例:

报表日期输入条件的等价类表

image-20230509122713268image-20230509123003189image-20230509123032153

边界值分析法
  • 输入等价类和输出等价类的边界就是应该着重测试的程序边界情况。选取的测 试数据应该刚好等于、刚好小于、刚好大于边界值

边界值分析原则(了解即可):

(1)如果输入条件规定了值的范围,可以选择正好等于边界值的数据作为合理的测试用例,同时选择刚好越过边界值得数据作为不合理的测试用例。 (2)如果输入条件指出了输入数据的个数,则按最大个数、最小个数、比最大个数多1、比最小个数少1等情况设计测试用例。 (3)对每个输出条件分别按照以上两个原则确定输出值的边界情况。 (4)如果程序的需求说明给出的输入或输出域是个有序集合(如线性表、链表等),则应选集合中第一个和最后一个元素作为测试用例。

常见的错误推测法

(1)零值、缺省值、空白、空值等测试值易使程序出错。

(2)分析规格说明书中的漏洞,编写测试数据。

(3)根据尚未发现的软件错误与已发现的软件错误成正比的规律,再进一步测试时重点测试已发现错误的程序段。

(4)等价类划分与边界值分析容易忽略组合的测试数据,因而可以采用判定表和判定树列出测试数据。

(5)与人工代码审查相结合,两个模块中共享的变量已被修改的,可以用来做测试用例。

因果图法

因果图适合于描述对于多种输入条件的组合,相应产生多个动作的形式来设计测试用例。因果图方法最终生成的是判定表。

示例:

image-20230509124000206image-20230509124025312image-20230509124134113

白盒测试

逻辑覆盖

  1. 语句覆盖:被测试程序中的每条语句至少执行一次
  2. 判定覆盖:使得被测程序中每个判定表达式至少获得一次“真”值和“假”值
  3. 条件覆盖:使得判定表达式中每个条件的各种可能的值至少出现一次
  4. 判定/条件覆盖:使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。(判定+条件)
  5. 条件组合覆盖:设计足够多的测试用例,使得每个判定表达式中条件的各种可能 的值的组合都至少出现一次
  6. 路径覆盖:覆盖被测程序中所有可能的路径
控制结构

基本路径测试

通过分析由控制构造的环路的复杂性,导出基本路径集合,从而设计测试用例,保证这些路径至少通过一次。

基本测试步骤

  1. 以详细设计或源程序为基础,到处程序流程图的拓扑结构——程序图(流图)
  2. 计算程序图G的环路复杂性V(G)
  3. 确定只包含独立路线的基本路径集
  4. 设计测试用例

示例:

image-20230509135720991image-20230509135740924image-20230509140106388

状态装换图(了解)

状态:系统的行为模式,包括初态、终态、中间状态。 事件:是指在某个特定时刻发生的事情,即对系统从一个状态转换到另一个状态 的事件抽象。 表示方式

  • 初态:实心圆
  • 终态:同心圆,内为实心
  • 状态:圆角矩形

在一张状态图中只能有一个初态 而终态可以有0至多个。

层次方框图(了解)

image-20230506193557790
image-20230506193557790

层次图与IPO图(了解)

层次图:用方框和连线表示,连线表示上下层的调用关系。

image-20230506205047034image-20230506205123268

参考

https://blog.csdn.net/weixin_43899069/article/details/109498776
https://blog.csdn.net/qq_46511838/article/details/109367966