測試相關知識

2021-10-24 20:54:51 字數 2419 閱讀 4633

在我看來,測試開發工程師,是屬於測試的。

測試還是測試,只是在工作中會用到很多開發知識,codereview,單元測試加強,自動化測試,開發測試工具。測試最重要的是思想,開發技能只能是技術手段。

現在這個測試自動化極其重要。但如果是不懂測試的人,給測試開發工具,極有可能難用又沒效果,所以最好是有一批懂測試又擅長程式設計的人,來為測試人員開發工具。他們還是要去做測試工作的,不然的話,時間一長,脫離實踐太久。這種人,就叫做測試開發工程師。

測試開發工程師應該具備兩方面的知識:測試知識和開發知識。之所以把測試排在前面,因為這裡的開發建立在測試實踐基礎之上。其中測試知識又分為兩部分:一是理論知識,軟體行業發展至今也就幾十年,測試方面的積澱就更少了,所以要掌握這部分對於一般人來說不是難事;另外一方面是經驗知識,主要在專案測試過程中積累,很多系統的測試點、風險點都需要有豐富的經驗來評估,這也是資深的測試工程師價值所在。開發知識當然和開發工程師差不多了。

在軟素質方面,測試開發工程師應該具有更好的組織溝通協作能力。現在許多公司都在推行全流程保證,qa為了發揮更大的影響力以及保證專案的質量,需要從需求到設計,測試到上線全方面跟蹤參與,這就涉及到了許多跨部門跨小組的溝通,即便在小組內溝通也極其頻繁,工程師需要很好的表達能力。

單元測試(如j unit)

單元測試是對軟體組成單元進行測試,其目的是檢驗軟體基本組成單位的正確性,測試的物件是軟體設計的最小單位:函式、或者類。

專案中的測試類就是測試介面類的,屬於單元測試,一般由開發人員測試。

整合測試

整合測試也稱綜合測試、組裝測試、聯合測試,將程式模組採用適當的整合策略組裝起來,對系統的介面及整合後的功能進行正確性檢測的測試工作。其主要目的是檢查軟體單位之間的介面是否正確,整合測試的物件是已經經過單元測試的模組。

系統測試

系統測試是對整個系統的測試,將硬體、軟體、操作人員看作乙個整體,檢驗它是否有不符合系統說明書的地方,主要包括功能測試、介面測試、可靠性測試、易用性測試、效能測試。 功能測試主要針對包括功能可用性、功能實現程度(功能流程&業務流程、資料處理&業務資料處理)方面測試。在整合測試之後。

驗收測試

也稱交付測試,是針對使用者需求、業務流程進行的正式的測試,以確定系統是否滿足驗收標準,由使用者、客戶或其他授權機構決定是否接受系統。

驗收測試包括alpha測試和beta測試,alpha測試是由開發者進行的軟體測試,beta測試是由使用者在脫離開發環境下進行的軟體測試。

作為測試人員,第一件要做的事情就是去定位crash發生的**邏輯,到底是哪個檔案的哪一段函式邏輯導致了這個crash問題。因此,我們需要去盡量重現crash場景,收集解析crash日誌,以此定位到具體到遊戲**邏輯中尋找導致crash的原因,改善專案的質量和體驗。

一.crash產生的原因

- 1.1違反ios系統規則包括三種型別:

(1) 記憶體報警閃退

當ios檢測到記憶體過低時,它的vm系統會發出低記憶體警告通知,嘗試**一些記憶體;如果情況沒有得到足夠的改善,ios會終止後台應用以**更多記憶體;最後,如果記憶體還是不足,那麼正在執行的應用可能會被終止掉。在debug模式下,可以主動將客戶端執行的動作邏輯寫入乙個log檔案中,這樣程式童鞋可以將記憶體預警的邏輯寫入該log檔案,當發生如下截圖中的記憶體報警時,就是提醒當前客戶端效能記憶體吃緊,可以通過instruments工具中的allocations 和 leaks模組庫來發現記憶體分配問題和記憶體洩漏問題。

(2) 響應超時

(3) 使用者強制退出

一看到「使用者強制退出」,首先可能想到的雙擊home鍵,然後關閉應用程式。不過這種場景一般是不會產生crash日誌的,因為雙擊home鍵後,所有的應用程式都處於後台狀態,而ios隨時都有可能關閉後台程序,當應用阻塞介面並停止響應時這種場景才會產生crash日誌。

這裡指的「使用者強制退出」場景,是稍微比較複雜點的操作:先按住電源鍵,直到出現「滑動關機」的介面時,再按住home鍵,這時候當前應用程式會被終止掉,並且產生乙份相應事件的crash日誌。

- 1.2應用邏輯的bug

大多數閃退崩潰日誌的產生都是因為應用中的bug,這種bug的錯誤種類有很多,比如

sigabrt:收到abort訊號,可能自身呼叫abort()或者收到外部傳送過來的訊號;

sigill:嘗試執行非法的指令,可能不被識別或者沒有許可權;

sigpipe:管道另一端沒有程序接手資料;

常見的崩潰原因基本都是**邏輯問題或資源問題,比如陣列越界,訪問野指標或者美術資源不存在,或美術資源大小寫錯誤等,這種問題的型別有很多,不再詳細介紹。

測試相關知識三

web測試時,為什麼經常要求做相容性測試?雖然瀏覽器都是按照標準實現的,但是實現的時候會有差異,導致在某些場景下,相同html或者js 在不同的瀏覽器,或者相同瀏覽器不同版本上面表現不同。軟體測試時,什麼情況下需要去看系統日誌?1 測試最常見的 當系統出現了錯誤 bug,或者系統起不來啦 時,我們要...

AB測試相關知識

實驗設計過程 確定業務所需的metric 設定baseline的資料以及最低提公升期望 5 呼叫power analysis計算所需樣本 根據歷史樣本採集量,估算採集的時間 在資料進來的過程中,隨機分配到對照組和實驗組 對於比例型指標,可以使用t檢驗,如果對於平均值類的指標,可能滿足其他分布,則需要...

軟體測試相關知識

通過手工或自動化的手段來執行或測定某個軟體產品系統的過程,目的在於檢測軟體產品是否滿足規定的需求,或者弄清楚預期結果與實際結果之間的差別。測試軟體各個功能模組處理是否正確,業務邏輯是否正確,資料流轉 呈現 處理和儲存是否正確。測試使用者介面是否美觀,介面設計是否人性化 易操作,提示是否友好完善,不同...