我從事軟件行業已經超過15年了。這么長時間,一直想寫一篇關于軟件測試經驗分享的文章,但是因為工作原因一直遲遲沒有動筆。最近終于有了一些空閑時間,于是決定把自己的心路歷程、感受和想法記錄下來,分享給同事們。
根據我多年的經驗。;工作經驗,軟件功能測試是基礎,未來主要有兩個發展方向(技術專家和測試管理)。
一、技術專家的發展路線有以下三個方面可供參考:
1.從功能測試到性能測試專家:性能測試專家需要掌握一門編程語言、性能測試工具、系統架構、網絡、數據庫、服務器硬件等知識。性能測試分為前端性能測試(單用戶操作系統響應速度)和后臺性能測試(多用戶并發場景)。后臺性能測試包括三個階段:測試(性能測試場景分析與設計、腳本編寫或記錄、測試執行)、分析(根據性能測試目標分析測試數據找出性能瓶頸)、解決(根據性能瓶頸給出系統調優解決方案);
2.從功能測試到自動化測試專家:自動化測試專家可以向自動化測試工具和框架方向發展,也就是測試開發工程師。自動化測試工程師需要掌握一門腳本語言(比如Python),一些測試工具(比如webdriver,testng,appium等。)和web前端知識(html,jquery,css等。);
3.從功能測試到安全測試專家:安全測試需要更多的測試人員。如果你想在這條路上走的更遠,建議從事過開發或者對計算機與信息安全非常感興趣的人深入學習他們的技能和知識。普通測試人員只能做相對簡單的安全測試,無法深入;
二、開發測試管理需要以下知識,僅供參考:
1.非常熟悉軟件測試流程、質量管理流程和項目管理;
2.對功能測試、用例設計、特殊測試技術有所了解(即使走上管理崗位也需要這些知識,否則無法服眾);
3.良好的溝通能力、人際交往能力、責任心和抗壓能力;
4.懂得如何管理團隊,如何提高團隊的能力,如何激發團隊成員的積極性等。
三。軟件測試工程師必備基本技能概述
以上,我總結了軟件測試的兩個發展方向。現在,要成為一名合格的軟件測試工程師需要具備哪些技能?
1、最佳隱身技能
發展語言知識背景
對被測試對象使用的語言有一定的了解,有助于測試工作的開展。
計算機語言有某些共性。只要你對一門語言有很深的理解,其他語言都不難。
熟悉數據庫的使用
能夠自己編寫大部分SQL語句輔助測試(選擇,刪除,更新),可以更加了解存儲過程,是不需要程序輔助制作數據的最佳幫手。
主要是在日常測試工作中,提取數據庫中的數據來驗證測試結果的有效性,制作測試數據,批量修改測試數據。
熟悉被測試對象的業務
對被測試對象的業務流程了解的越多,越深入,對測試工作越有利。
2.測試原理
軟件測試的基本概念以及軟件測試存在的原因。
你不不需要死記硬背,但是你可以知道軟件測試是為了什么。
軟件測試的整個過程
能詳細描述軟件工程中完整的軟件測試生命周期,以及一些軟件測試模型(雙V,V模型)。
軟件工程中的軟件生命周期
軟件工程中軟件生命周期的主要過程,以及軟件測試在生命周期中的階段和作用。
測試用例設計的幾種基本方法
我們可以脫口而出軟件測試中經常用到的測試用例的設計方法,并在實際工作中用實例進行描述和解釋。
軟件測試的幾種功能
根據實際項目,快速說出一個被測對象需要測試哪些類型。
缺陷管理策略
缺陷的完整生命周期,其他一些可能發生的環節。
一個缺陷需要包含什么,如何處理不可復制的缺陷和不被識別的缺陷等問題。
白盒測試(僅用于白盒測試)
對代碼有足夠的控制權。
熟悉各種白盒測試用例設計方法,了解每種方法的優缺點,根據業務需求使用最合適的方法設計測試用例。
3、測試工具的使用
缺陷管理工具
吉拉、螳螂、Bugfree、QC(TD)
JIra,Mantis,Bugfree都是開源軟件。
次品工具的基本使用很簡單,對于沒用過的次品工具,你應該能很快使用。
需求管理工具
理性RequisitePro
CloudtopoTopo
需求管理工具一般用于大中型項目的需求管理。
自動化工具
自動化測試的基本過程
能清楚陳述自動化測試的基本流程和自動化工具的基本原理。
自動化測試工具
惠普的QuickTestPro(QTP)
QTP是目前市場上非常成熟的產品,以其強大的功能占據了主要的市場份額,但由于價格昂貴,很多公司無法接受。
硒和WATIR開源自動化測試工具
對于價格昂貴且不開源的QTP來說,開源自動化工具非常受歡迎。
自動測試腳本設計
說到自動化測試,其實主要的重點還是在測試腳本的設計上。
設計腳本需要一定的語言技能。例如,QTP默認使用VBS腳本。如果你熟悉VBS,你可以算出你已經掌握了這個工具的1/3。
自動化測試框架的理解和設計
測試框架就像建筑s基石,后續的擴展和豐富要以此為基礎,這自然成為自動化測試的難點。
剛接觸自動化測試的學生可以學到更多。
性能測試工具
惠普的LoadRunner(LR)
QA負載、WebRunner
性能測試的原理和過程
性能測試腳本的記錄和調整
性能測試的關鍵任務之一是記錄和調優腳本。
你需要有一些語言技能。比如LR默認使用C語言,有C語言能力的學生自然會學的沒有壞處。
性能測試場景設計
性能測試的另一個關鍵場景的設計
場景的設計是否正確合理,直接關系到最終性能測試結果的有效性。
性能測試結果分析和性能分析(重點)
性能測試最重要的也是性能測試的目的。
通過性能測試結果的數據,分析被測對象存在的問題,并對被測對象進行相應優化后重新測試,直至被測對象的性能參數符合要求。
4.計算機知識
了解并使用常用的操作系統。
Windows系列,Mac系列,Linux系列
TCP/IP協議
了解TCP/IP協議的內容和相應層的功能。
常用快捷指令的使用
在日常工作中,可以快速使用操作中的快捷動作,如記事本、mspaint、ipconfig、
先了解現狀。
工作模式的形成一定經歷了磨合和演變,團隊現有工作模式的形成一定解決了很多問題。如果你不t認識不清,就想著制定新的流程或者改變工作模式,很容易又踩在原來的坑上,從哪里入手都會很盲目。
當你第一次到達時,你最好有人正式介紹,把項目經理介紹給團隊。如果能簡單介紹一下項目經理的職責就更好了。
了解現狀的第一步是了解基本情況、文件、項目管理工具如JIRA等。,都是簡單瀏覽一下,為進一步了解現狀做準備。
然后要明確利益相關者,每個人扮演什么角色,負責什么領域,項目的發起人等等。你可以和前任項目經理談談。如果之前沒有項目經理,從你已經認識的人開始,做好準備。帶著一些問題和你想知道的東西進行正式面試。面試的目的是了解項目現狀,團隊現狀,利益相關者,優勢,問題,KPI等等。同時可以正式向他們介紹自己,擅長什么,做過什么等等。這種溝通不是一開始就只做一次,后續還是可以持續做的。
找到痛點,提出解決方案。
了解現狀,就要分析現狀,團隊現在的問題是什么,所有利益相關者的痛點是什么,是什么導致了這些問題和痛點。例如,產品經理不不知道開發團隊的進度,開發團隊不知道。;我不知道我們應該做什么,開發者也不知道。;我不知道與我相關的其他開發者的進展。進一步探究原因,為什么不知道開發團隊的進度?是因為沒有項目管理工具還是因為每個人都沒有?;Idon'我不想更新進度?是因為任務本身不清楚還是因為團隊成員不明白?;我不明白?為什么唐人們不喜歡更新進度嗎?因為你可以。;不要使用工具?或者是因為工具不工作不順利?或者是因為每個人的工作方法沒有達成一致等。,所以他們不斷深挖問題的根源。
找到了問題的根源,我們應該制定一個計劃。例如,人們不我不想更新他們在工具上的狀態,因為他們不知道。;我對它了解不多。;它不太容易使用。然后,您可以提供工具培訓,修改工具以簡化流程或更換工具。但這些方案都有一個前提:簡單易懂,行之有效。那種花里胡哨的報告,眼花繚亂的PPT,往往很費時間,也沒什么用,要把時間花在思考如何簡化和理解流程上。
通常情況下,項目經理找起點最好的地方就是產品經理的痛點,產品經理制定的需求,如何讓團隊接受、理解并執行,如何控制團隊的進度,團隊是否虛報開發量,如何控制質量,如何應對不斷變化的需求等等。這些往往是項目經理最擅長也最需要工作的地方。這時候如果能分別給產品經理和開發團隊準備一個培訓,讓大家了解自己可以重點關注的領域,項目經理可以幫助你的地方,那就非常有幫助了。
潤物細無聲的改變。
人往往是抗拒改變的,因為過去的經驗會告訴自己的意識,經驗是可靠的,新事物充滿了太多的未知和風險,規避風險是人的一種本能。