软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试技术>>其他相关>>正文
《软件测试艺术》读书笔记(7)_心理学视角解析(下)
文章出处:blog 作者:soliya 发布时间:2006-10-16
接着,来谈谈程序员方面会产生的错误认识吧!这个方面可能在具体实践中显的更重要。
 
由于作者在开篇就先把三个错误认识给摆到读者的眼前;然后就立马表明了其正确的定义,并给予了分析和对错误认识的驳斥。洋洒洒的写了许多,条理上未免会有些混乱。因此,我就按照自己理解的来小结一下吧!
 
首先,测试的正确定义是:测试是为发现错误而执行程序的过程。该定义暗示了两层含义:
  • 软件测试是一个破坏性的过程,甚至是一个“施虐”的过程。(就自己的亲身经历而言,大部分的开发人员在测试期间,对测试人员或多或少都会暂时产生一点厌烦或恐惧的心态。主要是会让开发人员的代码改的面目全非的,且这个过程是反反复复的。)
  • 对于一个特定的程序,应该如何设计测试用例(测试数据)、哪些人应该而哪些人又不应该执行测试。(这是有关测试人员构成的问题。就自己的亲身经历而言,这一点很重要,因为测试人员的态度要比测试的过程更为重要。)
然后,明确测试的正确含义后,探究了一下现今面临的三个错误认识并逐一给予了充分的驳斥。
  • 软件测试就是证明软件不存在错误的过程”。
    1. 若目的仅是为了证明程序中不存在错误,就会在潜意识中倾向于实现这个目标;即,会倾向于选择可能较少导致程序失效的测试数据;若目标在于证明程序中存在错误,设计的测试数据就有可能更多地发现问题。后者肯定比前者会更多地增加程序的价值。
    2. 心理上,对于证明不存在是一个不可能完成的任务,无论该工程多么小;但若是一个寻找错误的任务,是可以完成的。就心理承受而言,也是更容易接受的。
       
  • 软件测试的目的在于证明软件能够正确完成其预订的功能。”
    1. 心态上,不要本着只是为了证明程序能够正确运行而去测试程序,而应该一开始就假设程序中隐藏着错误(这种假设对于几乎所有的程序都成立)。这样测试程序时,才能够发现尽可能多的错误。
    2. 要清楚这样一个道理:每当测试一个程序,实质上是想为其增加一些价值。通过测试来增加程序的价值,及是指测试提高了程序的可靠性或质量。而提高了程序的可靠性,就是指找出并最终修改了程序的错误。
       
  • 软件测试就是建立一个‘软件做了其应该做的’信心的过程。”
    1. 错误认识的关键在于:程序即使能够完成预定的功能,也仍然可能隐藏错误。即,当程序没有实现预期功能时,错误是清晰地显现出来的。但如果程序做了其不应该做的,这同样也是一个错误。
    2. 而后一方面一般都会人为的想当然,认为系统不会做那些事情的。但不通过实践去证明,一切都是不可预计到的。
总体而言,软件测试更适宜用来作为一个试图发现程序中错误(假设其存在)的破坏性的过程。一个成功的测试用例,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。当然,最终还要通过软件测试来建立某种程度的信心;软件做了其应该作的,未做其不应该作的。通过对错误的不断研究是实现这个目的的最佳途径。
 
需要明确的一点是,针对有人可能会声称“本人的程序完美无缺(不存在错误)”的这种情况而言,建立起信心的最好办法就是尽量去反驳他,即努力发现不完美指出,而不只是确认程序在某些输入情况下能够正确地工作。
 
文尾,我想到了高尔基先生在《海燕》里边的一句话:让暴风雨来的更猛烈些吧!不妨,让测试变的更加疯狂一些吧!


原始连接:http://soliya9902.spaces.live.com/Blog/cns!4CBD7F2284BC0EA!419.entry
 

站内搜索
相关文章
◎《软件测试艺术》读书笔记(6)_心理学视角解析(中)
◎《软件测试艺术》读书笔记(5)_心理学视角解析(上)
◎如何准备软件工程师的面试
◎《软件测试艺术》读书笔记(4)_初次探究
◎测试职业发展生涯
◎《软件测试艺术》读书笔记(3)_一次自我检测
◎《软件测试艺术》读书笔记(2)_前言
◎《软件测试艺术》读书笔记(1)_引子
◎软件测试的艺术
◎有感于软件测试常识
◎软件测试工程师为何而生?
◎软件测试常见问题——(三)测试流程常见问题
◎软件测试常见问题——(二)测试管理常见问题
◎软件测试常见问题——(一)基础知识部分
◎从程序员到技术领导者
◎面向对象的软件测试与传统测试的比较
◎测试部门经理工作感受(三)
◎测试部门经理工作感受(二)
◎测试部门经理工作感受(一)
◎关于测试的个人总结
◎从微软的今天看软件测试的明天
◎软件测试职业规划(一)
◎用别的眼光去感悟软件测试
◎软件测试与三十六计
◎C++TEST所支持的平台
◎软件测试的前途(一)
◎何时应进行自动化测试?4(原创文章【翻译】)
◎软件测试自动化神话和事实
◎何时应进行自动化测试?3(原创文章【翻译】)
◎给事业刚起步者的九个忠告
◎嵌入式软件测试的十大秘诀
◎何时应进行自动化测试?2(原创文章【翻译】)
◎详解如何选择软件测试职业培训机构
◎何时应进行自动化测试?1(原创文章【翻译】)
◎基于模块化设计的嵌入式软件测试方法
◎基于PB环境下的软件测试
◎用Visual Basic 6.0实现自动化测试
◎主流软件测试工具介绍
◎软件测试人员提高测试效率与测试质量的六大非技术措施
◎新人如何开始QA/测试生涯
◎怎样成为一个合格的测试工程师
◎项目测试经验总结
◎微软的测试方法
◎从程序员到软件测试工程师
◎软件测试工程师的工作总结
◎企业内部实现软件测试自动化的方案探讨
◎软件测试的十大原则
◎出色管理者的十大思想和行为特征
◎软件界面的美观性及软件的易用性方面
◎系统测试过程中应注意的问题
热门文章
◎软件测试工程师面试问题选登
◎一个初级测试工程师的工作总结
◎软件测试常用术语表
◎测试人员面试三步曲
◎DOS命令大全
◎什么样的测试人员是好的测试人员
◎软件测试基本方法
◎好的测试工程师应具备的素质
◎软件测试入门书籍(2)
◎我在软件公司成长的三年
◎面试官最爱问的问题背后真相
◎软件测试工程师面试题
◎应届毕业生少走弯路的十条忠告
◎有关软件测试的术语定义集锦
◎微软的软件测试方法(一)
◎我的测试经历(1)
◎全景记录:软件测试工程师的一天
◎软件测试步骤
◎谈谈对测试职业的看法
◎漫谈软件测试工程师的角色定位
◎测试需要掌握什么
◎软件测试员自身素质培养
◎测试小技巧集锦之一黑盒测试
◎近10年最强的50本计算机图书,您读过几本?
◎软件测试人员职业发展助手
◎测试要点总结
◎如何制定成功的测试计划
◎测试的主要评测方法(1)
◎什么是ERP,通俗版解释
◎测试经验交流
◎软件测试及其支持工具
◎编写优秀Bug报告的艺术
◎软件产品测试标准
◎从程序员到测试工程师
◎微软的软件测试方法(二)
◎软件测试应遵循的八条原则
◎测试版本大全
◎我的测试经历(2)
◎测试人员的挑战
◎网管和黑客都必须知道的命令
◎QA活动的理解与实施
◎Alpha和Beta测试简介
◎网络最经典命令行
◎想编写出优秀技术文档,先学学这四招
◎个人职业生涯规划发展
◎你适合做测试吗?
◎软件测试的误区
◎我的测试经历(3)
◎软件测试的心理学问题
◎软件测试组织与方法

Google提供的广告