2006年05月30日 13:07:00

软件测试的众多方法是辩证统一的,它们相互依赖而存在,相互对立又相互补充,任何一种测试方法都有其优点,在特定的测试领域能得到充分发挥。同时,任何一种测试方法都不能覆盖所有测试的需求,在某些场合存在一定的局限性和不足。这种测试的辩证统一,从下面这些相对应的测试方法就得到很好的印证。

l 白盒测试方法和黑盒测试方法

l 静态测试 (static test) 和 动态测试( Dynamic test)

l 手工测试(Manual test)和自动化测试(Automated Test)

l 有计划测试(Planned Test)和随机测试(Ad-hoc test 或Random test)

l 新功能测试(new feature test)和回归测试 (Regression testing)

1. 白盒测试方法和黑盒测试方法

黑盒测试方法,不考虑程序内部结构和内部特性,而是从用户观点出发,针对程序接口和用户界面进行测试,根据产品应该实现的实际功能和已经定义好的产品规格,来验证产品所应该具有的功能是否实现,是否满足用户的要求。

所以,黑盒测试方法技术相对要求低,方法简单有效,可以整体测试系统的行为,可以从头到尾(end-to-end)进行数据完整性测试。黑盒测试方法适合系统的功能测试、易用性测试,也适合和用户共同进行验收测试、软件确认测试。黑盒测试方法不适合单元测试、集成测试,而且测试结果的覆盖度不容易度量,其测试的潜在风险比较高。

由于白盒测试方法,已知产品的内部工作过程,针对性很强,可以对程序每一行语句、每一个条件或分支进行测试,测试效率比较高,而且可以清楚已测试的覆盖程度。如果时间足够多,可以保证所有的语句和条件得到测试,测试的覆盖程度达到很高。白盒测试方法所以适合单元测试、集成测试,而不适合系统测试。白盒测试方法准备的时间很长,如果要覆盖全部程序语句、分支的测试,一般花费比编程更长的时间。

白盒测试方法所要求的技术也较高,相应的测试成本要大。对于一个应用的系统,程序的路径数可能是一个天文数字,即使借助一些测试工具,白盒测试法也不可能进行穷举测试,企图遍历所有的路径往往是做不到的。即使,穷举路径测试,也不能查出程序违反了设计规范的地方,不能发现程序中已实现但不是用户所需要的功能,可能发现不了一些与数据相关的错误或用户操作行为的缺陷。所以白盒测试方法也存在一定的局限性。

2. 静态测试和动态测试

静态测试是通过对软件的程序源代码和各类文档或中间产品(产品规格说明书、技术设计文档),采用走查、同行评审、会审等方法来查找错误或收集所需要的度量数据,而不需要运行程序,所以相对动态测试,可以更早地进行。

静态分析的查错和分析功能是其他方法所不能替代的,静态分析能发现文档中问题(也只能通过静态测试实现),通过文档中问题或其他软件评审方法来发现需求分析、软件设计等问题,而且能有效地检查代码是否具有可读性、可维护性,是否遵守编程规范,包括代码风格、变量/对象/类的命名、注释行等。静态测试已被当做一种自动化的、主要的代码校验方法。

动态测试是通过观察程序运行时所表现出来的状态、行为等发现软件缺陷,包括在程序运行时,通过有效的测试用例(对应的输入 / 输出关系)来分析被测程序的运行情况、或进行跟踪对比,发现程序所表现的行为与设计规格或客户需求不一致的问题。

动态测试是一种经常运用的测试方法,无论在单元测试、集成测试中,还是在系统测试、验收测试中,都是一种有效的测试方法。但动态测试不能发现文档问题,必须等待程序代码完成后进行,发现问题相对迟得多,一旦发现问题,必须重新设计、重新编码,必然增大不良质量的成本。

>待续<

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=763181

测试方法的辩证统一 (1)相关推荐

  1. 【带宽】Hz与bps的辩证统一

    带宽 是计算机世界中的高频词汇,一会在计算机组成中遇到,一会又在通信中遇到,直到某一天突然发现[带宽]一次脚踏两只船?在计算机组成和通讯中表示不同的含义? 原来: 在模拟信号系统,是指在固定的时间可传 ...

  2. [转]软件测试演义——中高级系列(序)

    [转]软件测试演义--中高级系列(序) 2015-06-11 转自:软件测试演义--中高级系列(序) 目前,软件测试团队主要集中在大型外资企业,国内软件测试水平还处在发展阶段,人们对测试理解不够全面. ...

  3. 《软件质量保证和管理》电子课件下载

    <软件质量保证和管理>        电子课件业已完成,可去"Kerry Zhu CSDN下载频道" 下载: <软件质量保证和管理>电子课件之一  < ...

  4. 第8回 测试的三维空间

    软件测试是一个过程,是哲学思想在软件工程中的运用,更是质量目标的扩展和延伸.软件测试构成了具有丰富内容的三维空间.   1. 测试目标- 质量特性的验证 正确性测试 (Correctness test ...

  5. 迟到的感谢——2006最有价值博客的候选人( 个人回顾)

    感谢 CSDN编辑的特别推荐,使我荣幸成为2006最有价值博客的候选人,也感谢朋友们的厚爱和支持,使我暂时领先,在此鞠一躬,向大家表示衷心的感谢! 我进入CSDN博客比较迟,时值2006年5月,也纯属 ...

  6. 论中国传统辩证推理科学理论范式(ZZ)

    摘要:西方科学的形式逻辑以一系列相互独立的公理.设定.经验模型等为大前提,以不矛盾的逻辑为推理手段,构建其系统的科学理论,决定了其理论体系下的世界是众多不连续的带状.绳索状或网状结构的共存体,而不可能 ...

  7. 计算机专业历史与逻辑的统一,历史与逻辑的统一关系

    辩证思维的基本方法 (一)思维方法的本质及其在认识中的作用 1.思维方法的本质. (1)哲学上所研究的思维方法就是指理论思维方法,是以揭示事物的本质和规律为目的的正确进行理性认识的方法. (2)思维方 ...

  8. 20172303 2018-2019-1《程序设计与数据结构》课程总结

    20172303 2018-2019-1<程序设计与数据结构>课程总结 课程:<程序设计与数据结构> 班级: 1723班 姓名: 范雯琪 学号:20172303 教师:王志强 ...

  9. Spring 3.x企业应用开发实战

    Java技术大系 Spring 3.x企业应用开发实战 陈雄华    林开雄      著 Publishing House ofElectronics Industry 北京·  BEIJING 内 ...

最新文章

  1. Ostinato 发包
  2. oracle之单行函数之分组函数
  3. sql 逐行更新_sql优化面试题
  4. 实时帧数手机_RTX 3080 有多大升级必要?绝地求生帧数实测-RTX 3080 ——快科技(驱动之家旗下媒体)-...
  5. 函数加正则实现简单计算器
  6. 单个字段中根据条件剔除数据
  7. onfling滑动界面进行Activity切换
  8. jsp包含html有乱码,jsp include包含html页面产生的乱码问题
  9. Java对象转Map
  10. Oracle语句(持续更新)
  11. Linux下python环境搭建
  12. FTDI的LibMPSSE编译流程
  13. 扩充计算机内存是扩充什么,怎样扩大电脑内存 电脑扩大内存方法【图文】
  14. DynamoDB初体验
  15. Java成员方法getinfo_成员方法
  16. vue-admin-template配置语言包
  17. 自动控制原理->一些内容的概括了解
  18. 为什么要用色彩色差仪?色彩色差仪有哪些应用?
  19. 怎样把java降至7_JDK1.8降到1.7技巧
  20. FPGA+ARM异核架构,基于米尔MYC-JX8MMA7核心板的全自动血细胞分析仪

热门文章

  1. jieba:一款为中文分词而生的Python库
  2. 华为手机像素密度排行_华为手机也分三六九等,3款几乎“0差评”,支持5G价格良心...
  3. Flash开启自动运行指引(转载自QQ空间)
  4. linux 红帽 服务dns,Linux小红帽搭建dns服务器
  5. 红帽8搭建httpd
  6. html窗口缩小后版面乱版,为何我写好的页面改变窗口大小后布局就乱了?
  7. 购买Arndale Octa 5420开发板
  8. Java学习:IO流篇(多种流的总结)
  9. 洛谷P2403 [SDOI2010]所驼门王的宝藏
  10. 前台传入数据,在后台servelet中接收的,强硬解决乱码格式