軟體自動化測試工具的歷史演進

spasvo發表於2020-06-23

軟體測試最早可以追溯到1958年的美國第一個載人航天計劃-水星計劃,當時在該計劃中首次誕生了軟體測試團隊。當然,在此之前也肯定是有軟體測試存在的,但遠沒有這次有了自己的江湖地位。但這也僅僅是軟體測試的萌芽,遠沒有到開宗立派的地步。因為你想想這時候軟體也只是萌芽階段,各種軟體的理論,標準都還沒有誕生,所以更別提軟體測試了,因此很長一段時間內,軟體測試時間內是沒有什麼發展的。
時間到了1975年,這一年,軟體行業的一個超級豪門誕生了-微軟。我不知道微軟是不是第一家純軟體開發的公司,但微軟確實使軟體開發得到了快速的發展。也是從那時候起,美國的軟體行業一騎絕塵。隨著軟體行業的蓬勃發展,軟體的規模越來越大,複雜度也越來越高,隨著而來的是軟體的質量被逐漸的關注起來,軟體測試的理論逐漸得到積累。到了1979年,梅爾斯出版了軟體測試第一版本著作《軟體測試的藝術》這本書,第一次明確的給出了軟體測試的定義“The process of executing a program or system with the intent of finding errors”,至此軟體測試算是正式的開宗立派, 有了自己的江湖地位。個人認為現代測試的開端應該就由此開始。推薦大家都去讀一讀這本書,不一定能學到多少新東西,但是就憑它的江湖地位就足以讓大家去瞻仰一下了。
軟體測試的開宗立派,蓬勃的發展也給軟體自動化測試提供了豐富的土壤。江湖一直有著這麼一句名言“天下武功,唯快不破",而如何快呢,程式比人快,自然而然的想到了讓程式測試程式。1985年這一年,一款叫AutoTester的測試工具出現了,當然那時候還是Dos系統。早期的測試工具的功能和效用確實因為太過於久遠而不可考,但這種萌芽的開端卻給後來自動化測試以及測試工具的豐富打下了好的基礎。
自動化測試工具發展程式
在1989年,一家叫Mercury Interactive的公司在美國的加利福尼亞州成立,同年這家公司釋出一款工具-LoadRunner, 是的,就是那款你知道的工具(有不知道的嗎?)。都說一入江湖歲月催,長江後浪推前浪,但這確實一款始終沒有被拍死在沙灘上的前浪,至今仍是一款舉足輕重的效能測試解決方案。正如江湖中的屠龍刀,倚天不出,誰與爭鋒!所以,軟體測試自動化是從效能測試開始的,當然這也是必然,功能測試自動化並不像效能測試自動化那麼急迫,那麼不可替代。時至今日,效能測試這一武林祕技依然是軟體測試江湖的高階貨。
隨著軟體行業的發展,特別是IEEE標準的完善,CMM模型,V模型,Rational模型的誕生,軟體測試也被提到了一個比較高的地位上。軟體測試的發展也催生了眾多流派的誕生,單元測試,功能測試,效能測試,自動化測試可謂百花齊放。
Mercury Interactive公司-(該公司早期的Winruner,loadrunner,TestDirector真的可以成為測試三劍客,囊括了測試管理,功能測試,效能測試)。時隔6年,1995年,Mercury Interactive釋出了另一款重磅產品:winrunner。winrunner是一款實現了錄製/回放的功能自動化測試工具,早期的測試人員肯定或多或少的都聽說過這個工具,而早期的自動化測試也大多以錄製/回放這種架構來進行。我記得在07年的時候,這款工具都還是比較流行的,當時所在的公司做的是Delphi的程式,使用Winruner進行測試還是比較給力的,但是當時winrunner的頹勢已現。Mercury Interactive另一款工具QuickTest Professional已經佔據主流,即使是現在,大家對QTP也應該不會陌生,QTP這款工具也提供了錄製/回放功能,最為令人興奮的是它首次引入了關鍵字驅動測試框架。它把每個測試步驟都換分為操作物件,行為以及操作的資料,並以表格的形式展現出來,而且對每個測試步驟都可以進行視覺化的編輯。這已經是相當高層次的自動化測試框架了。
2001年2月,Martin Fowler,Jim Highsmith等17位著名的軟體開發專家齊聚在美國猶他州雪鳥滑雪聖地,舉行了一次敏捷方法發起者和實踐者的聚會。在這次會議上面,他們正式提出了Agile(敏捷開發)這個概念,並共同簽署了《敏捷宣言》。隨著時間的推移,軟體開發模型已逐漸由瀑布模型為主導的轉向敏捷開發模型。華為在2009年時候也在大力推進敏捷開發模型,運營商BG部門在軟體開發的部分階段中開展敏捷流程。網際網路公司更是全流程開展了敏捷的開發模式。由此帶來了軟體行業發展的大暴發,與此同時軟體變更速度也在加快。一些傳統的自動化測試工具顯示力不從心,很難應付軟體開發的快速迭代和變更,導致一些公司開展自動化測試,徒勞無功。主要原因有:自動化用例建設速度慢,跟不上軟體新增內容;軟體變更頻繁導致用例維護成本巨大;學習成本高。所有這些都是自動化測試在中國軟體業難以建樹的主要原因。

相關文章