软件工程导论
软件工程的概念
建立并使用完善的工程化原则, 以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法.
软件工程三要素
- 软件工程方法
- 软件工具
- 软件工程过程
常见软件开发模型
- 瀑布模型
- 快速原型模型
- 增量模型
- 螺旋模型
- 喷泉模型
软件危机
20世纪60年代, 计算机研发, 运行, 维护和管理过程中, 出现一系列严重问题的现象.
软件和程序的差别
软件=程序+文档=数据结构+算法+文档 。
程序和软件的区别是,软件是为了完成特定的功能,解决特定的问题而用计算机语言编写的命令序列集合,可以理解为应用程序的集合。而应用程序是软件的一个组成部分,它是软件的必要元素。
可行性分析任务
- 技术可行性分析
- 经济可行性分析
- 会可行性分析
需求分析的3个层次
- 业务需求
- 用户需求
- 功能需求
E-R图
数据流图
软件设计原则
- 模块化
- 抽象
- 逐步求精
- 模块的独立性
- 信息隐蔽
模块和模块化
模块是构成软件系统的基本构件, 主要由数据说明, 执行语句等程序对象构成
模块化是将复杂的软件划分为功能相对独立且易于处理的模块的过程
信息隐蔽
信息隐蔽是指模块所包含的 “过程及数据” 信息, 对于其它模块需要隐蔽
耦合和内聚
衡量模块独立性的标准:耦合和内聚
保持模块独立性要达到的标准:高内聚低耦合
常见的耦合种类以及强弱
- 非直接耦合
- 数据耦合
- 控制耦合
- 特征耦合
- 公共环境耦合
- 内容耦合
耦合性逐渐增强
详细设计任务
- 模块的算法设计
- 模块的内部数据结构设计
- 模块接口设计
- 其它相关设计
- 模块测试用例设计
- 编写详细设计文档
- 详细设计评审及实现方案
PAD图、流程图
注释分类
- 序言性注释
- 中间注解(功能性注释)
软件测试的目的
尽可能多的找到软件中的错误,而不是证明软件的正确性
验收测试的概念
在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。
基本路径测试
定义:基本路径测试法又称独立路径测试,是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计出相应的测试用例的方法。
-
根据程序设计结果导出程序流程图的控制流图
流图中的区域数等于环形复杂度
流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
-
导出基本路径集,确定程序的独立路径
基本测试路径:- 1-2-6
- 1-2-3-6
- 1-2-3-4-2
- 1-2-3-5-2
-
设计相应的测试用例
基本路径 | arr | objectValue | return |
---|---|---|---|
1-2-6 | [ ] | 1 | -1 |
1-2-3-6 | [1,2,3] | 2 | 1 |
1-2-3-4-2 | [1,2,3,4,5] | 2 | 1 |
1-2-3-5-2 | [1,2,3,4,5] | 4 | 3 |
等价类划分
等价划分是一种黑盒测试技术,把程序的输入域划分成若干个数据类,据此导出测试用例。
划分等价类
- 有效等价类: 合理, 有意义输入数据构成集合
- 无效等价类: 不合理, 无意义输入数据构成集合
等价类划分原则:
- 输入条件规定范围, 定义一个有效等价类和两个无效等价类
- 输入条件是布尔值, 一个有效等价类和一个无效等价类
- 规定输入数据是一组值, 程序对每个输入值分别进行处理. 每个输入值确立一有效等价类, 针对这组值确立一个无效等价类
- 规定输入数据必须遵守规则, 定义一个数据有效等价类 (符合规则) 和 若干个无效等价类(从不同角度违反规则).
- 已划分等价类中各元素在程序中处理方式不同, 将等价类进一步划分更小等价类
确立测试用例原则
- 为每一等价类规定一唯一编
- 设计一新测试用例, 尽可能多覆盖尚未被覆盖的有效等价类重复, 直到所有有效等价类被覆盖
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!