软件生存期模型
1. 瀑布模型
优点:开发人员使用规范化方法,每个阶段必须提交文档
缺点:只适用于项目开始需求已确定的情况,完全依赖书面要求导致最终软件产品不能真正满足用户要求
2.快速原型模型
开发人员加速软件开发过程,节约开发成本,用于获取用户真正需求,一旦需求确定,原型可抛弃
3.增量模型
优点:系统服务接受最多的测试,系统最重要的部分不会遭受失败
注意事项:添加新的增量构件,必须不破环原来已经开发出来的产品,软件系统结构必须开放
4.螺旋模型
优点:有利于已有软件的重用,减少过多测试带来的风险,维护与开发之间无本质区别
缺点:开发人员必须具有丰富的风险评估经验和专门知识
5.喷泉模型
面向对象方法开发软件
基于构件的开发模型
敏捷过程
1.敏捷原则
2.极限编程(eXtreme Programming,XP)
框架活动:策划、设计、编码和测试
软件设计原则
1.分而治之
2.模块独立性
3.提高抽象层次
4.复用性设计
5.灵活性设计
模块间的耦合与内聚
耦合(各模块间相关联的度量)
<1>内容耦合:不正常入口访问内部数据、多个入口、代码重叠
<2>公共耦合:访问同一个公共数据环境
<3>外部耦合:使用同一全局变量
<4>控制耦合:传递开关、标志和名字等很明显地控制另一模块地功能
<5>标记耦合:传递数据结构,传递结高级语言的数组名、记录名、文件名等
<6>数据耦合:参数表传递简单数据(不是控制参数、、公共数据和外部变量)
<7>非直接耦合:各成分,无直接联系,通过调用实现
内聚(同一模块内元素间紧密程度的度量)
<1>巧合内聚:联系非常弱甚至没有,也叫偶然内聚
<2>逻辑内聚:几种功能组合在一块,参数判断改执行哪一功能
<3>时间内聚:同一时间段内执行,也叫经典内聚
<4>过程内聚:以特定次序执行
<5>通信内聚:使用相同的输入数据
<6>信息内聚:在同一数据结构上操作。每一项功能有唯一入口
<7>功能内聚:每个功能模块都是必不可少缺一不可,都是大佬
白盒测试与黑盒测试
白盒测试逻辑覆盖与环路复杂性
语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖
程序环路复杂性
:边数-结点数+2
等价于判定结点数+1
黑盒测试用例设计
1.等价划分
2.边界值分析
今天的复习笔记,nice!