卓木木收藏
美美m(xù)eme
1、為什么要在一個團(tuán)隊中開展軟件測試工作?
因為沒有經(jīng)過測試的軟件很難在發(fā)布之前知道該軟件的質(zhì)量,就好比ISO質(zhì)量認(rèn)證一樣,測試同樣也需要質(zhì)量的保證,這個時候就需要在團(tuán)隊中開展軟件測試的工作。在測試的過程發(fā)現(xiàn)軟件中存在的問題,及時讓開發(fā)人員得知并修改問題,在即將發(fā)布時,從測試報告中得出軟件的質(zhì)量情況。
2、您所熟悉的軟件測試類型都有哪些?
測試類型有:功能測試,性能測試,界面測試。
功能測試在測試工作中占的比例最大,功能測試也叫黑盒測試。
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。
界面測試,界面是軟件與用戶交互的最直接的層,界面的好壞決定用戶對軟件的第一印象。
3、您認(rèn)為做好測試用例設(shè)計工作的關(guān)鍵是什么?
白盒測試用例設(shè)計的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果黑盒用例設(shè)計的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內(nèi)發(fā)現(xiàn)最多的問題
軟件的黑盒測試意味著測試要在軟件的接口處進(jìn)行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試主要是為了發(fā)現(xiàn)以下幾類錯誤:
1、是否有不正確或遺漏的功能?
2、在接口上,輸入是否能正確的接受?能否輸出正確的結(jié)果?
3、是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?
4、性能上是否能夠滿足要求?
5、是否有初始化或終止性錯誤?
軟件的白盒測試是對軟件的過程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試。通過在不同點檢查程序狀態(tài),確定實際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試主要是想對程序模塊進(jìn)行如下檢查:
1、對程序模塊的所有獨立的執(zhí)行路徑至少測試一遍。
2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
3、在循環(huán)的邊界和運行的界限內(nèi)執(zhí)行循環(huán)體。
4、測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。4、驗收測試是部署軟件之前的最后一個測試操作。驗收測試的目的是確保軟件準(zhǔn)備就緒,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務(wù)。驗收測試是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計把所有的模塊組裝成一個完整的軟件系統(tǒng),接口錯誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗證軟件的有效性,這就是驗收測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。

九尾小妖
軟件工程崗位面試大致可分為兩類:特定領(lǐng)域知識面試和計算機科學(xué)基礎(chǔ)知識面試特定領(lǐng)域知識面試特定領(lǐng)域知識面試通常涉及到你最熟悉的技術(shù)領(lǐng)域的具體知識點。例如,如果你主要使用進(jìn)行前端開發(fā),并且面試公司又有 Angular前端,那他們就可能問你關(guān)于 Angular控制器、指令和服務(wù)的相關(guān)內(nèi)容。也就是說,你需要做好準(zhǔn)備去建立、展示和討論Angular。特定領(lǐng)域的面試重點關(guān)注的是你已經(jīng)實際構(gòu)建起來的東西,因此要想順利通過這些面試,最好是你已經(jīng)構(gòu)建過相關(guān)技術(shù)的項目。你應(yīng)該為自己的工作而感到自豪,不必感覺不好意思,而應(yīng)該深入探討具體項目的技術(shù)細(xì)節(jié)。項目最好是近階段完成的,沒人會愿意去聽你去年寫的那些代碼,你自己也會對這種陳舊的項目感覺厭倦,面試效果也欠佳。特定領(lǐng)域面試的另一個常見策略是看求職者能否構(gòu)建一些非常棒的產(chǎn)品或者是排除實際存在的一些問題和故障。這通常是讓求職者帶回家去完成的一種測試,求職者一般有 24-48個小時的時間來完成這些測試。例如,如果你是一名 Laravel開發(fā)人員,并且你面試的公司恰好也使用 Laravel,那他們可能會要求你構(gòu)建公司產(chǎn)品或者是公司定期創(chuàng)建的產(chǎn)品的微縮版本。對于這種帶回家做的測試,做好投入大量工作的心理準(zhǔn)備。準(zhǔn)備好啟動模板,不要抗拒去Google搜索答案,發(fā)送電子郵件尋求幫助和使用外部工具包這些做法。因為能否通過特定領(lǐng)域面試最重要的一個衡量標(biāo)準(zhǔn)是你能否構(gòu)建出有效的產(chǎn)品。計算機科學(xué)基礎(chǔ)知識面試計算機科學(xué)和基礎(chǔ)編程面試明顯不同于上文所探討的特定領(lǐng)域面試。計算機科學(xué)和基礎(chǔ)編程面試是為了評估你解決問題的能力,更多的是關(guān)注找到最佳解決方案的能力,而不是簡單的去完成某些特定任務(wù)。因此,面試官通常也不會問關(guān)于你是誰、你過去的工作經(jīng)歷或者你構(gòu)建過的項目方面的問題。對于計算機科學(xué)基礎(chǔ)面試這一類型來說,面試官的工作就是評估你的原始編程能力,通常他們是通過數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的問題來進(jìn)行評估。計算機科學(xué)基礎(chǔ)面試的問題有章法可循。因為學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法需要大量的準(zhǔn)備工作和長時間的學(xué)習(xí),你需要了解你所選擇的編程語言、數(shù)據(jù)結(jié)構(gòu)和算法來解決問題。計算機科學(xué)基礎(chǔ)知識面試通??梢杂昧N不同類型的算法來解決:深度優(yōu)先搜索算法/廣度優(yōu)先搜索算法貪心算法滑動窗口算法分治算法遞歸算法動態(tài)規(guī)劃算法你需要研究每一種算法,可以在 Pramp上與其他軟件工程師一起練習(xí)面試和面試問題。應(yīng)對面試是一門獨立于軟件工程師之外的技能,你可以通過練習(xí)和重復(fù)來提升自己在面試時的表現(xiàn)。計算機科學(xué)基礎(chǔ)知識面試通常遵循的那些問題結(jié)構(gòu)對于求職者來說只有通過幾個小時的練習(xí)和準(zhǔn)備才能發(fā)現(xiàn)。即便這些知識中的一部分并不適用于日常的編程任務(wù),但只要你堅持這樣做,你就能抓住更多的面試機會,就能收到更多公司發(fā)來的 offer。如果你的目標(biāo)是獲得更多的工作機會,那你一定要看一下《Cracking The Coding Interview》這本書,并且查看這一免費的面試資源來進(jìn)行相應(yīng)的準(zhǔn)備工作。
優(yōu)質(zhì)工程師考試問答知識庫