软件工程 期末复习

一、 UML

UML是一种标准的图形化建模语言,可以捕获系统静态结构和动态行为的信息,独立于过程。可以作为测试依据,类图指导单元测试,协作图和构件图指导集成测试,用用例图指导系统测试。

“4+1”视图:用例视图、逻辑视图、实现视图、过程视图、部署视图

1.1 用例图

  1. 参与者:操作对象
  2. 用例:一系列动作序列
    必须是动宾短语
    是相对独立的
    是一个单元
    由参与者启动
    有可观测的执行结果
  3. 用例的粒度:保证所有用例在同一个层级
  4. 用例之间的关系
    扩展关系(描述行为变化,扩展用例可能被执行,指向基用例)
    包含关系(避免重复操作,包含用例一定被执行,指向包含用例)
    泛化关系

1.2 静态图

1.2.1 类图

  1. 组成:类名、属性、操作在这里插入图片描述
  2. 关联与依赖
    关联关系有多重性(注意⚠️),静态
    依赖是动态的,无多重性
  3. 聚合与组合
    聚合:部分可以独立存在
    组合:部分不能独立存在
  4. 泛化=继承

1.2.2 对象图

  1. 由对象和链组成
  2. 表示法
    –标准表示法:stu:Student
    –匿名表示法::Student
    –省略类名的表示法:stu
  3. 对象中只有对象名和属性

1.2.3 包图

  1. 可以包含各种高级的元素,允许嵌套
  2. 命名
    –简单包名:Vision
    –路径包名:Sensor::Vision
  3. 同一个包内同种元素必须不同名
  4. 高内聚,低耦合
  5. 循环依赖需要引入第三个包,重构

1.3 行为图

1.3.1 状态图

  1. 添加多个事件之间的状态转移
  2. 有两种行为:事件和活动
  3. 子状态不同,外部呈现的状态是相同的
  4. 可以没有起点和终点(患者监护系统)

1.3.2 活动图

  1. 组成:动作和活动节点、开始和终止、控制流、判断节点、合并节点和泳道
  2. 动作为原子操作
  3. 必须有且仅有一个开始,通常至少有一个终止
  4. 泳道为活动分区
  5. 指向同一个合并节点不意味着要相互等待或数据同步

1.4 交互图

1.4.1 顺序图

  1. 按时间顺序显示对象交互
  2. 组成:对象、生命线、激活和消息
  3. 激活:又称控制焦点,表示执行一个动作经历的时间段
  4. 虚线返回
  5. 布局:用户–用户界面–控制流(逻辑层)–数据库
  6. 擅长表现交互顺序

1.4.2 协作图

  1. 组成:对象、消息、链
  2. 链用于传输或实现消息的传递
  3. 适用于展现系统中的对象结构

1.5 实现图

1.5.1 组件图

  1. 组成:组件、接口、关系
  2. 接口: 供给接口 和 需求接口

1.5.2 部署图

  1. 组成:节点、关系
  2. 节点:处理器 和 设备(<>)

二、 软件测试

软件测试是按照规定的软件规程发现软件缺陷的过程
分类1 功能/性能/兼容性/易用性/非功能性
分类2 静态/动态
在这里插入图片描述

2.1 静态测试

2.1.1 走查

2.1.2 审查

2.1.3 评审

2.2 动态测试

2.2.1 黑盒测试

  1. 基于需求
  2. 分类:
    –等价类划分法 分有效与无效 设计测试用例
    –边界值分析法
    –错误推测法 逆向思维
    –因果图分析法
    –场景分析法
  3. 优点:
    应用面广
    不需要知道内部逻辑
    可以借助自动化工具提高效率
  4. 缺点:
    测试技能与业务熟悉度结合不紧密
    缺陷定位不够准确

2.2.2 白盒测试

  1. 基于代码
  2. 测定依据是《详细设计说明书》
  3. 覆盖技术:语句覆盖、条件覆盖、分支覆盖和组合覆盖
  4. 基本路径测试法:把程序流程图映射成流图在这里插入图片描述
  5. 优点:
    深入,能从内部发现问题
    对黑盒测试最有力的补充
  6. 缺点:
    难查出遗漏的路径
    工作量大
    要理解代码

2.2.3 灰盒测试

黑盒和白盒综合策略

2.3 测试计划

  1. 熟悉项目情况
  2. 确定和排序测试需求
  3. 定义测试策略
  4. 估计测试工作量
  5. 配置测试资源

2.4测试步骤

在这里插入图片描述

2.4.1 代码审查

依据:源代码

2.4.2 单元测试

对软件基本组成单元进行的测试
依据:详细设计
–模块接口测试
–模块局部数据结构测试
–模块边界条件测试
–模块独立执行路径测试
–模块内部错误处理测试

2.4.3 集成测试

组装成子系统或系统
依据:概要设计(总体设计)
层次:
–模块内集成
–子系统内集成
–子系统间集成
测试技术:
–正向测试 等价类/状态转换
–逆向测试 错误猜测法/故障测试/边界值/特殊值/状态转换测试
–高覆盖测试 功能覆盖/接口覆盖
–非渐增式测试方法
–渐增式测试方法
–大爆炸集成 自顶向下集成/自底向上集成/三明治集成

2.4.4 系统测试

将集成好的软件系统,结合多方面进行综合测试
依据:系统需求
测试方法:
–功能测试
–性能测试
–协议一致性测试
–压力测试
–容量测试
–安全性测试
–恢复测试
–备份测试
–GUI测试
–兼容性测试
–可用性测试
–安装测试
–文档测试
–在线帮助测试
–数据转换测试

一般使用黑盒测试方法

2.4.5 回归测试

检查系统变更后是否引入新错误或旧错误重复出现

2.4.6 验收测试

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值