传统的系统开发生命周期方法(SDLC,Software Development Life Cycle)
也称为瀑布模型(Waterfall Model),适用于当一个项目的需求稳定、定义准确,而且能忍受较长的开发周期的情况。
各个阶段 | 总体描述 |
---|---|
1.可行性研究 | 初步业务需求,业务案例、技术、经济、社会可行性,备选方案,投资回报 |
2. 需求定义 | 用户积极参与。功能性需求和非功能性需求。定义安全需求(CIA,机密性、完整性、可用性),定义审计轨迹需求。确定是采购软件还是定制开发。 |
3A. 购买系统 | 用户要参与软件的评估选择过程。准备需求建议书(RFP),要考虑供应商的财务能力,与供应商签订软件源代码第三方保全协议(Escrow)。 |
3B. 系统设计 | 系统规格说明,系统功能实现,接口设计,程序和数据库设计,安全计划。用户过多参与不合适,但设计人员可向用户解释软件架构如何满足需求。 |
4A. 系统配置 | 系统参数配置,与已有系统的接口开发联调。 |
4B. 系统开发 | 程序编码,调试与测试 |
5. 部署和实施 | UAT测试之后进行,用户培训,数据转换,系统迁移,系统切换 |
6.实施后评估 | 评后估系统的充分性,评价成本成本效益和投资回报,吸取经验教训,为后续的开发项目提供改进建议 |
实体关系图(ERD, Entity Relationship Diagrams)
描述系统数据及数据之间的交互,用于表达逻辑数据模型
软件基线管理(Baseline)
编程标准
集成开发环境(IDE, Integrated Development Environment)
编程调试
- 逻辑路径监测(Logic Path Monitor): 一系列事件的报告,提供逻辑错误的线索。
- 内存转储(Memory Dumps): 用于系统崩溃时, 将内存中的数据转储保存在转储文件中,供给有关人员进行排错分析。
- 输出分析(Output Analysis):通过比较实际的输出结果与预期结果检查系统的精确性。
测试模型-V模型
软件测试方法
自底向上(Bottom-up)从底层的单元测试开始 | 自顶向下(Top-down)从顶层的系统测试开始 |
---|---|
1.无需安装驱动程序 2.在所有程序完成前就可以开始测试 3. 对关键模块的错误可以较早发现 | 1. 可较早对主要功能和处理流程进行测试 2. 接口错误可以较早的测试出来 3. 编程人员与用户看到整个系统,增强信心 |
基本测试分类
- 单元测试:对程序模块内部进行测试
- 集成测试/接口测试: 测试多个模块之间的连接,验证整个系统的功能
- 系统测试:将软件作为整个计算机系统的一部分,与硬件、外设、其他系统、数据等结合在一起进行测试
- 最终接受测试
用户接受测试(UAT):用户进行验收测试,确保用户要求的功能得到实现
质量保证测试(QAT):质量保证人员进行测试,对软件的可迁移性、兼容性、可维护性、错误的恢复功能进行技术性确认
集成测试工具(ITF,Integrated Test Facilities)
测试数据输入到生产环境系统中运行,验证新系统在真实环境下的运行状况。要做好测试数据的标识工作,避免与生产数据的混淆。
其他测试类型
- α测试(Alpha Testing):一个用户在开发环境下的测试,用于评价系统的FURPS(功能、可使用性、可靠性、性能、支持服务)。
- β测试(Beta Testing):多个用户在实际使用环境下进行的测试,开发者通常不在测试现场,目标是测试可支持性
- 模拟测试:对系统的某些特定或预定义的内容进行预备性的测试。
- 白盒测试:测试软件系统的所有内部逻辑流程和路径,证实操作符合设计要求。
- 黑盒测试:根据软件功能进行测试,不考虑系统内部逻辑结构和内部特性,检查软件是否符合功能说明。
- 功能/确认测试:
- 回归测试:
- 平行测试:
- 社交性测试:
系统切换技术
- 并行切换/平行切换:
- 分阶段切换:
- 快速切换/一次性切换: