从CT技术想到的软件测试
作者:网络转载 发布时间:[ 2012/2/1 10:47:44 ] 推荐标签:
这好像如果计算机只是用来算数字,比如传统的计算器,那么它起到的作用只是加快速度,提高效率。理论上来讲在这种情况下还是可以手动来做的,只是时间可能长得无法接受。但是如果它用来做视频的解码和播放,那有质的变化了,这个时候已经完全无法用手工来做了。
我想对于我们的测试手段也是一样,有些模拟用户操作的手工测试可以被自动化,但是有时也可以退回来手工,但是有些测试,比如性能测试,压力测试以及fuzzing test等则很难不借助必要的工具来完成。更进一步,前面的手工测试一旦可以自动化以后,也会带来质的变化,因为我们可以在每次稍大的改动之后把所有的自动化用例完整的跑一遍,但是如果是手工的,这样做起来不太现实。
对比医学检查,目前的软件测试显然还没有达到这样的程度,粗浅的想了一下,可能有下面的一些原因:
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等检测手段的价值和技术含量吗?
手工的测试是有价值的,但是个人的观点,我觉得测试作为一个专业领域,方向还是应该逐渐的把一些通用的技术和方法通过工具和系统的方式固化下来,依靠先进的技术,变成可以更便利和更大范围收益的东西,而更有经验的人,去改进现有的东西,或者再去探索新的技术和方法。
嗯,后想提醒自己和大家要多喝水,多注意身体!

sales@spasvo.com