一個沉重的問題:未來已來,軟體測試還有價值嗎?

博為峰網校發表於2019-07-09

在過去的幾十年裡,軟體測試已經根據用於執行不同活動的工具和使用這些工具的人的心態發生了變化。那時用於軟體測試的工具很少,但是現在我們有很多的工具可以選擇,從專有的到開源的。同樣地,人們開始把軟體測試者當作資訊代理者而不是看門人,並且在敏捷的世界中已經出現很多積極的開發團隊,這些開發對團隊在軟體開發生命週期中遵循的流程進行了重要的更改。技術的進步要感謝這些進化。

一個沉重的問題:未來已來,軟體測試還有價值嗎?

從我們看待軟體、評估風險、考慮複雜性、設計我們的測試方法和策略,以及幫助向使用者釋出一個穩定的產品的方式來看,技術確實對我們測試軟體的方式產生了影響,並且這種影響將只會隨著技術的進步而繼續。在高層次上,我們已經看到將決定軟體測試未來的5件重要事情。

1.人工智慧

大約5年前,每個人都在談論“移動優先”,併為使用者提供使用手機網頁、本機和混合應用程式的移動體驗。現在,新的流行詞是人工智慧。它在自動駕駛汽車、家庭助理(人們當然喜歡Alexa)、計算機視覺、健康保健、金融,以及現在的軟體測試領域都有使用。

現在,在市場上很少有可靠的工具使用機器學習來幫助編寫程式和執行功能測試、端到端測試和迴歸測試。它們主要集中在基於使用者介面的測試自動化——使用者創造的測試越多,演算法變得越智慧,這使得測試更穩定。

幸虧有人工智慧,有一些我們可以期望開始看到的在測試中的好處:

更容易編寫測試程式碼

降低測試指令碼的維護工作

減少片狀測試

使非技術人們開始進行自動化

更容易整合CI/CD

更多可複用測試

舉個例子,我用Cucumber、 Java和Appium構建了一個自動化框架。雖然我有一個健壯的框架,並且在編寫自定義程式碼來執行各種操作時具有很大的靈活性,但我經常遇到維護方面的常見問題。當開發人員更改我的自動化測試已經覆蓋的元素的屬性時,測試開始失敗。結果,我花了很多時間來維護這些測試,而不是編寫新的自動化程式碼來覆蓋實現的新功能。

這個問題現在可以透過使用人工智慧從文件物件模型提取的動態定位器來解決。在實時的情況下,人工智慧分析會分析DOM中的所有物件樹和屬性,併為特定元素建立不同屬性的列表。因此,當一個元素的屬性變化時,人工智慧會嘗試進入列表中的下一個屬性來定位該元素,並一直遍歷列表,直到找到該元素為止。這種測試更加穩定,測試程式的編寫和執行速度會快得多,而且測試者在維護上花的時間會更少。

一個沉重的問題:未來已來,軟體測試還有價值嗎?

2.開發運營

開發執行幫助軟體開發團隊和運營團隊更好地協作,從而確保在整個軟體開發生命週期(SDLC)中有持續的自動化和監視,包括基礎設施管理。

您可能會問,這將如何影響軟體測試?答案是:作為測試的一部分,我們所做的一切都會改變。我預計的變化包括:

需要在軟體開發生命週期的開始時就啟動自動化,並且確保幾乎所有的測試用例都是自動化的

所有的質量保障工作都需要對齊,以確保CI/CD週期的順利進行

需要高水平的協作,以確保在生產環境有持續的監控

所有的QA環境都需要被標準化

測試思維從“在此模組上完成測試”轉變為“在釋出候選版本中已經減輕了哪些業務風險?”

以上所有變化的關鍵是自動化。開發運營和自動化手攜手並進——缺少其一,另一個將無法工作。這就是聰明的人類和工具能幫助縮短和更可靠的釋出週期的地方。

我曾在一家公司工作,那裡的開發、測試、運營團隊之間的協作很少。我們在軟體開發生命週期裡發現了很多缺陷,比如更多的bug進入生產環境,不穩定的CI/CD基礎設施,以及對生產監控和統計的不可見性。注意到這些差距,團隊決定實施開發運營實踐,每個人都開始在軟體開發生命週期的每個階段進行協作和貢獻。這從需求收集開始,一直擴充套件到產品釋出和監控上。

這種增強的協作文化開始對團隊士氣產生積極影響,更多自動化開始產生,整個團隊開始作為一個單元一起工作。

一個沉重的問題:未來已來,軟體測試還有價值嗎?

3.質量保證即服務

就像我們有軟體即服務、基礎設施即服務、平臺即服務一樣,我們現在也有質量保障即服務。在過去的幾年裡,這已經成為公司滿足軟體測試需求的一種流行方式。

擁有質量保障即服務解決方案的公司可以透過以下方式使軟體測試過程的不同方面變得更簡單:

測試用例管理和維護解決方案

測試自動化工具,減少編碼需求

強大的測試報告功能,包括日誌、影片錄製和螢幕截圖

易於與CI系統整合

在過去7年做自動化的過程中,像手機、虛擬機器、安全網路和測試人員等資源裡,我經常遇到的一個大問題是,必須維護自己的伺服器來執行自動化測試。伺服器的機器有不同的問題,如儲存空間,一個片狀的網際網路連線,處理速度慢的測試正在執行持續整個星期,和需要頻繁更新的最新作業系統,構建工具,安全補丁、整合開發環境等等。這些問題可以透過質量保障即服務的提供商解決,因為他們可以為您完成所有這些活動,因此團隊成員可以將精力集中在更關鍵的任務上。

將來,質量保障即服務的供應商將考慮更多的方法來改進他們的產品,以保持領先於他們的競爭對手,這也將使軟體測試人員受益。

一個沉重的問題:未來已來,軟體測試還有價值嗎?

4.物聯網

隨著可穿戴裝置、智慧家居、聯網汽車和其他基於雲技術的出現,物聯網已經開始成為一個大的討論的主題。這些裝置的驚人之處在於,每秒鐘都有如此多的通訊和整合發生。

讓我們來分析一下,在高水平上,可穿戴健身追蹤器發生不同通訊。首先,手機app和健身追蹤器需要相互溝通。你的移動應用程式捕獲的資料與該應用程式的桌面、移動web和平板電腦版本無縫整合,所有這些跨裝置的通訊都應該實時發生。所有的資料都在雲、裝置和應用程式之間來回傳輸。人們還可以透過應用程式組成小組,互相競爭,所以這些計算和通訊也需要實時進行。根據觸發的不同事件,需要在正確的時間向正確的使用者傳送正確的通知。所有這些通訊都發生在網際網路上。

假設您是測試這個健身跟蹤器的測試人員。從哪裡開始呢?您將如何設計您的測試策略和方法?

物聯網將其自身的複雜性引入軟體測試。它將影響我們對測試的看法,特別是因為整合測試需要比單獨測試每個元件的舊方法給予更多的關注。

舉個例子,當我在一家旅遊預訂公司工作時,我們為Apple Watch開發了一款新的應用程式,它使用的是WatchOS (Apple Watch最初由Apple推出)。該應用程式具有有限但有用的功能,比如檢視通知和獎勵資訊、預定以及定位酒店、航班和租車位置的能力。在測試這個應用程式時,我注意到當Apple Watch應用程式連線到我手機上的同一個應用程式時,出現了一些奇怪的問題:當我將手機上的應用程式最小化時,Apple Watch一片空白,只有一個黑屏;但當我再次在手機上開啟應用程式時,黑屏消失了,Apple Watch應用程式執行正常。

這是一個很好的例子,說明了整合測試的重要性。隨著越來越多的裝置進入市場,這對於組織和使用者來說將是至關重要的。

一個沉重的問題:未來已來,軟體測試還有價值嗎?

5.機器人

現在有做測試的機器人。有些人可能認為這是可怕的工作保障,但我仍然相信,人類的思想是無法取代的。仍然需要人類來監控機器人,以確保它們在做人們期望它們做的事情,併為它們編寫程式。這種可擴充套件性有多強?只有時間才能證明。

總之,技術的進步已經開始影響我們進行軟體測試的方式。這也導致公司重新思考他們的組織結構:QA團隊正在向嵌入開發團隊的方向發展,並且整個團隊將擁有質量。研究和開發團隊與開發團隊的頻繁互動也將變得非常重要,以使產品更智慧,對客戶更有用。

還需要有處理大量資料的程式,以及適當的計算能力來梳理這些資料以獲得有用的資訊和反饋。最後,為了使這一切成為現實,公司需要採用精益流程,並且更加透明,以防止成為創新的一個障礙。精益轉型對有效增長至關重要。

重要的是改變我們看待系統的思維方式,並相應地進行測試。我們可以選擇忽略它,也可以選擇接受它。你將會怎麼做?

一個沉重的問題:未來已來,軟體測試還有價值嗎?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2650030/,如需轉載,請註明出處,否則將追究法律責任。

相關文章