zoukankan      html  css  js  c++  java
  • 软件测试概述、结构化测试

    一、软件测试的目的
    是在最小的成本和最短的时间内,通过设计良好的测试规程和测试用例,系统地发现不同类别的错误。
     
    二、软件测试的基本原则
    设计好的测试用例、不可能进行穷举测试、尽早开展测试、重点测试、定期进行检验与修正测试用例,并增加新的测试用例、测试依赖于系统环境、测试用例应该包含合理和不合理的输入条件。
     
    测试过程模型
    V模型特点:1、对应瀑布模型的变种(自下到上)线性关系
                         2、有局限性,在于不能体现“尽早地和不断地进行软件测试”的原则
                         3、仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,容易
                              使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找误,而
                              需求分析阶段、设计阶段隐藏的问题可能一直到后期的相应测试才被发现。
    W模型特点:1、两个”V模型“,开发与测试相结合
                          2、开发与测试保持一种线性的前后关系
    H模型特点:1、可交叉进行
                         2、测试过程是一个独立的过程
     
    三、测试类型
    测试类型可分为:单元测试、集成测试、系统测试、验收测试、回归测试
     
    1、单元测试:主要检测独立的软件单元,为了发现程序级别的错误
                            面向代码设计与结构
     
    2、集成测试:独立的软件单元(模块)组合过程中所进行的测试。
                            面向详细设计文档
         结构化方法下的集成测试策略:BingBang策略、自顶向下策略、自底向上策略
         BingBang策略:所有模块一次性集成为一个整体系统,后对各个模块之间的接口工作进行测试
                        优点:在于测试之间所有的整合工作已经完成
                        缺点:在于整合过程较为费时,且集成过程中若引入新的错误则难以追溯
          自顶向下策略:先测试软件模块结构图最顶端的模块,后集成下一层的模块再进行测试,直到所
                                   有模块全部组合并测试完。
          自底向上策略:先测试软件最底层模块,后集成上一层模块并进行测试,逐步将所有模块组合并
                                    测试完毕。
           面向对象方法下的集成测试:主要有基于线程的策略和基于使用的策略。
           步骤:1)按照设计阶段的说明画出对象图
                      2)开发端口输入事件所驱动的类
                      3)开发与主类直接相关的类
                      4)将与主类直接相关联的类集成
                      5)对新集成的模块进行测试
                      6)从已集成的模块中选一个新类作为下一步的集成类
    3、系统测试:对应于概要设计和需求分析,进行系统测试以确保其功能的正确性,以及在不同运行  
                            环境配置下系统的可用性。
    4、验收测试:是一种以用户为主的测试,由客户判断最终是否在可接受范围之内,软件开发人员和
                            质量保证小组也同时参与。
    5、回归测试:根本目标在于检测新代码的正确运行,并且不影响其他已运行正确的功能
    (集成测试着重测试的是各个模块之间接口运行情况,系统测试是将系统软件作为整个计算机系统的一个元素)
     
    四、测试方法
    测试方法有不同 的标准:1)按是否需要执行被测试软件,软件测试可分为静态测试、动态测试。
                                             2)按是否需要查看代码,软件测试可分为白盒测试、黑盒测试、灰盒测试
                                             3)按测试执行时是否需要人工干预,软件测试可分为自动测试、人工测试
    1、静态测试(代码复查):是在不要执行所测试程序的情况下,对代码、需求分析和设计文档等 进
                                                 行缺陷查找。
                               主要目的:在于尽早发现系统缺陷,提高软件产品的质量。
                               主要特征:表现在不需要实际运行,充分发挥人的思维优势,可能比较耗时耗力,
                                                 对测试人员要求比较高。
    2、动态测试:是通过选择适当的测试用例,实际运行所测试的程序,比较实际运行结果和预期结
                            果,以发现软件中潜在的缺陷。
          主要目的:在于确定软件产品符合实际业务需求,可适用在单元测试、集成测试、系统测试等。
    3、白盒测试:也称为玻璃盒测试、结构化测试等。(需查看代码)
    4、黑盒测试:也称为功能测试、数据驱动测试,是一种从用户观点出发的测试。(不需查看代码)
    5、灰盒测试:介于白盒测试与黑盒测试之间的测试。
    6、手工测试:是完全由人工测试工作,包括测试计划的制定,测试用例的设计和执行,以及测试结    
                            果的检查和分析等。
    7、自动测试:是各种测试活动的管理与实施,是使用自动化测试工具或自动化测试脚本来进行的测
                            试,包括测试脚本的开发与执行等,以某种自动测试工具来验证测试需求。
     
    五、测试用例设计
                                             测试用例=输入+输出+测试环境
    测试用例设计应满足以下标准:1)测试用例的目标清楚
      (从整体而言)                        2)设计思路正确、清晰
                                                       3)在组织和分类上,测试用例层次清楚、结构合理
                                                       4)测试用例覆盖所有测试点、覆盖所有已知用户使用背景
                                                       5)测试手段的区别对待
                                                       6)有充分的负面测试
                                                       7)没有重复、冗余的测试用例
    测试用例设计应满足以下条件:1)测试用例的出发点是发现缺陷
    (从具体的测试用例)              2)测试用例的单一性
                                                       3)符合测试用例设计规范或测试用例模板
                                                       4)描述清楚
                                                       5)操作步骤的准确性
                                                       6)操作步骤的简单性
                                                       7)所期望的测试结果是可验证的
                                                       8)测试环境的正确性、测试数据的充分性
                                                       9)前提条件、依赖性被完全识别出来
    每个核心的输入条件:1)正确数据   2)边界数据     3)错误数据
     
    六、模块内测试
    逻辑覆盖技术是白盒测试中最主要的一种技术,包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
    1、语句覆盖:设计若干个测试用例,运行测试程序,使得每一可执行语句至少执行一次。
    2、判定覆盖:设计若干个测试用例,运行测试程序,使得程序中的每个判断的取真分支和取假分支
                            至少执行一次。(分支覆盖)
    3、条件覆盖:设计若干个测试用例,运行测试程序,使得程序中每个判断的每个条件的可能取值
                            至少执行一次。
    4、判定/条件覆盖:设置若干个测试用例,运行测试程序,使得判定表达式中的每个条件都取到各种
                                    可能的取值,且每个判定表达式也都取到各种可能的结果。
    5、条件组合覆盖:设置若干个测试用例,运行测试程序,使得每个判定的所有可能的条件取值组合
                                   至少执行一次。
     
     
     

  • 相关阅读:
    《全体育·瑜伽》
    PowerDesigner使用教程
    Android基础之——startActivityForResult启动界面并返回数据,上传头像
    数据仓库与数据挖掘的一些基本概念
    php实现求二进制中1的个数(右移、&、int32位)(n = n & (n
    批量发短信的平台浏览总结
    php资源集
    js进阶正则表达式5几个小实例(原样匹配的字符在正则中原样输出)(取反^)
    js进阶正则表达式方括号(方括号作用)(js正则是在双正斜杠之中:/[a-z]/g)
    js进阶正则表达式修饰符(i、g、m)(var reg2=/html/gi)
  • 原文地址:https://www.cnblogs.com/chouqiuqiu/p/8797944.html
Copyright © 2011-2022 走看看