chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個軟件測試工程師需要具備哪些技能

工程師人生 ? 來源:工程師吳畏 ? 2019-07-30 17:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

軟件測試工程師是一個歷史很悠久的職位,可以說從有軟件開發(fā)這個行業(yè)以來,就開始有了軟件測試工程師的角色。隨著時代的發(fā)展,軟件測試工程師的角色和職責也在悄然發(fā)生著變化,從一開始單純的在瀑布式開發(fā)流程中擔任測試階段的執(zhí)行者,到敏捷開發(fā)流程中QA(Quality Assurance)角色,為整個團隊和產(chǎn)品的質(zhì)量負責,測試工程師的職責和邊界不斷的擴大。近年來互聯(lián)網(wǎng)行業(yè)的很多測試工程師被稱為是測試開發(fā)工程師,也就是要具備自動化測試和測試工具開發(fā)能力的測試工程師,可以說是對測試工程師的能力要求達到了一個新的高度。

相信有過測試工作經(jīng)驗的同學(xué)都會深有體會,不管是瀑布式還是agile模式,測試人員的工作總是被壓在產(chǎn)品發(fā)布的最后階段,整個團隊的壓力似乎都壓在測試工程師身上,沒有人會理會開發(fā)過程中產(chǎn)生的延誤,因為那已經(jīng)過去,可以在retro meeting的時候diss,但是目前最重要的問題是完成產(chǎn)品的發(fā)布上線。所以在尋找測試工程師需要什么技能之前,測試工程師的核心問題是什么,這是我們要搞清楚的。

測試工程師面臨的核心問題

如何以最小的投入,最大程度保證產(chǎn)品的質(zhì)量

這個問題相信大家都有所體會,商業(yè)社會追求的就是效率,甚至是極致的效率。測試工程師也不能例外,不管是叫測試工程師,QA,或者是聽著高大上的測試開發(fā)工程師,其實老板們的目標是一致的,就是在盡可能少的投入,最大程度保證產(chǎn)品的質(zhì)量。說得現(xiàn)實一點,你的薪資水平就取決于你能解決這個核心問題的能力。

明確了我們的目標,我們所需要的能力,也是圍繞著這一個目標來設(shè)定的。

概述

一個軟件測試工程師需要具備哪些技能

按照筆者的經(jīng)驗和理解,一個軟件測試工程師需要具備以下的技能:

測試設(shè)計能力

代碼能力

自動化測試技術(shù)

質(zhì)量流程管理

行業(yè)技術(shù)知識

數(shù)據(jù)庫

業(yè)務(wù)知識

1. 測試設(shè)計

作為一名測試工程師,最基礎(chǔ)的能力應(yīng)該就是根據(jù)產(chǎn)品來設(shè)計測試用例的能力。最基礎(chǔ)的能力往往也是最難做到精通的能力。要設(shè)計好的測試用例,需要對產(chǎn)品的特性和業(yè)務(wù)非常的熟悉,對用戶的使用場景有著系統(tǒng)化的思考。除此之外,還有一些科學(xué)的測試用例設(shè)計方法可以幫助我們設(shè)計規(guī)范化的用例,而不是僅僅根據(jù)經(jīng)驗或者天馬行空的想法來設(shè)計用例。

業(yè)界有一些經(jīng)典的測試用例設(shè)計方法需要測試工程師掌握:

邊界值分析

等價類劃分

因果圖

判定表

正交實驗設(shè)計

上述的這些方法并不是教條,而是幫助我們理清測試用例設(shè)計的思路和提高效率的工具。

2. 代碼能力

在傳統(tǒng)的思維中,對測試人員的代碼能力要求似乎不是很高,在業(yè)界確實也是這樣的。很多測試工程師基本上不具備代碼的能力,更多是測試的執(zhí)行者。

但是在當今這個時代下,要想突破傳統(tǒng)功能測試人員的天花板,代碼能力是必須的。

具備代碼能力的測試工程師有這樣兩個優(yōu)勢:

2.1 閱讀開發(fā)代碼

如果能夠具備閱讀開發(fā)代碼的能力,對于提高測試人員的效率是很有幫助的,它可以幫助我們做到這些一些事情

通過開發(fā)修改的代碼預(yù)估影響的范圍,即測試的范圍

參加技術(shù)評審,預(yù)估測試的風險,難點,重點

通過代碼的邏輯設(shè)計測試用例,強化測試用例的覆蓋程度

對缺陷進行初步的定位

其實可以做到的事情還有很多,體現(xiàn)在測試過程的很多細節(jié)當中

2.2自動化測試的開發(fā)

自動化測試是測試發(fā)展的方向,也是提高效率的有效方法。具備了代碼能力,你可以輕松的駕馭各種流行的自動化測試框架和用例開發(fā)。

3. 自動化測試

接著上面關(guān)于自動化測試的討論。在目前的熱門公司的招聘中,自動化能力已經(jīng)是必備的能力,也是大家很關(guān)注的一個領(lǐng)域。

目前可以粗略的把自動化測試分為這么幾類:

3.1 UI自動化

UI自動化實現(xiàn)的目標是模擬人在產(chǎn)品UI界面上的操作,從而觀察結(jié)果來完成測試的執(zhí)行。UI自動化也可以從客戶端的形態(tài)上分為PC端和移動端的自動化測試,有這樣一些著名的自動化工具需要我們掌握:

3.1.1 Selenium

Selenium是一個很經(jīng)典的WEB端產(chǎn)品的UI自動化工具,針對不同的開發(fā)語言都有很好的支持。它的原理簡單來說就是通過WebDriver把腳本產(chǎn)生的操作指令傳遞到瀏覽器,執(zhí)行我們需要的操作并且獲取相應(yīng)的反饋,在腳本中完成校驗。

3.1.2 Appium

從這個名字就可以看出這個工具和Selenium的相似之處。其實Appium可以理解為就是移動端的Selenium。同樣也是在移動端模擬人的操作來實現(xiàn)執(zhí)行測試用例的目的。

隨著移動互聯(lián)網(wǎng)時代的到來,更多的業(yè)務(wù)已經(jīng)從PC的WEB端轉(zhuǎn)移到了移動端,移動端的自動化測試越來越重要。

其實UI的自動化實現(xiàn)的原理都是很類似的,基本的邏輯都是:

定位元素

操作元素

獲取反饋

最后通過某種測試用例框架來管理測試用例,例如python的unittest,JAVA的TestNG,Ruby的respec等等。

所以說了解了某一種UI自動化的框架和工具,很容易的就能觸類旁通的學(xué)習新的框架和工具。

3.2 接口自動化

在目前SaaS成為主流的情況下,API,即接口,成為了支撐業(yè)務(wù)的核心部分。前端頁面和App里面的業(yè)務(wù)數(shù)據(jù)都是通過各種API與服務(wù)器進行通信,從而實現(xiàn)業(yè)務(wù)功能。

目前大多數(shù)的接口都是基于HTTP協(xié)議的,其中Restful的接口又占大多數(shù)。而很多語言,例如Python和Ruby都有很好的庫來支持HTTP協(xié)議的請求,這就為我們設(shè)計接口自動化提供了很好的基礎(chǔ)。

回到我們的核心問題,投入產(chǎn)出比的衡量。UI的自動化無論是從實現(xiàn)的成本還是維護的成本來說都是巨大的,所以業(yè)界越來越把重心放到了接口層的自動化實現(xiàn)上。

接口的自動化具備這樣的優(yōu)勢:

運行效率高

開發(fā)成本低

維護成本低

可以與開發(fā)代碼同步開發(fā)

接口自動化的實現(xiàn)思路也是簡單明了的,那就是模擬瀏覽器,發(fā)送HTTP請求來實現(xiàn)對接口的調(diào)用,然后比較返回與期望值,達到驗證結(jié)果的目的。

當然,要設(shè)計一套真正高效的接口自動化框架也是不容易的。這里面涉及到如何提高用例的開發(fā)效率,降低開發(fā)維護成本等關(guān)鍵問題。同時還可以把接口測試與性能測試結(jié)合起來,豐富接口自動化測試的內(nèi)涵。

4. 質(zhì)量管理流程

在敏捷開發(fā)的流程中,測試工程師有了一個新的定義:Quality Assurance Engineer。而測試的執(zhí)行僅僅是職責中的一部分,更為重要的是要為整個團隊的產(chǎn)品質(zhì)量負責。

從整個sprint的周期來看,QA工程師都要始終如一的貫徹質(zhì)量保證的意識,與開發(fā)的關(guān)系也從早期的發(fā)現(xiàn)bug,轉(zhuǎn)變?yōu)槿绾螏椭_發(fā)團隊一起提高產(chǎn)品的質(zhì)量。同時還要和產(chǎn)品團隊密切的合作,在需求的分析階段就介入,分析質(zhì)量保證工作如何規(guī)劃和設(shè)計,而不是在產(chǎn)品發(fā)布前的測試執(zhí)行階段才介入。

這個里面還包含很多Soft skill的要求,包括如何與團隊合作,溝通等等,這也是敏捷開發(fā)模式的關(guān)鍵之一。

5. 行業(yè)技術(shù)知識

這一部分內(nèi)容其實涵蓋的內(nèi)容是非常豐富的,就以互聯(lián)網(wǎng)行業(yè)舉例吧。

對于一個互聯(lián)網(wǎng)產(chǎn)品,測試工程師需要了解的甚至是精通的知識是很多的,從前端頁面的技術(shù)棧,API的設(shè)計,后端服務(wù)器的設(shè)計,后面會專門提到的數(shù)據(jù)庫,還有整個服務(wù)的架構(gòu)等等,測試工程師都需要有所了解。

針對這個問題,其實有一個非常好的問題可以幫助大家去梳理涉及到的知識,這就是:

從在瀏覽器的輸入框輸入一個網(wǎng)址,到看到網(wǎng)頁的內(nèi)容,這個過程中發(fā)生了什么?

回答這個問題的深度和廣度,基本就能反映一個測試工程師對于互聯(lián)網(wǎng)產(chǎn)品技術(shù)的掌握情況。

在這里呢,我簡單的羅列一些涉及到的技術(shù)和概念,這些內(nèi)容對于我們測試產(chǎn)品,都是非常有幫助的。

DNS

TCP/IP

HTTP

SSL

Restful

HTML

DOM

CSS

Render

Xpath

服務(wù)器

nginx

SQL

Cookie&Session

XSS,CSRF

這里僅僅是涉及到一部分內(nèi)容,具體的內(nèi)容可以根據(jù)工作中遇到的場景去深入學(xué)習和了解。

6. 數(shù)據(jù)庫

之所以把數(shù)據(jù)庫單獨列出來,是因為數(shù)據(jù)庫的知識對于當今的很多產(chǎn)品都是非常核心的內(nèi)容。

不管是在手動測試還是自動化測試中,都有需要到數(shù)據(jù)庫進行數(shù)據(jù)校驗的時候。

目前主要使用的數(shù)據(jù)庫可以分為兩類:

關(guān)系型數(shù)據(jù)庫

非關(guān)系型數(shù)據(jù)庫

6.1 關(guān)系型數(shù)據(jù)庫

關(guān)系型數(shù)據(jù)庫是最常見的數(shù)據(jù)庫類型,這類數(shù)據(jù)庫通過RDBMS數(shù)據(jù)庫程序來進行管理和使用,常見的有SQL Server, MySQL等等。

關(guān)系型數(shù)據(jù)庫中強調(diào)一個事務(wù)(Transaction)的概念。所謂事務(wù)是用戶定義的一個數(shù)據(jù)庫操作系列,這些操作要么全部執(zhí)行,要么全部不執(zhí)行,是一個不可分割的工作單位。例如在關(guān)系數(shù)據(jù)庫中,一個事務(wù)可以是一條SQL語句、一組SQL語句或整個程序。

事務(wù)應(yīng)該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱為ACID特性。

原子性(Atomicity):事務(wù)作為一個整體被執(zhí)行,包含在其中的對數(shù)據(jù)庫的操作要么全部被執(zhí)行,要么都不執(zhí)行。

一致性(Consistency):事務(wù)應(yīng)確保數(shù)據(jù)庫的狀態(tài)從一個一致狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€一致狀態(tài)。一致狀態(tài)的含義是數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)滿足完整性約束。

隔離性(Isolation):多個事務(wù)并發(fā)執(zhí)行時,一個事務(wù)的執(zhí)行不應(yīng)影響其他事務(wù)的執(zhí)行。

持久性(Durability):一個事務(wù)一旦提交,他對數(shù)據(jù)庫的修改應(yīng)該永久保存在數(shù)據(jù)庫中。

對于實際的應(yīng)用來說,SQL語言是必須要掌握的。能夠通過SQL語句在數(shù)據(jù)庫中找到需要的數(shù)據(jù),是測試工程師必備的技能。SQL語句的語法大體上比較類似,在一些細節(jié)上不同的RDBMS會有些許的差別。

對于自動化實現(xiàn)來說,在自動化測試中通過訪問數(shù)據(jù)庫來獲得期望值也是很常見的場景。不同的語言都有訪問數(shù)據(jù)庫的庫,整體來說應(yīng)用也很簡單。

6.2 非關(guān)系型數(shù)據(jù)庫

隨著互聯(lián)網(wǎng)中大量的非結(jié)構(gòu)化數(shù)據(jù)的產(chǎn)生,例如社交網(wǎng)絡(luò)等等應(yīng)用,用戶的個人信息,社交網(wǎng)絡(luò),地理位置,用戶生成的數(shù)據(jù)和用戶操作日志已經(jīng)正在以幾何級數(shù)的速率增加,同時還面臨大量的數(shù)據(jù)挖掘工作,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫已經(jīng)無法滿足。所以NoSQL漸漸的發(fā)展了起來。

NoSQL最突出的特點就是數(shù)據(jù)的非結(jié)構(gòu)化,通俗的講,就是數(shù)據(jù)不再是以列和行這樣的形式存儲的。

NoSQL存儲數(shù)據(jù)的方式很多:值對存儲,列存儲,文檔存儲。

例如比較常見的MongoDB就是將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=》value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。

6.3 RDBMS vs NoSQL

RDBMS

高度組織化結(jié)構(gòu)化數(shù)據(jù)

結(jié)構(gòu)化查詢語言(SQL) (SQL)

數(shù)據(jù)和關(guān)系都存儲在單獨的表中。

數(shù)據(jù)操縱語言,數(shù)據(jù)定義語言

嚴格的一致性

基礎(chǔ)事務(wù)

NoSQL

代表著不僅僅是SQL

沒有聲明性查詢語言

沒有預(yù)定義的模式:鍵 - 值對存儲,列存儲,文檔存儲,圖形數(shù)據(jù)庫

最終一致性,而非ACID屬性

非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù)

CAP定理

高性能,高可用性和可伸縮性

7. 業(yè)務(wù)知識

對于測試工程師來說,所測試產(chǎn)品的業(yè)務(wù)知識也是非常重要的。

一個測試工程師可能已經(jīng)具備了上述的所有技能,但是怎么把這些技能用來解決我們最先提到的軟件測試的核心問題呢?這個里面的關(guān)鍵,或者說中心點,就是你所測試的產(chǎn)品的業(yè)務(wù)。

測試的方法,規(guī)劃,實施方法都是多種多樣的,如果在這些方法中進行選擇,所依賴的正是對產(chǎn)品的業(yè)務(wù)的深刻理解。

這里的產(chǎn)品業(yè)務(wù)不僅僅指產(chǎn)品的特性,同時還包括了產(chǎn)品的用戶特征,用戶的使用習慣,以及由此帶來的對產(chǎn)品的流量趨勢。也可以說,測試人員必須要站在用戶的角度來分析產(chǎn)品,而不是產(chǎn)品開發(fā)人員的角度。

測試人員還需要找到產(chǎn)品的核心功能和核心業(yè)務(wù),通過這樣的分析來進行測試優(yōu)先級的劃分,以及缺陷的定級。同時對于自動化測試的規(guī)劃和架構(gòu)也有著重要的影響。例如在自動化測試中要首先覆蓋那些核心的業(yè)務(wù)和功能,同時根據(jù)業(yè)務(wù)的特性,用自動化的方法去模擬用戶的使用場景,把有限的自動化資源投入到最關(guān)鍵的部分。

這一塊技能聽起來可能很虛,好像沒有什么具體的知識點,但是在不斷的工作和總結(jié)中,優(yōu)秀的測試工程師是能夠總結(jié)出一套符合某一類產(chǎn)品的測試方法的,甚至還可以提煉出一些更具備通用性的best practice,用到不同的產(chǎn)品中。

說在最后

或者這樣一篇短短的文章無法涵蓋軟件測試的內(nèi)涵,但是筆者也只是想拋磚引玉,讓讀者能夠通過這樣一種不能算全面的梳理,結(jié)合自己的工作經(jīng)驗,對自己所從事的軟件測試工作有一個更深的理解。

筆者計劃根據(jù)這篇文章所列出的技能樹,分別寫文章進行更加細致的梳理和總結(jié),希望能夠和各位同行一起學(xué)習,一起進步,同時非常歡迎大家指正我的錯誤和不足。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 測試工程師
    +關(guān)注

    關(guān)注

    6

    文章

    127

    瀏覽量

    12976
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    “沒什么可測”時,測試工程師可以做什么?

    作為軟件測試工程師,應(yīng)該都有過這樣的經(jīng)歷:開發(fā)人員還在編碼中,看板上沒有待測試的任務(wù),沒有即將發(fā)布的版本,也沒有回歸測試的要求...特別
    的頭像 發(fā)表于 09-12 10:03 ?330次閱讀
    “沒什么可測”時,<b class='flag-5'>測試工程師</b>可以做什么?

    招鑲?cè)胧?b class='flag-5'>工程師1,硬件工程師,

    東莞市研生科技有限公司是家藍牙方案公司,主營藍牙方案的設(shè)計開發(fā),產(chǎn)品包括藍牙BLE/4G透傳/AI智能體方案開發(fā),因公司發(fā)展需要需對外招聘嵌入式軟件開發(fā)工程師,對藍牙音頻/BLE以及
    發(fā)表于 08-29 02:14

    嵌入式工程師的進階之路

    嵌入式工程師的進階之路 ()初級工程師(0-3 年)核心技能: 單片機開發(fā):STM32F103系列 GPIO/USART/SPI 外設(shè)驅(qū)動,能完成 LED 呼吸燈、按鍵檢測、串口通
    發(fā)表于 08-13 11:08

    盤點嵌入式就業(yè)所需要技能有哪些?

    良好的溝通能力和團隊合作精神,能夠與不同領(lǐng)域的工程師協(xié)作。 綜上所述,嵌入式行業(yè)的就業(yè)方向豐富多樣,不同行業(yè)對嵌入式技術(shù)的需求也各有側(cè)重。因此,嵌入式工程師需要根據(jù)不同的就業(yè)方向,學(xué)習和掌握相關(guān)的
    發(fā)表于 08-11 15:43

    優(yōu)秀的射頻測試工程師需要具備哪些技能?

    優(yōu)秀的射頻測試工程師需要具備哪些技能?在無線技術(shù)高速發(fā)展的今天,射頻(RF)
    的頭像 發(fā)表于 05-16 10:08 ?1139次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b>優(yōu)秀的射頻<b class='flag-5'>測試工程師</b><b class='flag-5'>需要</b><b class='flag-5'>具備</b>哪些<b class='flag-5'>技能</b>?

    問,成為硬件工程師需要幾只手?#硬件工程師 #YXC晶振 #揚興科技 #搞笑

    硬件工程師
    揚興科技
    發(fā)布于 :2025年04月25日 17:15:37

    硬件工程師手冊(全套)

    §1.2.1 硬件工程師職責 技術(shù)領(lǐng)先、運行可靠的硬件平臺是公司產(chǎn)品質(zhì)量的基礎(chǔ),硬件工程師職 責神圣,責任重大。yf-f4-06-cjy 1、硬件
    發(fā)表于 04-22 15:05

    如何成為名嵌入式軟件工程師?

    如何成為名嵌入式軟件工程師? 01明確崗位的角色與定位 嵌入式軟件工程師主要負責開發(fā)運行在特定硬件平臺上的軟件,這些軟件通常與硬件緊密集
    發(fā)表于 04-15 14:37

    Allegro工程師能力升級建議 工程師技能如何升級進階

    根據(jù)Cadence認證體系及中國企業(yè)需求,Allegro工程師能力分三級,分別是初級、中級、高級工程師。那么這三種工程師技能如何升級進階? ? 1、初級
    的頭像 發(fā)表于 03-31 11:39 ?1054次閱讀

    嵌入式軟件工程師就業(yè)好不好?

    的發(fā)展機遇。 無年齡危機 嵌入式軟件工程師需要跨學(xué)科學(xué)習、跨行業(yè)應(yīng)用、多技能儲備以及終身學(xué)習,這意味著他們直處于知識和技能的積累狀態(tài)。
    發(fā)表于 02-20 10:19

    如何成為嵌入式開發(fā)工程師

    如何成為嵌入式開發(fā)工程師? 成為嵌入式開發(fā)工程師通常需要掌握系列技能和知識,并且在實踐中不斷積累經(jīng)驗。以下是
    發(fā)表于 02-19 10:39

    年薪30萬的嵌入式工程師,究竟需要掌握哪些技能?

    隨著智能硬件、物聯(lián)網(wǎng)、智能汽車、自動化控制等領(lǐng)域的迅速發(fā)展,嵌入式工程師的需求也水漲船高。尤其是在全球化和技術(shù)加速的時代,嵌入式開發(fā)不僅是熱門行業(yè),還是跨學(xué)科技術(shù)與創(chuàng)新的交匯點。對于那些
    的頭像 發(fā)表于 01-16 10:59 ?1745次閱讀
    年薪30萬的嵌入式<b class='flag-5'>工程師</b>,究竟<b class='flag-5'>需要</b>掌握哪些<b class='flag-5'>技能</b>?

    嵌入式工程師常用的開發(fā)工具有哪些?

    、集成開發(fā)環(huán)境(IDE) IDE是嵌入式開發(fā)的核心工具之。例如 Keil MDK,它支持多種微控制器架構(gòu),提供了強大的代碼編輯、編譯、調(diào)試功能。工程師可以在
    發(fā)表于 12-20 15:29

    電力電子工程師拿到50W以上的年薪需要具備哪些技能

    高薪電力電子工程師需要具備技能
    的頭像 發(fā)表于 11-05 09:44 ?1232次閱讀
    電力電子<b class='flag-5'>工程師</b>拿到50W以上的年薪<b class='flag-5'>需要</b><b class='flag-5'>具備</b>哪些<b class='flag-5'>技能</b>