花了一个多星期整理上课使用的ppt,书写不易,请大家多多支持
概述
计算机系统的软件可靠性问题
- 1994年,Intel奔腾芯片缺陷
- 千年虫问题
- ”冲击波“计算机病毒
- 2008年奥运会门票预售叫停
- 系统访问量超8倍
- 票务系统抗压测试
- 性能测试
软件质量
软件质量包括正确性,可靠性,可读性,可移植性和健壮性,主要含义是软件的可靠性
软件可靠性
特定环境下,在给定时间内,无障碍运行的概率
度量
- 软件中初始故障的数量
- 软件经过测试后,通过查错,改错,在软件中剩余故障的数量
- 平均无故障时间
- 故障间隔的时间长度
- 故障发生率
- 经过预测下次故障的发生时间
软件故障
定义
- 从内部看,软件故障是软件产品开发或维护过程中存在的错误,毛病等各种问题
- 从外部看,软件故障是系统所需要实现的某种功能的失效或违背
计算机系统或程序存在任何一种破坏正常运行能力的问题,错误,或者隐藏的功能缺陷等
软件故障导致软件产品在某种程度上不能满足用户的需求
- 硬件故障
物理性能恶化
- 软件故障
设计阶段人为因素造成的 - 操作故障
操作人员和维护人员的错误 - 环境故障
电源,外界干扰,地震,火灾,病毒等各种外界因素引起的故障
错误
人是会犯错的。过失是人犯下的,是人做一件错事或认为产生的一个不正确的结果
故障
故障时错误的结果
失效
故障引起的结果
软件测试与软件可靠性
- 软件中都会有故障存在
- 可以减少故障的引入,但是不可能完全杜绝软件中的故障
软件测试
- 软件需求分析,设计说明和编码的最终复审
- 是软件质量保证的关键步骤
- 是为了发现故障而执行程序的过程
定义:
- 是否满足规定的需求
- 是否有差别
测试是为了发现故障而执行程序的过程
- 谁来执行
- 测试什么
- 什么时候测试
- 怎样进行测试
- 测试停止的标准
- 成功采用了具体的测试用例设计方法
- 每一类覆盖的覆盖率
- 故障检测率
- 检测出故障的具体数量或消耗的具体时间
软件生存周期
- 制定计划
- 需求分析
- 设计
- 程序编码
- 测试
- 运行维护
黑盒测试
不考虑内部结构和内部特性,只根据需求规格说明书,设计测试用例,检查程序的功能是否按照规范说明的规定正确的执行
- 一切实际测试都是不彻底的
测试原则
黑盒测试与白盒测试
黑盒测试
- 等价类划分
- 边界值分析
- 决策表驱动
白盒测试
- 逻辑覆盖
- 数据流测试
- 域测试
- 符号测试
- 路径分析
- 程序变异
- 程序插装技术
软件测试过程
软件开发是自顶向下,软件测试自底向上
单元测试
又称模块测试,针对程序模块来进行正确性检验的测试工作
- 模块接口测试
- 局部数据结构测试
- 路径测试
- 错误处理测试
- 边界测试
静态测试与动态测试
静态测试
不利用计算机运行被测试的程序,通过其他手段达到检测的目的
动态测试
通过运行和使用被测程序,发现软件故障,达到检测目的
回归测试
对程序进行测试已确定是否因修复故障而引入了新的故障
α \alpha α测试
由一个用户在开发环境下进行的测试
目的是平价产品的功能,可使用性,可靠性,性能和支持
β \beta β测试
软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场
α \alpha