軟件測試工程師筆試題及答案
測試工程師筆試題一、計算機知識(30分)1、 在Linux 系統(tǒng)中,一個文件的訪問權限是755,其含義是什么?參考答案:755表示該文件所有者對該文件具有讀、寫、執(zhí)行權限,該文件所有者所在組用戶及其他
測試工程師筆試題
一、計算機知識(30分)
1、 在Linux 系統(tǒng)中,一個文件的訪問權限是755,其含義是什么?
參考答案:
755表示該文件所有者對該文件具有讀、寫、執(zhí)行權限,該文件所有者所在組用戶及其他用戶對該文件具有讀和執(zhí)行權限。
2、 Linux 中,如何從root 用戶切換到普通用戶?
參考答案:su
su user1 切換到user1,但切換后的當前目錄還是root 訪問的目錄
su – user1 切換到user1,并且當前目錄切換到user1的根目錄下(/home/user1/)
3、 簡述一下C/S模式和B/S模式的區(qū)別?
參考答案:
c/s 是客戶端/服務器 架構
b/s 是瀏覽器/服務器 架構
C/S模式有以下特點:
1.C/S模式將應用與服務分離, 系統(tǒng)具有穩(wěn)定性和靈活性
2.C/S模式配備的是點對點的結構模式, 適用于局域網(wǎng), 有可靠的安全性
3. 由于客戶端實現(xiàn)與服務器端的直接連接, 沒有中間環(huán)節(jié), 因此響應速度快
4. 在C/S模式中, 作為客戶機的計算機都要安裝客戶機程序, 一旦軟件系統(tǒng)升級, 每臺客戶機都要安裝客戶機程序, 系統(tǒng)升級和維護較為復雜
B/S模式有以下特點:
1. 系統(tǒng)開發(fā)、維護、升級方便
每當服務器應用程序升級時,只要在服務器上升級服務應用程序即可,用戶計算機上的瀏覽器軟件不需要修改,系統(tǒng)開發(fā)和升級維護方便
2.B/S模式具有很強的開放性
在B/S模式下,用戶通過通用的瀏覽器進行訪問,系統(tǒng)開放性好
3.B/S模式的結構易于擴展
由于Web 的平臺無關性,B/S模式的結構可以任意擴展,可以從包含一臺服務器和幾個用戶的小型系統(tǒng)擴展成為擁有成千上萬個用戶的大型系統(tǒng)
4. 用戶使用方便
B/S模式的應用軟件都是基于Web 瀏覽器的,而Web 瀏覽器的界面是類似的。對于無用戶交換功能的頁面。用戶接觸的界面都是一致的,用戶使用方便
4、 Windows 操作系統(tǒng)中PATH 環(huán)境變量的作用是什么?
參考答案:
PATH 是Windows 操作系統(tǒng)環(huán)境變量,PATH 作用是用戶在命令行窗口執(zhí)行一個命令,則在PATH 變量設置的目錄下依次尋找該命令或?qū)膱?zhí)行文件,若找到,則執(zhí)行,若沒有找到,則命令行窗口返回無效命令。
5、 TCP 和UDP 有什么區(qū)別?
參考答案:
TCP-有連接, 所以握手過程會消耗資源, 過程為可靠連接, 不會丟失數(shù)據(jù), 適合大數(shù)據(jù)量交換


6、 DNS 是什么?它是如何工作的?
參考答案:
域名解析服務。用于將域名解析為IP ,或反和將IP 解析為域名。
客戶機可指定DNS 服務器來解析,或用本機hosts 文件進行解析。
7、 說出4種及以上常用的操作系統(tǒng)及其主要的應用范圍(微軟的操作系統(tǒng)除外)。 參考答案:
Linux (Red Hat、SUSE 、Debian 、Trubo Linux):主要用于搭建各類服務器
MAC OS:蘋果機的操作系統(tǒng),用于圖像處理
Unix (AIX :IBM 服務器的專用操作系統(tǒng);
Solaris :Sun 操作系統(tǒng);FreeBSD 、NetBSD )
8面向?qū)ο蟪绦蛟O計有哪些特點?
參考答案:
面向?qū)ο蟪绦蛟O計以需求當中的數(shù)據(jù)作為中心,來進行設計,具有良好的代碼重用性。 封裝性:也叫數(shù)據(jù)隱藏,用戶無需知道內(nèi)部工作流程,只要知道接口和操作就可以的,C 中一般用類來實現(xiàn)封裝。
繼承性: 一種支持重用的思想,在現(xiàn)有的類型派生出新的子類,例如新型電視機在原有型號的電視機上增加若干中功能而得到,新型電視機是原有電視機的派生,繼承了原有電視機的屬性,并增加了新的功能。
多態(tài)性:指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。
動態(tài)聯(lián)編:指一個計算機程序自身彼此關聯(lián)的過程,按照聯(lián)編所進行的階段不同,可分為兩種不同的聯(lián)編方法:靜態(tài)聯(lián)編和動態(tài)聯(lián)編。
9、一條軟件缺陷記錄都包含哪些內(nèi)容?
參考答案:
bug 編號
bug 發(fā)現(xiàn)人
bug 發(fā)現(xiàn)時間
bug 狀態(tài)
bug 嚴重程度
bug 所屬版本
bug 所屬模塊
bug 處理人
bug 修改日期
bug 簡單描述
bug 詳細描述
bug 相關附件
bug 初步分析
10、一套完整的測試應該由哪些階段組成?
參考答案:
,測試計劃、測試設計與開發(fā)、測試實施、測試評審與測試結論
二、測試知識(50分)
1、您以往所從事的軟件測試工作中,是否使用了一些工具來進行軟件缺陷(Bug )的管理?如果有,請結合該工具描述軟件缺陷(Bug )跟蹤管理的流程。(10分)
參考答案:
1. 拿到新版本
2. 進行測試發(fā)現(xiàn)BUG 后提交SUBMIT (測試)
3. 由相應人員置為NEW 的狀態(tài)
4. 修改BUG ,F(xiàn)IXED (開發(fā))(當然也有可能被判定為不是BUG 或者需要討論決定的)
5. 回歸測試,修改BUG 狀態(tài),F(xiàn)IXED VERIFIED或者REOPEN (測試)
6.REOPEN 的話開發(fā)繼續(xù)修改,F(xiàn)IXED VERIFIED的話由相應人員CLOSE 這個BUG 。
2、請試著比較一下黑盒測試、白盒測試、單元測試、集成測試、系統(tǒng)測試、驗收測試的區(qū)別與聯(lián)系。(10分)
參考答案:
黑盒測試:把測試對象當成一個黑盒子,測試人員完全不考慮邏輯結構和內(nèi)部特性,只依據(jù)程式的需求說明書來檢查程式的功能是否滿足它的功能說明。
白盒測試:把測試對象當成一個透明的盒子,允許測試人員利用程序內(nèi)部邏輯結構及相關信息,設計或選擇測試用例,對程式所有邏輯路徑進行測試。
單元測試:白盒測試的一種,對軟件設計中的單元模塊進行測試。
集成測試:在單元測試的基礎上,對單元模塊之間的連接和組裝w 進行測試。
系統(tǒng)測試:在所有都考慮的情況下,對系統(tǒng)進行測試。
驗收測試:第三方進行的確認軟件滿足需求的測試
3、你所熟悉的測試用例設計方法有哪些?分別以具體的例子說明在實際測試中的應用。(10分)
參考答案:
1.等價類劃分
劃分等價類: 等價類是指某個輸入域的子集合. 在該子集合中, 各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的. 并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試. 因此, 可以把全部輸入數(shù)據(jù)合理劃分為若干等價類, 在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件, 就可以用少量代表性的測試數(shù)據(jù). 取得較好的測試結果. 等價類劃分可有兩種不同的情況:有效等價類和無效等價類.
2.邊界值分析法
邊界值分析方法是對等價類劃分方法的補充。測試工作經(jīng)驗告訴我, 大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上, 而不是發(fā)生在輸入輸出范圍的內(nèi)部. 因此針對各種邊界情況設計測試用例, 可以查出更多的錯誤.
使用邊界值分析方法設計測試用例, 首先應確定邊界情況. 通常輸入和輸出等價類的邊界, 就是應著重測試的邊界情況. 應當選取正好等于, 剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù), 而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù).
3.錯誤推測法
基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.
錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況, 根據(jù)他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤. 以前產(chǎn)
,品測試中曾經(jīng)發(fā)現(xiàn)的錯誤等, 這些就是經(jīng)驗的總結. 還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況. 輸入表格為空格或輸入表格只有一行. 這些都是容易發(fā)生錯誤的情況. 可選擇這些情況下的例子作為測試用例.
4.因果圖方法
前面介紹的等價類劃分方法和邊界值分析方法, 都是著重考慮輸入條件, 但未考慮輸入條件之間的聯(lián)系, 相互組合等. 考慮輸入條件之間的相互組合, 可能會產(chǎn)生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類, 他們之間的組合情況也相當多. 因此必須考慮采用一種適合于描述對于多種條件的組合, 相應產(chǎn)生多個動作的形式來考慮設計測試用例. 這就需要利用因果圖(邏輯模型). 因果圖方法最終生成的就是判定表. 它適合于檢查程序輸入條件的各種組合情況.
4、畫出軟件測試的V 模型圖。(5分)
參考答案:
5、軟件的安全性應從哪幾個方面去測試?(5分)
參考答案:
(1)用戶認證機制:如數(shù)據(jù)證書、智能卡、雙重認證、安全電子交易協(xié)議
(2)加密機制
(3)安全防護策略:如安全日志、入侵檢測、隔離防護、漏洞掃描
(4)數(shù)據(jù)備份與恢復手段:存儲設備、存儲優(yōu)化、存儲保護、存儲管理
(5)防病毒系統(tǒng)
6、描述軟件產(chǎn)生內(nèi)存泄露的原因以及檢查方式。(可以結合一種開發(fā)語言進行描述)(5分) 參考答案:
內(nèi)存泄露的原因,主要是由于開發(fā)過程當中申請了計算機資源(例如對象、內(nèi)存等),但是使用資源完成以后沒有及時釋放資源導致的。例如在C 語言當中使用了malloc 申請了內(nèi)存,但是未使用free 來釋放內(nèi)存。
7、簡述軟件自動化測試工具的原理。(5分)
參考答案:
測試工具的優(yōu)勢在于可部分地替代人工的測試過程,通過測試工具來模擬人的手工操作,這個過程中會記錄操作的對象和操作的順序,然后在回放時按照錄制的順序操作這些對象。 能重復不斷地執(zhí)行,能精確判斷數(shù)值和字符對象。自動化測試工具把測試用例用自動的方式執(zhí)行,例如,自動地產(chǎn)生數(shù)據(jù),自動地打開應用程序,自動地查找控件, 自動地輸入數(shù)據(jù),自動地操作控件,自動地收集測試結果,自動地與預期結果進行比較等。

三、數(shù)據(jù)庫(10分)
為管理業(yè)務培訓信息,建立3個表:
S(S#,SN,SD,SA) S#,SN,SD,SA分別代表學號,學員姓名,所屬單位,學員年齡
C(C#,CN) C#,CN分別代表課程編號,課程名稱
SC(S#,C#,G) S#,C#,G分別代表學號,所選的課程編號,學習成績
(1) 使用標準SQL 嵌套語句查詢選修課程名稱為’稅收基礎’的學員學號和姓名?
答:select s# ,sn from s where S# in(select S# from c,sc where c.c#=sc.c# and cn=’稅收基礎’)
(2) 使用標準SQL 嵌套語句查詢選修課程編號為’C2’的學員姓名和所屬單位? 答:select sn,sd from s,sc where s.s#=sc.s# and sc.c#=’c2’
(3) 使用標準SQL 嵌套語句查詢不選修課程編號為’C5’的學員姓名和所屬單位? 答:select sn,sd from s where s# not in(select s# from sc where c#=’c5’)
(4) 查詢選修了課程的學員人數(shù)
答:select 學員人數(shù)=count(distinct s#) from sc
(5) 查詢選修課程超過5門的學員學號和所屬單位?
答:select sn,sd from s where s# in(select s# from sc group by s# having count(distinct c#)>5)
四、編程題(10分)
編程輸出1/1 1/3 1/5 …… 1/99的和。
參考答案:
public class Sum {
public static void main(String[] args) {
float sum = 0.0f;
for(float i=1.0f;i<=99.0f;i=i 2)
{
sum = 1/i sum;
}
System.out.println(sum);
}
}
附加題
談談軟件測試技術,以及一個優(yōu)秀的軟件測試人員應該具備的素質(zhì)。