前言
在談論軟體測驗之前,我作為一個有一定作業經驗的工程師,我想發表一些自己的想法和觀點,這些觀點雖然不是完全正確的,但是確實是我在作業中不斷的去沉淀,去理解,去思考才得來的一些看法,希望作為剛入行的你,或者已經在從事這份崗位但是很迷茫找不到定位的你,在看到我的這篇文章之后可以對這份作業有另一種態度,希望你在選擇了這份崗位之后可以熱愛這份作業,愿意去付出,愿意相信自己是公司里不可缺少的一位,每一個崗位存在即有理,在大勢之下我們沒有理由去否定去這份崗位,但是我們一定要深入理解這份崗位,只有帶有這種思想的從業者才能在這條道路中越走越好,
測驗這份作業確實入門相對來說是比較低的,看起來誰都能做,但是不一定誰都能做好,并且在一些小公司里面,測驗往往還會被其他人認為是沒有技術含量的作業,但是我想說在大廠里面,測驗是跟開發同等級的存在,無論是工資還是聲望,相對的大廠里面需要的要求就會高很多,對于作業不久的同學來說,你會發現其實自己在測驗的時候并沒有用到很高深的技術啊,為什么在面試的時候會問到很多東西,并且招聘要求這么高,這是一個很現實的現象,公司招人肯定是想招一個能力超出成本的員工,這樣既可以完成當前的作業量,還可以在特殊情況下完成新加的任務,而面試時那些額外多問的技能就是用于后者,
相信很多同學會有這樣一個心理想法,那就是:測驗一下子就測驗完了,我現在好閑啊,這樣會不會不太好?測驗也太沒有意思了吧,我學了幾年的計算機竟然做這么沒有技術含量的作業,那我不是白學了?我覺得我已經測完了,這個軟體沒有什么可以測驗的了,我現在在等開發修改bug,那我現在應該做些什么呢?…看完這些,希望你能從中獲得一些想要的答案
何為軟體測驗工程師?
軟體測驗工程師(Software Testing Engineer)指理解產品的功能要求,并對其進行測驗,檢查軟體有沒有缺陷(Bug),測驗軟體是否具有穩定性(Robustness)、安全性、易操作性等性能,寫出相應的測驗規范和測驗用例的專門作業人員
軟體測驗工程師的職責?
軟體測驗就是使用人工或自動手段,來運行或測驗某個系統的程序,其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別,開發作業的根本是盡量實作軟體用戶的需求,測驗作業的根本是檢驗軟體系統是否滿足軟體用戶的需求,
軟體測驗工程師簡單的說是軟體開發程序中的質量檢測者和保障者,負責軟體質量的把關作業,
為什么要做軟體測驗?
1.發現軟體缺陷
2.發現功能錯誤
3.檢查是否功能遺漏
4.超出需求部分(畫蛇添足)
5.性能不符合要求
6.軟體質量高低:是否符合用戶習慣、符合用戶需求
軟體測驗的前途如何?
說到軟體測驗的前途,我覺得應該說是軟體測驗人員的職業規劃,請注意我說的是人員,因為這個崗位的前途肯定是有的,就算要隕落也不是在你這一代測驗工程師中隕落,因為這是一個新鮮的崗位,是個年輕的崗位,未來需求很大,是一個很重要的崗位,作業沒有好壞,能決定未來的只有自己,
軟體測驗的工具和思維誰更加重要?
相對于測驗工具,我更加傾向于測驗思維,當然這兩者是相輔相成的,雙向提升會讓你在測驗的作業中得到很大的提升,測驗的思維貫穿整個測驗的職業生涯,從一個0基礎的測驗工程師進階到一個中級測驗,前一兩年的成長基本上都是在測驗思維上的提升,這段時間很多人都會很迷茫,覺得自己是一個沒有什么技術的人,其實這個成長的期間更多是要尋找自己的定位,落實自己作為一個專業測驗工程師的思維方式,當自己具備了一定的測驗思維之后,我們面臨的一個挑戰就是在測驗技術上的關卡,在招聘上面我們往往可以看到基本上的測驗工程師都是需要測驗工具的使用,而且會使用測驗工具比不會使用測驗工具的人工資要高,顯而易見,在具備了測驗思維之后,要進一步的提升自己就要在技術上的加強了,不管是測驗工具的使用,還是自動化腳本的撰寫,這些都可以視為輔助我們去測驗一個軟體產品的工具,為達目的想盡一切辦法去發現軟體中的缺陷,
軟體測驗工程師和軟體開發工程師真的就相差這么大嗎?
簡單的一句話概括:測驗和開發就像是互補關系,開發注重的技術的深度,而測驗注重的是知識面的廣度,開發懂測驗,但是在測驗方面上沒有測驗工程師那么專業,因為不具有測驗的思維方式;中高級測驗工程師很多是具有開發能力的,但是他在開發技術上沒有專職開發理解的那么深刻,所以開發的閃光點是技術的深度,測驗的閃光點是知識面的廣度和測驗思維,
成為測驗工程師的必備條件?
- 首先第一點,作為一個測驗工程師,計算機相關專業的知識在作業中起至關重要的作用,這是作為一個測驗工程師必備的,其中就包括(計算機網路,作業系統,資料庫系統,開發語言以及開發工具等),我們一定要具備這方面的知識,但是作業中不一定都會用上,不同方面的測驗需要的技能也就不同,比如功能測驗也就是點點點的操作,基本上沒有誰不會使用一個軟體吧,就是這個道理,
- 第二點就是測驗思維,也是我認為一個人是否能做好這個崗位的標桿,上面一點我說了,計算機相關的知識我們在作業中可能用不到,但是測驗思維一定要時刻應用,因為思維決定行為,有一個完整的系統的準確的測驗思維,才能把作業做到細致做到越接近完美,這里我只用了接近完美這個詞,因為測驗作業是無窮的,不存在沒有bug的程式,
- 第三點就是需要具備測驗技巧,有更多的測驗方法,熟悉測驗工具,當然就相當于是后續的作業經驗積累出來的產物了,需要我們在作業中不斷的去整理,去學習,去應用,測驗這份作業是探索性的作業,在作業中,真正去執行測驗用例執行測驗作業的時間是占的比較少的,更多的時間都花在探索上和整理檔案上,
- 第四點就是作業中的一個學習和溝通能力了,找bug是測驗的作業,改bug是開發的作業,所以這之間就少不了溝通和交流,在溝通程序中,測驗和開發直接需要有一個共通的表達方式去描述這個bug,使得測驗人員能清楚的描述bug,并且開發人員也可以準確的知道bug的現象,方便在快速定位問題并且解決問題,既然測驗是一個探索性的作業,所以就需要更多的知識和技巧做鋪墊,我們在作業中需要帶著強烈的求知心去作業,去吸收去學習一切能在作業中幫到自己的知識點,對自己的提升也會起到至關重要的作用,
測驗的分類有哪些?
說到測驗分類,在網上搜一下就出現了很多,有功能測驗,性能測驗,自動化測驗,資料庫測驗,介面測驗,安全測驗,還有細致一點的就是app測驗,web測驗,游戲測驗等等等等,我們暫且就分為功能,性能,自動化這三類,
功能測驗簡單來說就是測驗產品能做什么功能,性能測驗就是測驗產品的功能做的怎么樣,自動化就是利用腳本來代替人工去完成一個功能操作的測驗(自動化測驗一般在測驗階段的后期,當產品達到了一定的穩定性之后,利用自動化腳本進行快速的回歸)
提高測驗質量的要訣?
另外一個值得注意的方面就是作業效率和質量,或許高級測驗工程師與普通測驗工程師的主要區別在于高級測驗工程師可以更快地發現更多軟體中的嚴重錯誤,對此,有什么可以借鑒的訣竅嗎?請嘗試以下方法,保證不會使您失望,
- 首先測驗程式的核心功能,然后測驗輔助功能,
- 首先測驗功能,然后測驗性能,
- 首先測驗常見情況,然后測驗例外情況,
- 首先測驗經過變更的部分,然后測驗沒有變更的部分,
- 首先測驗影響大的問題,然后測驗影響小的問題,
- 首先測驗必須測驗的部分,然后測驗可選或沒有要求測驗的部分,
測驗流程是什么?
測驗既然是一個必不可少的崗位,自然就有一套完整的測驗流程來支持,那么軟體測驗的流程是什么呢?什么時候測驗工程師才進入測驗作業呢?在測驗前需要一些什么準備呢?每個流程階段我們應該做一些什么?
軟體測驗工程師的整個作業流程:專案立項–>需求分析–>測驗分析–>測驗計劃–>撰寫測驗用例–>執行用例–>bug管理–>測驗報告 ,這一整套流程下來,也許看起來你會覺得自己根本就沒有參與幾個,但是如果你是研發組唯一的測驗,又或者你是測驗組的大佬,那么這一整套流程下來你必不可少,
專案立項和需求分析:這兩個基本是同一時間進行,就是產品經理或者是市場經理有一個可以賺錢的好點子,想跟大家討論一下,這就是一個專案的萌芽階段(專案立項);然后確定了專案之后,大家一起分析一下功能,需要滿足什么樣的需求,這個產品的架構是怎樣的等等,說到這里你是不是發現好像這些事就是開發和產品那邊的事兒,跟我們測驗不搭邊呢,其實不是,作為測驗,在參加這次會議中,目的就是要知道接下來有一個什么專案需要我來測驗,專案的定位是什么,客戶群體是哪些,用戶環境在什么場景等等一些資訊都對我們進行測驗有很大的幫助,往往一個專業的測驗人員是要完整的介入整個產品的研發和測驗階段,
- 測驗分析:在這個階段,就開始考驗到了一個專業的測驗工程師的一個業務能力了,這個階段如果分析的好,就能提高用例的覆寫率,盡可能的保障了軟體的測驗質量,測驗分析和測驗用例設計是有一定的區別,
- 測驗計劃:計劃的撰寫有助于作業的進行,寫好一份測驗計劃,可以讓我們在作業中按照一定的流程去完成作業,并且在測驗計劃中,有比較詳細的人員分工,時間安排,環境搭建要求,測驗的目的,專案的介紹,這些基本的資訊都會出現在測驗計劃當中,當然這個環節不是每個測驗人員都要去做的,一般出現在組長或者組長以上的人才去完善這份作業,或者組織內有一定的測驗架構和專案分支,測驗人員和專案版本比較多,專案復雜多樣化,那么測驗計劃就起到了至關重要的一步,
- 撰寫測驗用例和執行用例:那么在撰寫用例的環節,我們從測驗分析為出發點,利用等價類,邊界值,場景法,因果關系等一些用例設計方法來設計測驗用例,并且在用例中表明需要用到哪些測驗資料,在完成了測驗用例的撰寫之后,接下來就是用例的執行了,按照測驗用例的一些步驟和預期結果,來執行我們的用例,判斷是否通過,未通過的用例就可定義為一個bug,測驗用例看起來就是玩文字游戲,其實它的作用體現在的是一個記錄作用,因為如果沒有測驗用例這個檔案,那么我們在測驗的時候難免會出現漏測現象,這樣就造成的作業的不合格,再則就是用例還可以用來當做一個憑證來證明自己的作業,如果在作業中發生爭執了,可以及時的拿出用例來為自己作證,
- bug管理:有了測驗的用例,那么就會出現測驗的產物,就是bug,作為一個專業的工程師,我們所需要做的無非就是想盡一切的辦法去否定開發寫的程式,所以我們在找到問題的時候,需要給出的是一個高質量的bug,什么是高質量bug呢?所謂的高質量的bug,就是必須有一個準確的復現步驟,有一個直觀的bug現象,必要的時候可以加上log,加上截圖,加上測驗資料,甚至有時候出現了特別難以出現但是嚴重級別高的bug,直接就保留現場,叫上開發過來了解情況,有了這些東西,開發同志就無力反駁我們拋出的bug了,為什么我們提出bug要這么準確呢,原因就是我們是專業的工程師,產品上線之后,如果市場上沒有重大的bug反饋,那么這是我們盡到了責任,但是如果市場有重大的反饋,導致對公司造成了損失,那么就是我們的失職,我們不僅要提交bug,還要跟蹤bug,使bug從產生到關閉有一個較快的倍訓,將那些嚴重的,優先級高的bug及時的催開發修改,一個優秀的團隊就是要做到每一個員工盡責,
- 測驗報告:測驗報告書寫的目的就是將自己的測驗結果通過這份報告讓別人可以了解到目前產品的一個狀況,所以在測驗報告上,我們盡可能描述重點,寫一些有價值的東西,因為別人是通過你的這份報告來間接性的了解產品的狀態,所以如果你寫的太復雜,像流水賬一樣,給人的感覺并不是細致,而是啰嗦,所以在寫完報告之后,我們應該站在一個閱讀者的角度去審閱自己的測驗報告,看看是否明確是否完美,
最后希望大家可以熱愛軟體測驗作業,這個崗位需要更多熱愛它的人才可以一起做好,加油同學們!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/15159.html
標籤:其他
上一篇:2020年9月中國編程語言排行榜
下一篇:C++ 類詳解(Plus)
