软件构造知识点复习:1、2章+软件测试
第一章、软件的建设观点与质量目标
多维软件视图
软件构造这门课,我们首先接触的就是多维软件视图:
从时间分为:瞬时(Moment)、周期(Period)
从编码分为:构建(开发)(Build-time)、运行(Run-time)
从代码分为:代码(Code-level)、模块(Component)这里每个层次关注的点是不一样的
Build-time:
- Code-level:代码逻辑组织
- Component-level:代码物理组织
- Moment:某一时刻的软件形态
- Period:软件形态随时间变化
Run-time:
- Code-level:逻辑实体再内存中的呈现
- Component-level:物理实体在物理硬件环境中的呈现
- Moment:逻辑/物理实体在内存/硬件环境中特定时刻的形态
- Period:逻辑/物理实体在内存/硬件环境中的形态随时间变化
软件形态的质量因素
软件质量(外部取决于内部):
- 外部:正确性、健壮(鲁棒)性、易扩展性、复用性、兼容性、效率、可移植性、易用性、功能性、时效性
- 内部因素:LOC、RUCS(可读、可理解、清晰、大小)
软件构造的5个主要目标:
- 代码容易理解
- 易用,开发便宜
- 低复杂度,易扩展
- 健壮性、正确性
- 效率
软件测试与测试优先编程
残留缺陷率:每1000行中bug的数目(1~10,0.1 ~ 1,0.01 ~0.1)
测试的主要目的:测试出错误
测试的层面:单元测试、集成测试、系统测试
改完之后再测试:回归测试
测试
测试用例:输入+执行条件+期望结果(assertEquals)
测试有限编程:先写spec再写测试再写代码
覆盖:路径覆盖>分支覆盖>语句覆盖
软件构建的过程与工具
软件生命周期与配置管理
生命周期:SDLC:重点:软件设计→编码→测试
2种基本模型
模型:瀑布模型、增量模型、原型模型、V字模型、螺旋模型
敏捷开发:敏捷=增量+迭代
软件配置管理(SCM)
SCM:追踪和控制软件的变化
软件配置项(SCI):软件中发生变化的基本单元(多为文件)
基线(baseline):稳定的版本
配置管理数据库(CMOB):变化的信息
版本控制管理(VCS)
Github
Github: