作者:妖二三
我们是QA,我们是摆渡人,我们会帮你上岸,那里阳光万里, 到处鲜花开放!
在一个夜黑风高的夜晚, 我突然萌发了一个想法, 我要写关于测试的东西,知道的不知道的都写,写光光,对!全部写光光!
我要写一个系列。一个很长很长的系列。
从哪里开始呢? 从段子开始, 知道你们喜欢段子。
某程序员: “编译终于通过了!太好啦!!!马上打包release给客户 !”
他TMD还真这么干了。
客户拿到软件后,使用后大为满意,立即送来一面 “技术很Diao”的锦旗,领导一拍桌子,升! 升职!!。工资double, 哦不, double 后再 double.
从此程序员过上幸福的生活。。。
故事讲完了。
第一章, 先从软件测试理论说起。
测试有多重要呢?
在测试界流传着很多恐怖故事,也称为恐怖事故
1. 千年虫的故事,别说你没听过。
2. 米帝国某次航天器发射,居然爆了。
3. 迪士尼的狮子王游戏。(你肯定没玩过,除了开发人员很少有人玩过)
4. 淫特尔的某芯片浮点运算错误导致一周亏钱4亿美刀+
5. 霓虹国前几天的某卫星失踪,据路边社报道,疑似被狂派变形金刚偷走(其实是有个软件Bug:)
6. 恐怖故事六, 请往下看(任务<1>开启,寻找第六个恐怖故事)
以上这些个故事都是经常听说的。
还有很多, 你都听过,只是听到一两个。估计你没感觉,反正和你没一毛钱关系。
我来编一个你没听过的:)
故事是这样的:(注意,是你,请入戏几分钟)
某天, 你去机场,听到广播:
“飞往XXX的XXX号航班旅客们请注意,据最新消息,此次航班的飞机是全新设计,现场组装!0启动! 0航程!幸运的你们是首飞。。bla bla…”
你一看机票,靠!正好是这个航班的机票,
。。。
请闭上眼睛想象一下如上剧情。并默念”飞机首飞, 首飞, 首飞!!!!!” 你大爷的, 都没测试过啊, 啊!啊!啊?
有没有点小感触?有没有突然间有”测试这么重要啊!我以前坐过的飞机是怎么测试的?以前没注意到啊”之类的感觉。
找到点感觉没?就是测试很重要那种感觉。找到就对了
好了,放心,飞机都经过严密的测试和验证,这里只是思想实验,如有雷同,纯属扯淡。
(适当想象即可,别入戏太深)
其实每个产品都是一架飞机,只不过承载的不是人,而是大家梦想。如果轻视测试,如同大家的梦想正在搭乘一架没有测试过的飞机,也许侥幸飞达成功的彼岸,但最有可能会(。。。。。此处悲剧不表)而成为上边第六个恐怖故事,在业界广为流传。。。。( 恭喜 !! 你找到了第六个故事—————–的线索,任务<1> —子任务1达成!,经验UP,… 咋有点递归的赶脚。。。 )
对测试重要性的认识是做好测试的前提,没有这一点,学会火星测试技术都没用。
这时,你要问了,妖先生, 我没明白你说的第六个恐怖故事到底是什么? 人物?,时间?,地点?三围?我只能说,别急。也许世界上就没有第六个恐怖故事,只要你修炼我的妖仙大法,即可趋吉避凶,化险为夷【任务开启: 寻找阻止第六个恐怖事故的秘籍】
我们回到开头的幸福程序员的小故事:
某程序员: 编译通过了啊!太好啦!!!马上打包release给客户 !
来,机智的你发挥你那野狗狂奔般的想象力,想象一下软件给客户后会发生什么 ?
我知道你心里头抱怨开头那个故事是扯淡。其实我也这么认为。(不好意思,没想起来吃药)
我们来看一下,真实情况是咋样的呢? 也许和你想的不一样哦。:))))
是这样的:客户打开软件后
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
‘
Duang!!!!
Oh!No…
现实很残酷!现实就是这样的。
理想能不能高于现实那么一点点?!!
为什么客户看到了一堆恶心的bug. —–因为没有测试。
那测试到底是个什么鬼呢?
好的,我们来看看软件测试的官方定义
xxx.xxx,xxxxxx,xxxxxx,xxxxxxx
请百度,打字累
简单说就是找出小强。
题外话,为什么 叫 Bug,
任务开启三, 学绕口令:
Does not do something that the product specification says it should do
Does something that the product specification says it should not do
Does something that the product specification does not mention
Does not do something that the product specification does not mention but should
Difficult to understand, hard to use, slow, or–in the software tester’s eyes–will be viewed by the end user as just plain not right
【念完十遍, 任务达成!经验 UP, 等级UP, 攻击UP, 闪避UP…】
[什么是bug 解释, 待完成这一段。。。引出需求]
需求是啥?
想到 和 得到 中间还有一个 做到 (插入一个段子,引出软件开发流程)
测试人员眼中的软件项目流程:
1. Boom模式, 测试就是跟班,开发说啥就是啥,开发说怎么测,你就得怎么测.
开发指着一个鹿说: “这个是马”,
测试: “哦, 这个确实是马”
如果你有幸参加的是这样的团队, 那你有两个选择.
1. 你说是马,它就是马. 这样的团队测试地位低下, 没有自主性, 测试工作做得好, 开发说你瞎测, 乱开Bug, 扰乱开发进程. 做得不好, 你就是不好. 产品成功了, 那是开发团队厉害, 产品挂了, 那是测试不给力. 直到项目成功而结束,或者失败而结束,而你将化身为背锅侠,保重!
2. 赶紧准备简历, 外面的世界很精彩的, 外面的世界也很大, 来我这里也行, 憋多了,心理会不健康的! (注意我的联系方式. ezhu@cnexlabs.com,妖先生)
V mode , w model, x mode, y mode, (待写, 一个 一个写完)
Test case 设计, (待写,设计原则和如何设计好的用例,引出到底什么是好的测试?)
。。。
第二章: 装X篇
前面说了那么多, 不少读者向我反映, 文笔流畅, 但略显矫情,甚至浅薄庸俗。。。.
我去, 欺我读书少. 逼迫我装高大上阿?
好的 满足你们的要求,
下面我们把话题拔高一下.
拔多高呢?
拔高到人类思想领域的终极高度 ————-哲学的高度!!
哲学讨论的都是, 我们从那里来,要到那里去的, 上帝存在吗?或者在哪?这样的问题, 够高吧.
只要你够快,你可以到宇宙中任何地方—–甚至之外!!<<三体III>>
类似这种范。
警告! 前方避让, 我要开始装B了!!!!
测试行为就是一个归纳推论和演绎推论的过程,
证伪原则
波普尔同意对偶然真理的界定,但他强调这样的经验科学应该服从一种证伪主义。证伪主义至少存在两个优点。第一,科学理论的表达一般为全称判断,而经验的对象是个别的。所以,经验如果用来证实理论,那么它将是无法穷尽一般的理论的。比如,再多的白羊也不能证明所有的羊都是白的, 而只要一只黑羊就能证明所有的羊都是白的这个理论是错误的。所以,经验的真正意义在于可以证伪科学理论。第二,证伪主义可以避免对错误理论的辩护和教条。如果坚持实证主义,那么一旦出现与理论相悖的经验,人们便会做出特例假设或特殊的限制以使得理论能满足经验。但实际上这样的设定往往是极不科学的。证伪主义使人们相信所有的科学都只是一种猜测和假说,它们不会被最终证实,但却会被随时证伪。
待续。。。