- (从产品内部看)软件产品开发或维护过程中存在的错误、毛病等各种问题
- (从产品外部看)系统所需要实现的某种功能的失效或违背
- 表现形式
- (1) 软件没有实现产品规格说明所要求的功能模块
- (2) 软件中出现了产品规格说明指明不应该出现的错误
- (3) 软件实现了产品规格说明没有提到的功能模块
- (4) 软件没有实现虽然产品规格说明没有明确提及但应该实现的目标
- (5) 软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好
- 致命级:系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等
- 严重级:系统主要功能部分丧失,数据库调用错误,用户数据丢失,以及功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启,自动退出,关联程序间调用冲突,安全问题,稳定性,等等
- 一般级:功能没有完全实现但不影响使用,如次要功能丧失、提示信息不准确、用户界面差、操作时间长等
- 建议级:处理测试人员提出对产品特性改进的各种建议或质疑,这类问题不影响操作功能的执行。如界面格式不规范、描述不清楚、提示语丢失、文字排列不整齐、光标位置不正确、用户体验感受不好等。
- 软件包括程序、数据和文档
- 软件测试贯穿于整个软件生命周期中
- 需求分析 ——> 需求规格说明(检查要点:不可修改性、充分性、相似性;完整性不属于)
- 概要设计 ——> 概要设计规格说明
- 详细设计 ——> 详细设计规格说明
- 程序编码 ——> 源程序
- 单元测试(模块测试):对软件中最小可测试单元进行检查
- 集成测试(组装测试)
- 系统测试
- 目的:对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计
- 在系统测试中,测试人员主要根据需求规格说明书设计测试用例
- 验收测试:由用户参加,在开发环境下进行的测试
- 白盒测试(结构性测试 / 逻辑驱动测试):确定测试数据应根据程序的内部逻辑和指定的覆盖标准
- 黑盒测试(功能性测试 / 数据驱动测试):通过分析软件的功能 / 需求来设计测试用例的
- 灰盒测试
- 区分白盒测试和黑盒测试的依据:是否能看到被测试源程序
- 静态测试(代码检查、静态结构分析、代码质量度量)
- 动态测试(输入测试):贯穿于软件产品开发过程及生命周期的每个阶段
- 开发方测试(验证测试 / α测试 / alpha测试):由用户参加,在开发环境下进行的测试
- 用户测试(β测试 / beta测试):用户的使用性测试;在用户的环境下,用户参与的测试
- 第三方测试(独立测试):介于软件开发和用户方之间的测试组织的测试
软件测试是一种评估系统或系统组件的过程,目的是找出是否满足指定的需求。软件测试的目的是发现软件中的错误,以便在软件发布之前修复这些错误
测试应该开始于软件生命周期的早期;
测试应该是独立的;
测试是有风险的行为;
测试应该计划和控制;
测试的目的是发现错误等
测试不能保证软件完全没有错误;
测试只能检查已经实现的功能,不能检查未实现的功能;
测试是一种有风险的行为,需要根据风险进行管理等
瀑布模型、V模型、W模型、H模型、X模型、螺旋模型等
软件测试的重要性在于:它可以帮助我们发现软件中的错误,提高软件的质量,降低软件的风险,提高用户的满意度
软件测试与软件质量的关系:软件测试是评估和提高软件质量的重要手段。通过软件测试,我们可以发现和修复软件中的错误,从而提高软件的质量
需求分析 ——> 编写测试计划 ——> 提取测试需求 ——> 设计测试用例 ——> 执行测试