zoukankan      html  css  js  c++  java
  • 软件测试理论

    一、软件质量模型

      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

        ③提交缺陷报告

        ④提交测试报告

    八、测试类型

      1、功能性测试:关注功能是否实现

        ①需求要求的功能有没有正确实现

        ②需求要求的功能少做了

        ③需求要求的功能多做了

      2、可用性测试:关注软件是否好用

        易理解性、易学性、易操作性、吸引性

      3、可靠性测试:关注软件在特定条件下能否正常可靠运行

        ①成熟度:软件会不会因外部原因经常崩溃、长时间工作能否保持正常

        ②容错性:软件因内外部原因,自行处理错误的能力

        ③可恢复性:针对数据的恢复,如:断点续传

      4、兼容性测试:关注软件在不同的软硬件下的适应能力

        不同软件的适应性:

          ⑴不同的操作系统

          ⑵不同的浏览器

          ⑶不同产品厂商

          ⑷不同分辨率

          ⑸不同屏幕尺寸

      5、安全性测试: 关注用户信息、与账户资金相关的功能点是否安全

        SQL注入、口令认证、加解密技术、权限管理、安全日志

      6、性能测试:关注性能好不好

        ①时间特征:响应时间、TPS:每秒事务数、吞吐率:I/O

        ②资源利用率:内存、cpu、硬盘

        ③并发用户数:一起操作的用户数量,找到最佳并发用户性

        ④压力测试:多用户同时操作,长时间高负荷运行

    九、测试手段:

      1、手工测试

        优点:①不可替代  ②能发现更多的BUG  ③容易积累项目经验

      2、自动化测试

        优点:①执行效率高  ②高效的验证是否存在BUG(冒烟测试、回归测试)

        缺点:①不能发现更多的BUG  ②GUI依赖性强  ③编码耗费的时间长

      3、静态测试

        不运行被测对象进行的测试:①文档测试  ②代码测试

      4、动态测试

        运行被测对象进行的测试

    十、测试方法

      1、白盒测试

      2、灰盒测试

      3、黑盒测试

        黑盒测试方法:即测试用例设计方法

        宗旨:用最少的用例发现尽可能多的BUG

        测试用例设计方法(7种):

          

           

           

           流程分析法:针对每条路径设计1个测试用例即可

           

      4、回归测试:为验证软件缺陷是否被修复而做的测试

        何时:开发修复缺陷,针对新的版本冒烟测试通过之后

        怎么做:

        手段:手工测试、自动化测试

        方法:

          ①完全重复法

          ②选择性重复法:覆盖修改法;周边影响法;指标达成法

        流程:

          ①制定回归测试的策略,分析需要做回归测试的功能点 

          ②确定测试的版本

          ③确定回归测试的用例

          ④执行测试用例

      5、冒烟测试:为验证软件的可测性,针对核心功能/新增功能而进行的测试

        可测性:有没有测试的必要,如测试不通过,返回给开发;如通过,进行下一步测试

        何时:系统集成之后,开发每次提版,都需要首先进行冒烟测试

        怎么做:针对核心功能/新增功能,随机选取1-2条用例进行测试

      6、本地化测试:额外需要关注当地的风俗习惯

      7、国际化测试:关注国际化软件的界面、语言、数据格式、字符处理、时区

      8、随机测试:产品上线之前,随机选取核心功能、使用频率高的功能、缺陷集中的功能及相关功能用例进行测试

      9、monkey测试:针对安卓系统或安卓应用的一种随机可靠性测试

        模仿猴子的行为,随机进行一些操作(点击、滑动、返回),验证软件是否奔溃

      10、探索性测试(ET):产品上线之前,不依赖用例,凭经验进行测试

  • 相关阅读:
    Facelets应用程序的生命周期
    JavaServer Faces生命周期概述
    spring security使用自定义登录界面后,不能返回到之前的请求界面的问题
    记一次使用mybatis进行like 模糊查询遇到的问题
    用Filter作用户授权的例子
    p132代码解析
    xml
    java EE第一周博客
    spring security的简单应用
    Java包装类,以及Integer与int之间的比较
  • 原文地址:https://www.cnblogs.com/badbadboyyx/p/12141778.html
Copyright © 2011-2022 走看看