软件测试杂谈

以前一直以为,对于一个软件来说,写代码才是重中之重,也是其中最困难的,而软件测试来说相对简单许多。那时候以为:软件测试不就是输入几个测试数据测试一下不就行了吗。时至今日慢慢了解到,对于一个程序来说,代码的书写其实比较简单,测试过程才是其中的重中之重。因为,不管你是谁。编程技巧有多高,编程经验有多么丰富,在写代码的过程中,总会因为这样那样人为或者天然的原因,总会导致一些不可避免的bug,这时候软件测试的重要性就凸显出来了。

软件测试分为两种:黑盒测试、白盒测试。

“黑盒”法是穷举输入测试(不能看到源码),只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。 
   “白盒”法是穷举路径测试(能够看到程序的源码,顺序结构等),贯穿程序的独立路径数是天文数字,但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。E.W.Dijkstra的一句名言对测试的不彻底性作了很好的注解:“程序测试只能证明错误的存在,但不能证明错误不存在”。

然而,不论是黑盒测试还是白盒测试,由于测试数据的巨大,我们都不可能进行彻底的测试,也就是不可能把一切可能的输入结果均输入一遍来测试软件的稳定性和可承载性,所以,这种类型的“穷举测试”在软件复杂的情况下根本行不通。于是,就有了一些简便测试方法取代了单纯的”穷举测试“,比如等价类等。

时间: 2024-10-28 21:58:17

软件测试杂谈的相关文章

软件测试1_杂谈

1    软件测试的意义在于发现软件的bug,优化软件,避免软件商用后出现严重的问题.每一款软件都存在bug,没有完美的软件,但是必须保证基本的功能重要的功能不能有问题. 一般来说,软件测试要经过三到四轮测试,开发拿到需求实现功能后,都要经过自测,然后有专业的测试人员进行测试.软件测试根据不同的分类, 可以分为: 单元测试,集成测试,系统测试,交付测试等 白盒测试,黑盒测试 性能测试,压力测试 迭代测试   系统测试 风险          测试框架 自动化测试 从心理上讲,测试人员的存在,是对

软件测试修炼之道(转载)

软件测试修炼之道 前言 软件测试发展到今天,已经逐渐形成一门学科,但是还不够系统. 初学者面对铺天盖地的资料应该如何选取?应该从哪里入手?如何迅速的掌握各种业务各项测试技能以便开展工作?在保证测试质量的前提下,一日内编写或执行1000个测试用例是不是梦想? 入行多年者面对复杂的业务逻辑,海量的测试需求,如何在最短的时间内进行测试?如何尽可能更早的开展测试?如何对系统架构进行测试?如何全面提高测试质量与测试效率?如何百尺竿头更进一步? 本文将针对这些问题进行初步解答,主要阐述解决这些问题应该具备哪

性能测试(1)-开篇杂谈

? 自学性能测试很辛苦.所以想趁着我学习的时候,记录下我的一点一滴.等到将来拿出来看的时候,可以有东西来给我回味. 我呢,本来学校出来是做开发的,但是呢,工作难找,谁会要要一个专科而且没有经验大学生来写代码呢?找工作,很不容易,到处受挫折.为了得到那万恶的RMB来买自己心爱的显卡来打游戏,曾经一度去了工地,拿起了大锤.当起了圣骑士(其实就是小民工).嘴里还高喊"大地母亲忽悠着你~",然后猛地一锤子落下,再费力的举起大锤,高喊"为了辛多雷的荣耀~",又是一锤子.我果然

一个软件测试员的工作与学习(三)

续上一篇 http://www.cnblogs.com/fnng/archive/2013/04/13/3017598.html 在开始讲述这一年多的经历的过程之间,我又回顾了之前的经历,以便把比较好的把故事的衔接,需要说明的是,我并没什么高大上的经历来吹牛皮,只是做为一个普普通通的软件测试员,来记录自己的经历而已. 关于学历                                      应该是在入职新公司前报考的自考,学历一直是我的硬伤,所以,就想通过自考的方式来弥补,对于搞技术的

小白福音!零基础入门软件测试,首选必备课程

第1章 课程介绍本章将从软件测试的起源与发展.测试行业的现状及职业生涯规划等整体做介绍. 1-1 课程介绍1-2 软件测试的发展1-3 软件测试的发展与职业规划1-4 软件测试之"独孤九剑"第2章 软件测试工程师必备基础知识本章将讲解软件的概念.软件的生命周期.软件测试方法.软件测试常见模型.软件测试的覆盖率及软件测试规范,一步步带你揭开测试大门. 2-1 软件的十大特性2-2 软件的分类2-3 软件生命周期2-4 软件开发模型2-5 软件开发文档2-6 软件测试方法2-7 生命周期各

软件测试概述

• 不论软件的生产者还是软件的使用者,均生存在竞争的环境中: 软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局. 用户为了保证自己业务的顺利完成,当然希望选用优质的软件. 软件带来错误的原因很多,具体地说,主要有如下几点: • 交流不够.交流上有误解或者根本不进行交流 • 软件复杂性 • 程序设计错误 • 需求变化 • 时间压力 • 代码文档贫乏 • 软件开发工具 什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析.设计规格说明和编码的最终复审

软件测试——Peer Review

一.什么是peer review peer review是一种通过作者的同行来确认缺陷和需要变更区域的检查方法.需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排的进度. 二.背景 这周三老师在课上安排了peer review,每5-6个人一个小组,自己进行分工,并对样例软件进行peer review. 三.peer review的图解及分工 Moderator (主持人) 主持人的主要职责,在评审会前负责正规技术评审计划和会前准备的检查:在评审会中负责调

软件测试不再黑盒— threadingtest带来第二代白盒覆盖率技术

软件测试不再黑盒- threadingtest带来第二代白盒覆盖率技术 穿线测试对于测试界的一个重大创新在于,在白盒测试理论出现数十年以后,上海零一拼装信息技术有限公司结合在测试理论方面十余年的潜心研究,率先提出了第二代覆盖率技术,这绝对不是一个口号,而是ZOA真正对于白盒测试的理解以及对于标准第三方测试服务的深度理解经过数年的基础研究以及2年有余的研发而推出的达到商用标准的技术.现在先让我们温习下经典的测试理论: 1.测试方法论 黑盒功能测试法 黑盒功能测试法, 是把要测试的软件看成一个 "黑

[ 测试思维 ] 探索式软件测试

非常不错的关于探索式软件测试的学习资料 1.探索式测试简析 作者:微软 史亮 http://pan.baidu.com/s/1c2D4tAo 2.探索式测试白皮书 作者:淘宝 季哥 http://pan.baidu.com/s/1qYFNG3y