zoukankan      html  css  js  c++  java
  • 2.1 软件测试的阶段

    1.1单元测试

       1.1.1概念

        对软件中最小的可测试单元进行验证,侧重于单个模块;例如:c语言中,单元可看做是一个函数,而在java语言中单元则可以是一个类,应根据实际情况进行区分;

       1.1.2单元测试原则

            1.尽可能保证各个用例相互独立;

        2.确保程序中的每一个独立路径都可以执行到;在上下边界及可操作范围内运行所有循环;检查内部数据结构以确保其有效性;应尽可能使用少的数据来覆盖更多的数据;

        3.一般由开发人员来实施,用以检验所开发的代码是否符合设计要求;

       1.1.3单元测试优点

              1. 能尽早发现缺陷,且收益最好;

                  新型的敏捷研发,先编写单元测试用例,再进行代码开发,以保证代码可以通过单元测试的要求;编写用例时可确保对需求的二次理解。

              2. 有利于重构;

              3. 简化集成测试的过程;     

              4. 简化文档;

              5. 提高程序猿的意识;

       1.1.4单元测试的限制

              1. 不可能覆盖所有路径;

              2. 每行代码需要3~5行测试代码来验证,投入精力大;需要在投入和产出间平衡;

       1.1.5单元测试框架

             1. 针对javaJ-Unit

             2. 针对PHP语言:PHP-Unit etc.

    1.2集成测试

       1.2.1概念

            在单元测试的基础上,测试在将几个软件单元按照设计规格书组装成组件、模块、子系统或系统的过程中,各部分工作是否达到或实现相应技术指标及要求的活动。

            模块虽能单独运作,但是有的问题只有在全局上才会体现。组件往往是多个单元的集合。

       1.2.2 集成测试的主要实施方案

    1. big bang(一次性集成):

                将所有的单元一次性组装起来,进行测试;

             2. 自顶向下;

             3. 自底向上:

                 从程序模块的最底层逐级向上测试:组件-子模块-模块-系统。

                 最常用的方法,对已经测试过的下级组装,不必再重复测试。

             4. 核心系统集成:

                 对系统中核心的模块进行集成,再逐步扩大至系统其它功能。

              5. 高频集成;

       目前较为流行的敏捷开发,往往采用上述45结合的方式进行测试。

       传统的瀑布式测试,往往采用上述2或者3的方式进行测试。

        1.2.3 集成测试和单元测试的区别

    测试对象

    测试依据

    测试方法

    单元测试

    软件详细设计

    详细设计文档

    白盒测试:关注软件内部

    集成测试

    软件概要

    概要文档

    黑盒测试为主:关注模块接口

    1.3系统测试

       1.3.1概念

             将经过集成测试的软件,作为计算机系统的一部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效测试,以发现软件潜在的问题,保证系统的正常运行。

             企业当中,如果有专职的测试人员,往往是针对系统测试这个阶段的。

       1.3.2关注点

            1. 功能上,关注系统本身的使用情况;

            2. 关注系统与其他相关系统间的关联性;

            3. 系统在不同使用压力下的情况;

            4. 关注系统在真实环境下的表现;

       1.3.3系统测试和集成测试的区别

    测试角度

    测试内容

    集成测试

    偏于技术角度验证

    各个单元模块间的接口

    系统测试

    偏于业务角度验证

    整个系统的功能和性能

       1.3.4系统测试的类别

             1. 恢复测试:关注软件运行失败的各种条件,并验证其恢复过程能否正常执行。

             2. 安全测试:验证系统内部的保护机制,以防止非法入侵。测试人员扮演入侵者权限以试图突破防线。系统安全设计的准则为:让黑客侵入系统所需的代价更为昂贵。

             3. 压力测试:在正常资源下,使用异常的访问量、频率或数据量来执行系统。可尝试执行以下操作:①输入数据量增加一个量级以观察输入功能的响应;②在虚拟操作系统下,产生大小为最大内存量的数据。

    1.4验收测试

       1.4.1概念

              针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。

       横向步骤:测试计划-测试设计-测试开发-测试执行-测试评估

             测试计划:

       1.4.2分类

             1. 用户验收测试;

             2. 运行验收测试:运维角度;    

             3. α测试:软件公司内部人员模拟用户行为进行操作;

             4. β测试:组织各方面的典型用户在日常工作时使用软件,收集用户异常情况及改进建议。

             5. release版本:正式提交版本;

  • 相关阅读:
    动态规划-神奇的口袋V1
    独立项目-建立Web服务器-00
    连接数据库时出现:SQL Server 建立连接时出现与网络相关的或特定于实例的错误
    独立项目-MemoryStream-内存数据读写-01
    独立项目-场景刷怪、小怪AI、主角战斗、小怪死亡-01
    独立项目-角色控制器FSM-FSM有限状态机-03
    独立项目-角色控制器FSM-AnimatorController学习-02
    独立项目-角色控制器FSM-学习内容-01
    Unity中的UGUI之Rect Transform__02
    矩阵的平移、旋转与缩放
  • 原文地址:https://www.cnblogs.com/May-study/p/7388885.html
Copyright © 2011-2022 走看看