landizlan 2010-11-19
先送给兄弟们陆游的一句诗:纸上得来终觉浅,绝知此事要躬行。参加过高考的人都知道,高考考得好的人,一般是平时动笔写的很多的人,当然反过来不成立,动笔写的多的人就一定考的好。我这里只是强调一个道理就是,大家看了别人的文章,一定要自己上手试试,这样才能掌握的牢靠。千万不要以为自己看懂了,其实看懂了和你自己能写出来是两个层次的东西,不信可以试试看。这是个朴素的方法论问题。
----------------------------------------------------------------------------------------------------------------------------------
def:按照习惯先给出软件测试的定义:比较学理派的解释就是通过一个过程或者一系列过程来验证计算机代码执行了其应该完成的功能,并且不执行它不应该完成的功能。说的通俗点就是你用什么方法来证明这个程序是合乎要求的。
按照我的理解测试是分两个层次的,这两个层次面向的对象不同。第一个层次面向的是开发人员,你进行测试的目的就是用力的找出证据来证明某个程序是有缺陷的。第二个层次是面向客户,这里所做的测试就是为了向客户证明这个程序是完美地合乎要求的。所以在做测试的时候一定先搞清楚测试过程面向的对象是谁,方向一定要对。不要最后把开发人员惹了,把客户搞飞了。所以我对我项目组里的人员开会的时候一再强调,分清楚我们的客户是什么人,他们想要什么,千万不能辛苦的干了以后发现虽然自己的良心过去了,别人受不了。
======================================================================= 先介绍一个测试公理:完全地测试一个复杂的,实际运行的程序是不可能的,我们所能做的就是无限逼近。
举个简单的例子,一个程序可以通过给定三个数值,来判断这三个数值能否组成不规则、等腰、等边三角形【1】。
即这样的一个函数void judgetriangle(int x,int y,int z),给出判断。
我们在测试的时候首先会考虑它的用例集,这里可以至少写出10种不同的用例。比如有效的不规则三角形用例,无效的三角形用例等。由此我们可以推出复杂的程序是不可能完全进行测试的。
基于上面的公理,我们在实际项目的测试中,尽量避免让测试人员进行过多的测试,毕竟测试人员也是人,长时间地重复劳动会对测试的结果产生不良的影响,所以我给测试负责人的建议是,尽量减少人我们的测试人员加班作业,对测试的结果不利而且还浪费大家的资源和时间。不过看我接触的企业里的测试人员大都比较不淡定,饭桌上各种埋怨,从开发人员到项目经理。
=========================================================================
【1】软件测试的艺术Glenford J.Myers
to be Continued