- 相關(guān)推薦
軟件測試面試筆試題完全版
一、測試總體
1. 什么是軟件測試?
答:為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程
2. 軟件測試的目的?
答:首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產(chǎn)生的原因和錯誤的分布特征,可以幫助項目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過程的缺陷,以便改進(jìn)。同時,這種分析也能幫助我們設(shè)計出有針對性地檢測方法,改善測試的有效性。
其次,沒有發(fā)現(xiàn)錯誤的測試也是有價值的,完整的測試是評定測試質(zhì)量的一種方法。詳細(xì)而嚴(yán)謹(jǐn)?shù)目煽啃栽鲩L模型可以證明這一點。
測試的目的是按照用戶所需軟件的質(zhì)量,檢查開發(fā)軟件過程出現(xiàn)的bug, 使得開發(fā)人員及時修改,可以避免在開發(fā)結(jié)束的時候發(fā)現(xiàn)軟件存在質(zhì)量問題,避免公司不必要的損失。贏得用戶對公司產(chǎn)品的認(rèn)可。
測試的目的是以最少人力、物力和時間找出軟件中潛在各種錯誤和缺陷,通過修正種錯誤和缺陷提高軟件質(zhì)量,回避軟件發(fā)布后由于潛在的軟件缺陷和錯誤造成的隱患帶來的商業(yè)風(fēng)險。
測試的附帶收獲是,它能夠證明軟件的功能和性能與需求說明相符合。實施測試收集到的測試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。測試不能表明軟件中不存在錯誤,它只能說明軟件中存在錯誤。
3. 軟件測試的目標(biāo)
答:發(fā)現(xiàn)盡可能多的錯誤。測試是一個為了尋找錯誤而運行程序的過程。一個好的測試案例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例。一個成功的測試是指揭示了迄今為止尚未發(fā)現(xiàn)的錯誤的測試。
4. 軟件測試的原則
1) 應(yīng)當(dāng)把"盡早地和不斷地進(jìn)行軟件測試"作為軟件開發(fā)者的座右銘。
2) 測試用例應(yīng)由測試輸入數(shù)據(jù)和對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。
3) 程序員應(yīng)避免檢查自己的程序。
4) 在設(shè)計測試用例時,應(yīng)包括合理的輸入條件和不合理的輸入條件。
5) 軟件測試的原則
6) 充分注意測試中的群集現(xiàn)象。經(jīng)驗表明,測試后程序中殘存的錯誤數(shù)目與該程序中已發(fā)現(xiàn)的錯誤數(shù)目成正比。
7) 嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。
8) 應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查。
9) 妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。
5. 測試的職責(zé)
測試經(jīng)理:
1、制定測試計劃。
2、確保測試過程正常進(jìn)行。
測試工程師
1、編寫測試用例
2、搭建測試環(huán)境
3、執(zhí)行測試
6. 軟件都有多少種分類?
答:根據(jù)功能的不同,電腦軟件可以粗略地分成四個層次:
最貼近電腦硬件的是一些小巧的軟件。它們實現(xiàn)一些最基本的功能,通常"固化"在只讀存儲器芯片中,因此稱為固件。
系統(tǒng)軟件包括操作系統(tǒng)和編譯器軟件等。系統(tǒng)軟件和硬件一起提供一個"平臺"。它們管理和優(yōu)化電腦硬件資源的使用。
支持軟件。包括圖形用戶界面、軟件開發(fā)工具、軟件評測工具、數(shù)據(jù)庫管理系統(tǒng)、中間件等。
應(yīng)用軟件種類最多,包括辦公軟件、電子商務(wù)軟件、通信軟件、行業(yè)軟件,游戲軟件等等。
7. 測試的主要方面
答:A、功能測試:a、鏈接測試b、表單測試c、Cookies 測試d、設(shè)計語言測試e、數(shù)據(jù)庫測試
B、性能測試:a、連接速度測試b、負(fù)載測試c、壓力測試
C、接口測試:a、服務(wù)器接口b、外部接口c、錯誤處理
D、可用性測試: a、導(dǎo)航測試b、圖形測試c、內(nèi)容測試d、整體界面測試
E、兼容性測試:a、平臺測試b、瀏覽器測試c、視頻測試d、Modem/連接速率測試f、打印機(jī)測試g、組合測試
F、安全測試:a、目錄設(shè)置b、登錄c、Session d、日志文件e、加密f、安全漏洞
G、代碼合法性測試:a、程序代碼合法性檢查b、顯示代碼合法性檢查
H、文檔測試:
8. 軟件測試的對象
答:軟件測試并不等于程序測試。軟件測試應(yīng)貫穿于軟件定義與開發(fā)的整個期間。需求分析、概要設(shè)計、詳細(xì)設(shè)計以及程序編碼等各階段所得到的文檔,包括需求規(guī)格說明、概要設(shè)計規(guī)格說明、詳細(xì)設(shè)計規(guī)格說明以及源程序,都應(yīng)成為軟件測試的對象
9. 什么是"測試案例"?
答:測試案例是一份文檔,它描述了一個輸入、反應(yīng)、或者是與其相應(yīng)的預(yù)期的響應(yīng),以便來判斷應(yīng)用軟件的工作是否正常。測試案例應(yīng)當(dāng)包括測試標(biāo)識、測試案例的名稱、目標(biāo)、測試條件/設(shè)置、輸入數(shù)據(jù)要求、步驟、以及預(yù)期的結(jié)果。
注:開發(fā)一個應(yīng)用軟件的測試案例的過程,需要全面、深入地考慮該軟件的操作,所以有助于發(fā)現(xiàn)在其需求或設(shè)計里面的問題。因此,如果有可能,在開發(fā)周期中應(yīng)當(dāng)盡早準(zhǔn)備測試案例。
10. 怎么編寫案例?
答:案例的編寫與測試階段的定義有很大的關(guān)系。系統(tǒng)測試和unit 測試的案例可能不同?傮w而言測試案例根據(jù)系統(tǒng)的需求而定。
11. 軟件測試的兩種方法
答:黑盒測試和白盒測試
黑盒:這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。黑盒測試又叫做功能測試或數(shù)據(jù)驅(qū)動測試。
白盒:此方法把測試對象看做一個透明的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試。通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。
12. 測試結(jié)束的標(biāo)準(zhǔn)是什么?
答:1.用例全部執(zhí)行。2.覆蓋率達(dá)到標(biāo)準(zhǔn)。3.缺陷率達(dá)到標(biāo)準(zhǔn)。4.其他指標(biāo)達(dá)到質(zhì)量標(biāo)準(zhǔn)
13. 軟件的生命周期
答:軟件生命周期是指一個計算機(jī)軟件從功能確定、設(shè)計,到開發(fā)成功投入使用,并在使用中不斷地修改、增補(bǔ)和完善,直到停止該軟件的使用的全過程(從醞釀到廢棄的過程)
14. 什么是軟件的生命周期?
生命周期從收到應(yīng)用軟件開始算起,到該軟件不再使用為止。它有如下各方面的內(nèi)容:
初始構(gòu)思、需求分析、功能設(shè)計、內(nèi)部設(shè)計、文檔計劃、測試計劃、文檔準(zhǔn)備、集成、測試、維護(hù)、升級、再測試、逐步淘汰(phase-out)、等等。
15. 軟件測試按過程分為三個步驟
答:單元測試:單元測試又稱模塊測試,是針對軟件設(shè)計的最小單位─ 程序模塊,進(jìn)行正確性檢驗的測試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯。
單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例。多個模塊可以平行地獨立進(jìn)行單元測試。
集成測試:在運行(可能是不完整)的應(yīng)用中保證軟件單元被結(jié)合后能正常操作的測試執(zhí)行的階段
系統(tǒng)測試:當(dāng)應(yīng)用作為整體運行時的測試執(zhí)行階段
16. 面向?qū)ο蟮脑O(shè)計如何影響測試?
答:好的面向?qū)ο蟮墓こ淘O(shè)計使得從代碼追溯內(nèi)部設(shè)計、再到功能測試,最后追溯到需求,成為一件容易的事。因為它對黑盒測試的影響很少(不需要了解應(yīng)用軟件的內(nèi)部設(shè)計) ,而白盒測試只需針對該應(yīng)用軟件的對象。如果該應(yīng)用軟件設(shè)計得好,就可簡化測試設(shè)計。
17. 軟件帶來錯誤的原因很多。主要的原因有哪些?
1) 交流不夠、交流上有誤解或者根本不進(jìn)行交流
2) 軟件復(fù)雜性
3) 程序設(shè)計錯誤
4) 需求變化
5) 時間壓力
6) 代碼文檔貧乏
7) 軟件開發(fā)工具
18. 軟件測試的步驟是什么?
1) 測試過程按4 個步驟進(jìn)行,即單元測試(Unit Testing)、集成測試(Integrated Testing)、確認(rèn)測試(Validation Testing)和系統(tǒng)測試(System Testing)及發(fā)版測試。
2) 開始是單元測試,集中對用源代碼實現(xiàn)的每一個程序單元進(jìn)行測試,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能。
3) 集成測試把已測試過的模塊組裝起來,主要對與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測試。
4) 確認(rèn)測試則是要檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。
19. 如何錄制測試腳本?
1) 新建一個腳本(Web/HTML 協(xié)議)
2) 點擊錄制按鈕,在彈出的對話框的URL 中輸入"about:blank"。
3) 在打開的瀏覽器中進(jìn)行正常操作流程后,結(jié)束錄制。
4) 調(diào)試腳本并保存?赡芤⒁獾阶址年P(guān)聯(lián)。
5) 設(shè)置測試場景
6) 針對性能設(shè)置測試場景,主要判斷在正常情況下,系統(tǒng)的平均事務(wù)響應(yīng)時間是否達(dá)標(biāo)
7) 針對壓力負(fù)載設(shè)置測試場景,主要判斷在長時間處于滿負(fù)荷或者超出系統(tǒng)承載能力的條件下,系統(tǒng)是否會崩潰
20. 完全測試是不可能的,必須對測試的各項進(jìn)行等價劃分。
1.概念
等價分配:軟件有無限的測試案例,我們要想辦法把軟件的相似輸入、輸出、操作分成一組,來使無限的測試案例減小到同樣有效的小范圍,這個過程稱為等價分配。
邊界條件:軟件計劃的操作界限所在的邊緣條件,即如果超出這個邊界條件,就可能會引出錯誤。
2 原因
輸入量太大
輸出結(jié)果太多
軟件實現(xiàn)途徑太多
軟件說明書沒有客觀標(biāo)準(zhǔn)。從不同的角度看,軟件缺陷的標(biāo)準(zhǔn)不同。
3 方法
(1)數(shù)據(jù)測試:
1) 確定輸入的邊界條件,對邊界線上的及邊界線兩邊的數(shù)據(jù)進(jìn)行測試;
2) 邊界線可能是2 的乘方,默認(rèn)值、空白值、零值等;每一個軟件測試問題各不相同,
可能包含格式各樣邊界的不同數(shù)據(jù)。
(2)狀態(tài)測試(軟件的狀態(tài)是指軟件當(dāng)前所處的情況或者模式)
1) 每種狀態(tài)至少訪問一次;
2) 測試看起來最常見最普遍的狀態(tài)轉(zhuǎn)換;
3) 測試狀態(tài)之間最不常用的分支;
4) 測試所有錯誤狀態(tài)及其返回值;
5) 測試隨機(jī)狀態(tài)轉(zhuǎn)換。
21. 應(yīng)該考慮進(jìn)行如何測試的測試方法
黑盒測試(Black box testing) ── 不考慮內(nèi)部設(shè)計和代碼,根據(jù)需求和功能進(jìn)行測試。
白盒測試(White box testing) ── 根據(jù)應(yīng)用軟件的代碼的內(nèi)部邏輯,按照代碼的語句、分支、路徑和條件進(jìn)行測試。
功能測試(functional testing)--對一個應(yīng)用軟件的功能模塊進(jìn)行黑盒測試。這種測試應(yīng)當(dāng)由測試人員進(jìn)行。但這并不意味著程序員在推出軟件之前不進(jìn)行代碼檢查。(這一原則適用于所有的測試階段。)
系統(tǒng)測試── 針對全部需求說明進(jìn)行黑盒測試,包括系統(tǒng)中所有的部件。
回歸測試(regression testing) ── 每當(dāng)軟件經(jīng)過了整理、修改、或者其環(huán)境發(fā)生變化,都重復(fù)進(jìn)行測試。很難說需要進(jìn)行多少次回歸測試,特別是是到了開發(fā)周期的最后階段。進(jìn)行此種測試,特別適于使用自動測試工具。
負(fù)荷試驗(load testing) ── 在大負(fù)荷條件下對應(yīng)用軟件進(jìn)行測試。例如測試一個網(wǎng)站在不同負(fù)荷情況下的狀況,以確定在什么情況下系統(tǒng)響應(yīng)速度下降或是出現(xiàn)故障。
壓力測試(stress testing) ── 經(jīng)常可以與"負(fù)荷測試"或"性能測試"相互代替。這種測試是用來檢查系統(tǒng)在下列條件下的情況:在非正常的巨大負(fù)荷下、某些動作和輸入大量重復(fù)、輸入大數(shù)、對數(shù)據(jù)庫進(jìn)行非常復(fù)雜的查詢,等等。
性能測試(performance testing) ── 經(jīng)?梢耘c"壓力測試"或"負(fù)荷測試"相互代替。理想的"性能測試"(也包括其他任何類型的測試) 都應(yīng)在質(zhì)量保障和測試計劃的文檔終予以規(guī)定。
可用性測試(usability testing) ── 是專為"對用戶友好"的特性進(jìn)行測試。這是一種主觀的感覺,取決于最終用戶或顧客?梢赃M(jìn)行用戶會見、檢查、對用戶會議錄像、或者使用其他技術(shù)。程序員和測試人員通常不參加可用性測試。
安裝/卸載測試(install/uninstall testing) ── 對安裝/卸載進(jìn)行測試(包括全部、部分、升級操作)。
安全測試(security testing) ── 測試系統(tǒng)在應(yīng)付非授權(quán)的內(nèi)部/外部訪問、故意的損壞時的防護(hù)情況。這需要精密復(fù)雜的測試技術(shù)。
兼容性測試(compatability testing) ── 測試在特殊的硬件/軟件/操作系統(tǒng)/網(wǎng)絡(luò)環(huán)境下的軟件表現(xiàn)。
α 測試(alpha testing) ── 在開發(fā)一個應(yīng)用軟件即將完成時所進(jìn)行的測試。此時還允許有較小的設(shè)計修改。通常由最終用戶或其他人進(jìn)行這種測試,而不是由程序員和測試人員來進(jìn)行。
β 測試(beta testing) ── 當(dāng)開發(fā)和測試已基本完成,需要在正式發(fā)行之前最后尋找毛病而進(jìn)行的測試。通常由最終用戶或其他人進(jìn)行這種測試,而不是由程序員和測試人員來進(jìn)行。
22. 怎樣估計測試工作量?
效率假設(shè):即測試隊伍的工作效率。對于功能測試,這主要依賴于應(yīng)用的復(fù)雜度,
窗口的個數(shù),每個窗口中的動作數(shù)目。對容量測試,主要依賴于建立測試所需數(shù)據(jù)的工作量大小。
測試假設(shè):為了驗證一個測試需求所需測試動作數(shù)目。
應(yīng)用的維數(shù):應(yīng)用的復(fù)雜度指標(biāo)。例如要加入一個記錄,測試需求的維數(shù)就是這個記錄中域的數(shù)目。
所處測試周期的階段:有些階段主要工作都在設(shè)計,有些階段主要是測試執(zhí)行。
23. 測試設(shè)計的問題
1) 不做測試設(shè)計,測試過程也是胡亂建立的。
2) 測試設(shè)計不詳細(xì),不是基于可量度的測試策略,例如測試計劃覆蓋一個集合或者測試需求的一個子集。
3) 測試過程沒有采用最好的技術(shù)來檢驗Windows C/S 結(jié)構(gòu)的測試需求
4) 測試用例的選擇規(guī)則
5) 選擇與測試需求的實質(zhì)部分最相關(guān)的測試用例。
6) 選擇的測試用例應(yīng)該不容易應(yīng)用程序的改變的影響。
24. 當(dāng)測試過程發(fā)生錯誤時,有哪幾種解決辦法?
1) 跳轉(zhuǎn)到別的測試過程
2) 調(diào)用一個能夠清除錯誤的過程
3) 退出過程,啟動另一個
4) 退出過程和應(yīng)用程序,重新啟動啟動Windows,在失敗的地方重新開始測試
25. 測試執(zhí)行的問題
1) 自動化測試沒有有效的利用,使得手工測試太多。
2) 測試結(jié)果的捕獲沒有系統(tǒng)性,而且沒有查看或調(diào)查
3) 缺陷報告必須用手工加入缺陷跟蹤系統(tǒng)
錯誤分類
1、測試用例失敗
正常錯誤
2、腳本命令失敗
當(dāng)測試過程不能不能執(zhí)行錄制過程中的某個功能時,回產(chǎn)生這種錯誤,如鼠標(biāo)單擊按鈕或選擇菜單項等。它也能指示是缺陷還是測試過程的設(shè)計問題。
3、致命錯誤
導(dǎo)致測試停止,這種情況最好重起Windows。
具體步驟:
1) 建立測試系統(tǒng)
2) 準(zhǔn)備測試過程
3) 運行初始化過程
4) 執(zhí)行測試
5) 從終止的測試恢復(fù)
6) 驗證預(yù)期結(jié)果
7) 調(diào)查突發(fā)結(jié)果
8) 記錄缺陷日記
【軟件測試面試筆試題完全版】相關(guān)文章:
軟件測試面試題11-06
軟件測試英文面試題07-26
軟件測試 試題12-12
軟件測試類英文面試題08-08
軟件測試面試02-16
軟件測試筆試題11-03
軟件測試筆試題目12-11
軟件測試筆試題及答案02-10
軟件測試筆試題201511-24
中興軟件測試筆試題11-02