软件测试理论

一、软件质量模型

1、功能性:功能是否满足用户需求

2、易用性:是否好用

3、可靠性:在指定条件下,软件是否正常运行

4、效率:性能好不好

5、维护性:软件可被修改的能力

6、可移植性:在不同软硬件环境下的适应能力

二、应用:

1、产品型软件:针对大众的软件

  形成文档:PRD (产品需求文档)

2、项目型软件:针对个人或企业的软件

  形成文档:SRS (软件需求规格说明书)

三、软件的生命周期

计划、分析、设计、开发、测试、运维

四、软件测试的目的:通过测试减少软件缺陷,提升产品质量

五、软件测试的时机:最佳介入时机:需求分析阶段

缺陷放大模型:测试介入越早,软件修复的成本越低

六、软件测试阶段:

1、单元测试阶段:

  白盒测试:①静态分析法:看代码流程;②动态分析法:运行代码进行测试

              参考文档:LLD

2、集成测试阶段:灰盒测试

              参考文档:HLD

3、系统测试阶段:

  黑盒测试:①测试类型:功能测试、非功能测试;②方法:测试用例设计方法

              参考文档:PRD/SRS

  衡量指标:需求覆盖率

4、验收测试阶段:(检验产品是否符合要求)

  ①项目型软件:由甲方根据需求进行验收

  ②产品型软件:

    α测试:内测:由开发组织用户到公司进行测试,可随时记录问题,过程可控

    β测试:公测:对外测试,针对选中的特定用户

    γ测试:上线前候选版本的测试

  参考文档:PRD/SRS

十二、软件测试的四大核心过程

      1、分析:测试需求分析,明确测什么

  全面分析需求文档:显性需求、隐形需求

  形成:软件测试需求分析说明书

      2、设计:

  ①计划:明确测试范围、资源配置    形成:测试计划文档

  ②方案:明确怎么测    形成:测试方案文档

      3、实现:测试用例的编写及评审、数据准备、环境搭建、脚本

  形成:测试用例文档 

      4、执行

  ①执行测试用例:验证实际结果是否与预期结果一致

    一致:用例通过;不一致:用例失败:提交缺陷

  ②提交缺陷,跟踪缺陷:

    ⑴缺陷:验证的实际结果与预期结果不一致

    ⑵缺陷的生命周期:

      测试提交缺陷-开发修改缺陷-测试验证缺陷-通过-关闭缺陷/-不通过-返回给开发

    ⑶开发给予的解决方案:

      软件测试理论

    ⑷缺陷的描述:在XX模块下,做了XX操作,产生了XX问题

          5C原则:准确;清晰;简明;完整;一致

    ⑸通过缺陷管理工具来提交:信息一致、有效跟踪缺陷、利于BUG分析

    ⑹缺陷的严重程度:

      ⑴致命:软件崩溃;造成数据丢失

      ⑵严重:单功能或多功能的缺失

      ⑶一般:多余的实现;不太重要功能的缺失

      ⑷提示:提示信息的缺失或错误

    ⑺缺陷的类型:错误、遗漏、多余的实现、可以改进的

    ⑻优先级:根据功能模块的重要性决定

    ⑼缺陷集中现象:找free bug,针对缺陷集中的模块或相关功能模块,更容易找到BUG

  ③提交缺陷报告

  ④提交测试报告