一、 软件设计
- 总体设计(概要设计,结构设计)
确定软件系统由哪些模块构成,以及模块间相互之间的关系 - 耦合:(块间联系)衡量不同模块间相互依赖的紧密程度,为独立性的直接衡量
- 内聚:(块内联系)模块内各部分(语句或段落)之间结合的紧密程度
- 方框代表模块,框内注明模块的名字或主要功能
- 方框之间的箭头或直线表示调用关系
- 带注释的箭头表示模块调用过程中来回传递的信息
- 空心:数据
二、概要设计
概要设计的方法:SD(结构化设计方法)
以数据流图为基础,定义了把数据流图变换成软件结构的不同映射方法,所以这种方法也称为面向数据流的设计方法
面向数据流设计方法的任务:
2. 模块的独立性
基本概念:
开发具有独立功能且和其它模块之间没有过多的相互作用的模块,可以做到模块的独立
特点:
具有特定的子功能,接口简单
衡量标准:
衡量模块的独立性:高内聚,低耦合
3. 耦合的分类
7. 结构图(SC)
SC图是SD方法在概要设计中使用的主要表达工具,用来显示软件的模块组成以及其调用关系
大型系统DFD中,变换型和事务型往往共存
2. 变换分析设计方法
- 区分输入,变换中心,输出部分,在DFD上标明分界线
- 输入边界:从物理输入端开始,一步步向系统内部移动,直到某个数据不能被看做是系统的输入为止,则这个数据流的前一个数据流就是系统的逻辑输入
- 输出边界:从物理输出端开始,一步步的向系统内移动,同样找到逻辑输出
中心加工分支的分解
- 预防错误:几乎不可能实现
- 发现错误:软件测试目的
测试的目的是为了证明程序有错,而不是证明程序无错
把证明程序无错当做测试目的不仅是不正确的也是完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的。 - 开发和测试队伍分别建立
- 测试用例(测试用的一组数据,环境平台和运行条件)应由输入数据和预期的输出结果两部分组成
- 兼顾合理的输入和不合理的输入数据
- 应检查程序是否做了不该做的事
- 程序修改后要回归测试
- 应长期保留测试用例,直至系统废弃
-
白盒测试(结构测试,玻璃盒测试,基于覆盖的测试)
根据被测试程序的逻辑结构设计测试用例,力求提高测试覆盖率
白盒测试是根据程序内部逻辑结构进行测试
基本概念
1. 软件测试的对象
软件测试不等于程序测试,软件测试应贯穿于软件定义与开发的整个期间
2. 测试的基本原则
例题:
3. 测试的方法和技术
- 穷举测试
不论黑盒还是白盒测试都不能进行穷举测试,所以软件测试不可能发现程序中存在的所有错误,因此需要精心设计测试方案,用尽可能少的次数,测出尽可能多的错误
4. 逻辑覆盖准则
- 如规定了输入数据是整型,则可划分出正整数,零,负整数三个有效等价类
- 如规格说明中提出输入输出的有序集(顺序文件,有序表),取有序集的第一个和最后一个元素做测试用例
- 错误推测法
思路:(以此为基础设计测试方案) - 列出可能有的错误
- 列出容易发生错误的特殊情况
根据: 直觉,经验
工具: 常见错误清单,判定表
6. 实用策略
黑盒设计+白盒补充
- 在任何情况下都应该使用边界值分析的方法
- 必要时用等价划分法补充
- 必要时用错误推测法补充
- 对照程序逻辑,检查测试方案,根据对程序可靠性的要求采用不同的逻辑覆盖标准,必要时补充一些测试方案
即使使用以上综合策略设计的测试方案,仍然不能保证发现一切错误
软件测试的步骤:
混合集成测试方法:
- 一般对软件的上层使用自顶向下的结合方法
- 对下层使用自底向上的结合的方法

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!