1软件测试基础知识
1.1软件测试定义
① Hetzel:评价程序和系统的特性或功能,确定是否达到预期结果,是否满足规定的需要;
② Myers:测试是为发现错误而执行程序的过程;
③ 现代:是对软件需求分析、设计、编码最终复查的一系列过程,软件质量保证的关键步骤;
1.2软件测试目的
① 发现缺陷,提高质量;
② 验证是否满足需求;
③ 建立软件质量的信心;
1.3软件测试原则
① 测试显示缺陷的存在;
② 穷尽测试是不可能的;
③ 测试应尽早介入;
④ 缺陷集群性(80-20原则);
⑤ 杀虫剂悖论;
⑥ 测试活动依赖于测试背景
⑦ 不存在缺陷的谬论;
1.4软件测试工作流程
测试计划和控制→测试需求分析和用例设计→实现和执行测试用例→评估出口准则和报告→测试活动结束;
1.5软件测试人员应具备的素质
① 技术能力:编程语言,操作系统,测试理论及计算机网络和数据库等;
② 综合能力:心理抗压能力,沟通能力,精神贯注能力,思考能力、学习能力等;
2全生命周期软件测试基础知识
2.1生命周期的阶段划分
① 需求阶段→②设计阶段→③编码阶段→④测试阶段→⑤集成阶段→⑦维护阶段
2.2生命周期各阶段的测试要求
① 保证软件系统在全生命周期中每个阶段的正确性,验证整个软件开发周期中个阶段的软件质量是否合格;
② 保证最终系统符合用户要求和需求,验证最终交付系统是满足需要和需求的;
③ 用样本测试数据检查系统的行为特性;
④ 在产品交给用户前尽可能多的发现问题并改正;
3软件测试分类与分级基础知识
3.1软件测试分类
1、 按内部结构和具体实现分为:白盒测试、黑盒测试、灰盒测试
2、 按软件开发角度分为:单元测试、集成测试、系统测试、验收测试
3、 按是否执行程序角度分为:静态测试、动态测试
4、 按是否需要人工干预分为:人工测试、自动化测试
5、 按测试实施组织角度分为:来发测试、用户测试(β测试)、第三方测试
3.2基于CSCI的软件测试分类
①、功能测试、②性能测试、③外部接口和人机交互界面测试、④强度测试、⑤余量测试、⑥可靠性测试、⑦安全性测试、⑧恢复性测试、⑨边界测试、⑩功能多余物测试
3.3软件错误测试分级
① 第1级:严重缺陷;
② 第2级:较严重缺陷;
③ 第3级:一般稀缺陷
④ 第4级:较小缺陷;
⑤ 第5级:其他缺陷
4软件缺陷管理基础知识
4.1软件缺陷的定义
软件错误、软件失效和软件故障等使软件无法正常运行使用的错误都成为软件缺陷。
4.2软件缺陷的属性
缺陷标识(Identifier)、缺陷类型 (Type)、缺陷严重程(Severity)、缺陷优先级(Priority)、缺陷状态(Status)、缺陷起源(Origin)、缺陷来源(Source)、缺陷根源(Root Cause)
4.3软件缺陷的分类
① 按缺陷的类型划分(10种)
② 按缺陷的严重程度(urgent-veryhigh-high-medium-low)
③ 按优先级划分(high-middle-low)
④ 按缺陷的起源来源划分(R、A、D、C、T)
⑤ 按缺陷的根源划分
⑥ 按缺陷生命周期划分