zoukankan      html  css  js  c++  java
  • 软件测试的技术与过程

    现有的软件测试技术通常分为静态测试和动态测试。静态测试是不执行程序代码而寻找程序代码中可能存在的缺陷或评估程序代码的过程。静态测试包括主要由人工进行的代码审查、代码走查、桌面检查以及主要由软件工具自动进行的静态分析。如果广义地理解,静态测试还包括软件需求分析和设计阶段的技术评审。

    动态测试通过在抽样测试数据上运行程序来检验程序的动态行为和运行结果以发现缺陷。动态测试包括生成测试用例、运行程序和验证程序的运行结果3 部分核心内容,以及文档编制、数据管理、操作规程及工具应用等辅助性工作。动态测试最重要的问题是生成测试用例的策略。它是动态测试有效、高效的关键。测试用例包括输入数据和期望结果。一般说到测试用例生成时,由于期望结果构造的困难性,都侧重或仅生成输入数据,并称之为测试数据,下面的讨论即按此约定。

    按照生成测试数据所根据的信息来源,动态测试分为基于规约的测试(又称黑盒测试或功能测试) 、基于程序的测试(又称白盒测试或结构测试) 以及程序与规约相结合的测试。基于规约的测试是指测试人员无须了解程序的内部结构,直接根据程序输入和输出之间的关系或程序的需求规约来确定测试数据,推断测试结果的正确性。基于规约的测试包括:等价类划分、因果图、判定表、边值分析、正交实验设计、状态测试、事务流测试等。基于程序的测试是指测试人员根据程序的内部结构特性和与程序路径相关的数据特性设计测试数据。它包括控制流测试和数据流测试两类主要技术以及域测试、符号执行、程序插装和变异测试等其他技术。程序与规约相结合的测试则综合考虑软件的规范和程序的内部结构来生成测试数据。软件测试的过程分为单元测试、组装测试、确认测试、系统测试等几个阶段。单元测试可以运用白盒测试(控制流、数据流测试) 、黑盒测试(等价类划分、因果图、边值分析) 等多种测试技术。组装测试主要采用黑盒测试中的等价类划分、边值分析,白盒测试中的数据流测试,域测试,调用对覆盖等测试技术。组装测试的策略是指进行单元组装的方法和步骤。组装测试的策略有渐增式组装和非渐增式组装两类,而前者又分为自底向上和自顶向下两种方式。确认测试主要采用黑盒测试中的状态测试、事务流测试等测试技术。

    目前,面向对象的软件开发方法已被人们广泛接受,并且被基于UML (Unified Modeling Language) 的建模工具以及C ++ 、Java 等程序设计语言所支持。与传统的软件开发方法相比,面向对象引入了类、对象、继承等新特征。面向对象中的继承、多态、动态绑定等机制对面向对象软件的测试产生了影响。以传统的软件开发方法为背景发展起来的测试技术,并不能完全适用于面向对象软件的测试。从面向对象软件结构的角度出发,面向对象软件测试可分为类测试、类簇测试和系统测试。其中类测试可分为3 个部分:方法测试、基于状态的测试和基于状态响应的测试。方法测试和系统测试分别与传统的单元测试和确认测试相对应。

    转自《软件测试研究进展》
     
  • 相关阅读:
    定制事件 观察者模式
    定时器的高级运用 优化
    tamper-proof 对象 nonextensible对象 sealed对象 frozen对象
    函数柯理化
    跨域 Ajax 其他可选技术 异步
    Ajax 跨域 异步 CORS
    原样输出html标签
    JavaScript
    css 中name的用途
    iview 按需引入解决加载慢的问题
  • 原文地址:https://www.cnblogs.com/yueyingky/p/4338368.html
Copyright © 2011-2022 走看看