对比医学检查,目前的软件测试显然还没有达到这样的程度,粗浅的想了一下,可能有下面的一些原因:
1. 人类身体各器官的构造,即便考虑年龄、种族等因素,其差别也是很小的。
但是软件的差别则很大。不过我在想,对于同一类的软件是不是有一些共性,比如Windows桌面版的应用,一个用来处理大量客户端请求的Linux daemon,一个Android App?
2. 比较容易判断有没有问题
其实和第一条也有一些关系,因为已经有大量的经验值,比如大家看到的体检报告上常会给出某个检测指标的参考值,比如白细胞计数,血压和血糖的正常范围。有了这些数据之后就比较容易判断正常和异常。而对于软件而言,这些相对比较困难,或者说目前目前只能做到一些相对外围的比较粗略的,比如crash,比如 mem leak,或者CPU使用过高等。但是对于内部逻辑是否正确,当前状态是否正常就比较难以判断了。
就目前的状况来看,还需要一些针对性的定制来解决这个问题。
3. 标准的检测手段
CT借助了X光来进行成像。X光是一个很核心的检测方法。
那么对于软件,我们有没有什么比较标准的检测方法?性能测试中有一些标准的指标,对于CPU,内存,网络,文件系统或者进/线程本身,但是这些还不够。
对于很多公司的软件测试部门或者团队,大家常会提到一个问题,就是如何推动开发自测,很多情况下这都是一个比较难的问题。
这是一个提了很久的话题,除了协作和配合以及人的观念的问题,我觉得另外两个方面也值得考虑:
1. 没有标准改进就无法进行。
如果有一套比较针对性的标准的检测方法,其实也是一个改进的指导。
2.如果能有一套简洁高效的测试方法,比如一套稳定高效的自动化测试集,那么推动开发自测就不是一个问题。
- 能高效快速的知道有没有问题,并在失败时给出必要的信息
- 上面这一条做到了,而且自动化程度很高,这个时候就可以把这个作为一个内部的标准,开发人员做出来的东西如果不能pass这些测试,就不需要提交给测试人员做进一步的测试。这样这些验收测试慢慢就不需要测试人员来做了,相当于也提高了提测的门槛。
如果能达到类似的程度,我相信就不会有人质疑测试这项工作本身的价值和技术含量,因为“1979年10月,由于Hounsfield和Cormack在该领域的开拓作用,获得了当年的诺贝尔医学奖”。就好比会有病人或者医生质疑CT和MRI等检测手段的价值和技术含量吗?
手工的测试是有价值的,但是个人的观点,我觉得测试作为一个专业领域,方向还是应该逐渐的把一些通用的技术和方法通过工具和系统的方式固化下来,依靠先进的技术,变成可以更便利和更大范围收益的东西,而更有经验的人,去改进现有的东西,或者再去探索新的技术和方法。
嗯,最后想提醒自己和大家要多喝水,多注意身体!
原文转自:http://blog.csdn.net/superqa/article/details/7216934