軟件測試是軟件工程當中不可或缺的一個過程。在軟件工程中,測試者充當「虛擬用戶」對軟件產品進行檢驗。只有通過嚴格測試的軟件產品,才能發佈給用戶使用。只要有軟件的地方,就有軟件測試。安全
(英語:Software Testing),描述一種用來促進鑑定軟件的正確性、完整性、安全性和質量的過程。換句話說,軟件測試是一種實際輸出與預期輸出之間的審覈或者比較過程。軟件測試的經典定義是:在規定的條件下對程序進行操做,以發現程序錯誤,衡量軟件質量,並對其是否能知足設計要求進行評估的過程。
從事軟件測試第7個年頭,從菜鳥成長起來,一路的坎坷促使我想把我的知識和成長經驗分享給你們,但願對你有所幫助,感謝支持。架構
測試是一門技術, 更是一門藝術. 也許你今天擁有的技術, 明天就會被淘汰. 同時須要咱們開拓思惟和眼界, 積極擁抱變化, 學習新知識, 新方法,新技能, 計算機領域講究的是實踐, 學習更要講究方式方法. 學習和動手必定要結合, 光看不練,猶如看武功祕籍, 是永遠成不了武功大俠的.運維
1.測試工程師職責學習
評估對用戶的影響以及軟件產品總體目標上的風險測試
從用戶的角度來思考質量方面各類問題編碼
從開發角度來看,測試編寫用戶使用場景方面的自動化用例代碼設計
從產品角度來看,他們評估總體測試覆蓋度,並驗證其餘工程師角色在測試方面合做的有效性中間件
產品專家、質量顧問和風險分析師.blog
2.測試質量理念:開發
質量不是被測試出來的,這句看似陳詞濫調卻包含着必定的道理。
雖然質量不是被測出來的,但一樣有證據代表,未經測試也不可能開發出有質量的軟件。若是連測試都沒有作,如何保證你的軟件具備很高的質量呢?
有一個簡單的辦法能夠解決這個難題,那就是中止開發與測試的隔離對立。開發和測試應該並肩齊進。你的每一段代碼寫完後都要馬上測試這段代碼,當完成了更多的代碼時就作更多的測試。測試不是獨立隔離的活動,它自己就是開發過程的一部分。質量不等於測試,當你把開發和測試放到一塊兒,就像在攪拌器裏混合着水泥和砂石, 澆鑄成了混凝土, 堅如盤石, 這就是質量.
3.測試不是開發的柺杖
開發, 測試, 產品, 運維在一條船上.
質量須要每個人的貢獻,而不專屬於「測試」工程師。咱們越不讓開發考慮測試的事情,把測試變得越簡單,開發就愈來愈不會去作測試。若是測試是一個獨立的部門,這個問題更嚴重。保證質量不可是別人的問題,它甚至還屬於另外一個部門。出問題的時候也很容易就把責任推卸給質量部門。
4.測試流程
測試儘早參與各個環節,多Review文檔,代碼,知曉系統架構, 使用的中間件配置等.
高度自動化,強調持續集成;
測試分大中小測試,大中小範圍、執行人、時間和要求不同;
及早參與測試,畢竟質量不是測試出來的,整個研發過程的第一行編碼已經決定了質量的高低,過程當中反饋風險,利用有效測試策略消除質量障礙,確保檢驗處有問題的地方及時修改,避免遺漏上線。越早參與,越早發現問題,軟件修復成本越小 , 這就是測試左移, 臨近發版, 還有不少問題修復, 那這時候的成本是很是高的.