您好,登錄后才能下訂單哦!
在過去的幾十年里,軟件測試已經根據用于執行不同活動的工具和使用這些工具的人的心態發生了變化。那時用于軟件測試的工具很少,但是現在我們有很多的工具可以選擇,從專有的到開源的。同樣地,人們開始把軟件測試者當作信息代理者而不是看門人,并且在敏捷的世界中已經出現很多積極的開發團隊,這些開發對團隊在軟件開發生命周期中遵循的流程進行了重要的更改。技術的進步要感謝這些進化。
從我們看待軟件、評估風險、考慮復雜性、設計我們的測試方法和策略,以及幫助向用戶發布一個穩定的產品的方式來看,技術確實對我們測試軟件的方式產生了影響,并且這種影響將只會隨著技術的進步而繼續。在高層次上,我們已經看到將決定軟件測試未來的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團隊正在向嵌入開發團隊的方向發展,并且整個團隊將擁有質量。研究和開發團隊與開發團隊的頻繁互動也將變得非常重要,以使產品更智能,對客戶更有用。
還需要有處理大量數據的程序,以及適當的計算能力來梳理這些數據以獲得有用的信息和反饋。最后,為了使這一切成為現實,公司需要采用精益流程,并且更加透明,以防止成為創新的一個障礙。精益轉型對有效增長至關重要。
重要的是改變我們看待系統的思維方式,并相應地進行測試。我們可以選擇忽略它,也可以選擇接受它。你將會怎么做?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。