對(duì)于軟件工程師,不太重視學(xué)歷,但并不是對(duì)學(xué)歷沒(méi)有要求,重點(diǎn)關(guān)注項(xiàng)目的經(jīng)驗(yàn)和學(xué)習(xí)知識(shí)的能力,能否利用軟件工程專(zhuān)業(yè)知識(shí)來(lái)解決問(wèn)題,根據(jù)崗位不同,對(duì)軟件工程師的要求也有所不同。接下來(lái)傳智播客搜集了軟件工程師筆試題及答案,僅供大家參考。
軟件工程師筆試題及答案一
一、判斷題
1、軟件測(cè)試就是為了驗(yàn)證軟件功能實(shí)現(xiàn)的是否正確,是否完成既定目標(biāo)的活動(dòng),所以軟件測(cè)試在軟件工程的后期才開(kāi)始具體的工作。(初級(jí))( × )
2、發(fā)現(xiàn)錯(cuò)誤多的模塊,殘留在模塊中的錯(cuò)誤也多。( √ ) (初級(jí))
3、測(cè)試人員在測(cè)試過(guò)程中發(fā)現(xiàn)一處問(wèn)題,如果問(wèn)題影響不大,而自己又可以修改,應(yīng)立即將此問(wèn)題正確修改,以加快、提高開(kāi)發(fā)的進(jìn)程。( × )(初級(jí))
4、單元測(cè)試通常應(yīng)該先進(jìn)行“人工走查”,再以白盒法為主,輔以黑盒法進(jìn)行動(dòng)態(tài)測(cè)試。( √ )(中級(jí))
5、功能測(cè)試是系統(tǒng)測(cè)試的主要內(nèi)容,檢查系統(tǒng)的功能、性能是否與需求規(guī)格說(shuō)明相同。( √ )(中級(jí))
6、軟件質(zhì)量管理即QM由QA和QC構(gòu)成,軟件測(cè)試屬于QC的核心工作內(nèi)容。(√)(高級(jí))
7、軟件測(cè)試只能發(fā)現(xiàn)錯(cuò)誤,但不能保證測(cè)試后的軟件沒(méi)有錯(cuò)誤。(√)
8、軟件就是程序。(X)
9、測(cè)試只要做到語(yǔ)句覆蓋和分支覆蓋,就可以發(fā)現(xiàn)程序中的所有錯(cuò)誤。(X)
10、I18N測(cè)試是指對(duì)產(chǎn)品做出具有國(guó)際性的規(guī)劃,而L10N測(cè)試則是指對(duì)軟件做出符合本地需求更改工作。(√)【高級(jí)】
二、選擇題
1、 進(jìn)行軟件質(zhì)量管理的重要性有:(ABCD)【中級(jí)】
A、維護(hù)降低成本 B、法律上的要求 C、市場(chǎng)競(jìng)爭(zhēng)的需要 D、質(zhì)量標(biāo)準(zhǔn)化的趨勢(shì) E、軟件工程的需要 F、CMM過(guò)程的一部分 G、方便與客戶進(jìn)一步溝通為后期的實(shí)施打好基礎(chǔ)
2、以測(cè)試的形態(tài)分測(cè)試可以分為:(ABC)【中級(jí)】
A、建構(gòu)性測(cè)試 B、系統(tǒng)測(cè)試 C、專(zhuān)項(xiàng)測(cè)試 D、單元測(cè)試 E、組件測(cè)試 F、集成測(cè)試
3、選出屬于黑盒測(cè)試方法的選項(xiàng)(ABC)【初級(jí)】
A、測(cè)試用例覆蓋 B、輸入覆蓋 C、輸出覆蓋 D、分支覆蓋 E、語(yǔ)句覆蓋 F、條件覆蓋
4、編寫(xiě)測(cè)試計(jì)劃的目的是:(ABC)【中級(jí)】
A、使測(cè)試工作順利進(jìn)行 B、使項(xiàng)目參與人員溝通更舒暢 C、使測(cè)試工作更加系統(tǒng)化 D、軟件工程以及軟件過(guò)程的需要 E、軟件過(guò)程規(guī)范化的要求 F、控制軟件質(zhì)量
5、依存關(guān)系有4種,分別是:(ABCD)【高級(jí)】
A、開(kāi)始-結(jié)束 B、開(kāi)始-開(kāi)始 C、結(jié)束-開(kāi)始 D、結(jié)束-結(jié)束 E、開(kāi)始-實(shí)施-結(jié)束 F、結(jié)束-審核-開(kāi)始
6、軟件質(zhì)量管理(QM)應(yīng)有質(zhì)量保證(QA)和質(zhì)量控制(QC)組成,下面的選項(xiàng)屬于QC得是:(ABC)【高級(jí)】
A、測(cè)試 B、跟蹤 C、監(jiān)督 D、制定計(jì)劃 E、需求審查 F、程序代碼審查
7、實(shí)施缺陷跟蹤的目的是:(ABCD)【中級(jí)】
A、軟件質(zhì)量無(wú)法控制 B、問(wèn)題無(wú)法量化 C、重復(fù)問(wèn)題接連產(chǎn)生 D、解決問(wèn)題的知識(shí)無(wú)法保留 E、確保缺陷得到解決 F、使問(wèn)題形成完整的閉環(huán)處理
8、使用軟件測(cè)試工具的目的:(ABC)【中級(jí)】
A、幫助測(cè)試尋找問(wèn)題 B、協(xié)助問(wèn)題的診斷 C、節(jié)省測(cè)試時(shí)間 D、提高Bug的發(fā)現(xiàn)率 E、更好的控制缺陷提高軟件質(zhì)量 F、更好的協(xié)助開(kāi)發(fā)人員
9、典型的瀑布模型的四個(gè)階段是:(ABCD)【高級(jí)】
A、分析 B、設(shè)計(jì) C、編碼 D、測(cè)試 E、需求調(diào)研 F、實(shí)施
10、PSP是指?jìng)€(gè)人軟件過(guò)程 ,是一種可用于( A )、( B )和( C )個(gè)人軟件工作方式的自我改善過(guò)程?!靖呒?jí)】
A、控制 B、管理 C、改進(jìn) D、高效 E、充分 F、適宜
三、問(wèn)答題
1、 測(cè)試人員在軟件開(kāi)發(fā)過(guò)程中的任務(wù)是什么?(初級(jí))
答:1、尋找Bug;
2、避免軟件開(kāi)發(fā)過(guò)程中的缺陷;
3、衡量軟件的品質(zhì);
4、關(guān)注用戶的需求。
總的目標(biāo)是:確保軟件的質(zhì)量。
2、在您以往的工作中,一條軟件缺陷(或者叫Bug)記錄都包含了哪些內(nèi)容?如何提交高質(zhì)量的軟件缺陷(Bug)記錄?(初級(jí))
答:一條Bug記錄最基本應(yīng)包含:編號(hào)、Bug所屬模塊、Bug描述、Bug級(jí)別、發(fā)現(xiàn)日期、發(fā)現(xiàn)人、修改日期、修改人、修改方法、回歸結(jié)果等等;要有效的發(fā)現(xiàn)Bug需參考需求以及詳細(xì)設(shè)計(jì)等前期文檔設(shè)計(jì)出高效的測(cè)試用例,然后嚴(yán)格執(zhí)行測(cè)試用例,對(duì)發(fā)現(xiàn)的問(wèn)題要充分確認(rèn)肯定,然后再向外發(fā)布如此才能提高提交Bug的質(zhì)量。
3、黑盒測(cè)試和白盒測(cè)試是軟件測(cè)試的兩種基本方法,請(qǐng)分別說(shuō)明各自的優(yōu)點(diǎn)和缺點(diǎn)?。ㄖ屑?jí))
答:黑盒測(cè)試的優(yōu)點(diǎn)有:
1)比較簡(jiǎn)單,不需要了解程序內(nèi)部的代碼及實(shí)現(xiàn);
2)與軟件的內(nèi)部實(shí)現(xiàn)無(wú)關(guān);
3)從用戶角度出發(fā),能很容易的知道用戶會(huì)用到哪些功能,會(huì)遇到哪些問(wèn)題;
4)基于軟件開(kāi)發(fā)文檔,所以也能知道軟件實(shí)現(xiàn)了文檔中的哪些功能;
5)在做軟件自動(dòng)化測(cè)試時(shí)較為方便。
黑盒測(cè)試的缺點(diǎn)有:
1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達(dá)到總代碼量的30%;
2)自動(dòng)化測(cè)試的復(fù)用性較低。
白盒測(cè)試的優(yōu)點(diǎn)有:幫助軟件測(cè)試人員增大代碼的覆蓋率,提高代碼的質(zhì)量,發(fā)現(xiàn)代碼中隱藏的問(wèn)題。
白盒測(cè)試的缺點(diǎn)有:
1)程序運(yùn)行會(huì)有很多不同的路徑,不可能測(cè)試所有的運(yùn)行路徑;
2)測(cè)試基于代碼,只能測(cè)試開(kāi)發(fā)人員做的對(duì)不對(duì),而不能知道設(shè)計(jì)的正確與否,可能會(huì)漏掉一些功能需求;
3)系統(tǒng)龐大時(shí),測(cè)試開(kāi)銷(xiāo)會(huì)非常大。
4、根據(jù)自己的理解回答什么是軟件測(cè)試,軟件測(cè)試分為哪幾個(gè)階段。(初級(jí))
答:軟件測(cè)試是一個(gè)為了尋找軟件中的錯(cuò)誤而運(yùn)行軟件的過(guò)程,一個(gè)成功的測(cè)試是指找到了迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
軟件測(cè)試一般分為單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試。
5、根據(jù)自己的理解什么是測(cè)試用例和測(cè)試規(guī)程,設(shè)計(jì)一個(gè)測(cè)試用例應(yīng)當(dāng)從哪幾方面考慮?(中級(jí))
答:狹義的講,一個(gè)測(cè)試用例就是測(cè)試人員用以測(cè)試被測(cè)軟件的某個(gè)特性或特性組合的一組數(shù)據(jù)。這組數(shù)據(jù)可能是從用戶處得來(lái)的實(shí)際的一組數(shù)據(jù),也可能是測(cè)試人員專(zhuān)門(mén)設(shè)計(jì)出來(lái)的測(cè)試軟件某些功能的一組數(shù)據(jù)。
測(cè)試規(guī)程就是詳細(xì)的對(duì)測(cè)試用例設(shè)計(jì)方法、測(cè)試方法、測(cè)試工具、測(cè)試環(huán)境和測(cè)試數(shù)據(jù)進(jìn)行描述的文檔,還可以包括能把某個(gè)或某一組測(cè)試用例應(yīng)用到被測(cè)軟件上完成某項(xiàng)測(cè)試的一系列的操作步驟。
設(shè)計(jì)測(cè)試用例應(yīng)當(dāng)從以下幾方面考慮:邊界值,等價(jià)類(lèi)劃分,有效/無(wú)效值等。
6、什么是軟件質(zhì)量保證?軟件質(zhì)量保證人員與開(kāi)發(fā)人員的關(guān)系如何?(高級(jí))
答:軟件質(zhì)量保證就是通過(guò)確保軟件過(guò)程的質(zhì)量,來(lái)保證軟件產(chǎn)品的質(zhì)量。
軟件質(zhì)量保證人員和開(kāi)發(fā)人員之間具有管理上的嚴(yán)格的獨(dú)立性,兩個(gè)小組的管理員都不能越權(quán)管理另一組,但都可以向更高層的管理者匯報(bào)軟件開(kāi)發(fā)中的問(wèn)題。
軟件工程師筆試題及答案二
一、選擇題
1、設(shè)float a=2, b=4, c=3;,以下C語(yǔ)言表達(dá)式與代數(shù)式 (a+b)+c計(jì)算結(jié)果不一致的是
A.(a+b)*c/2
B.(1/2)*(a+b)*c
C.(a+b)*c*1/2
D.c/2*(a+b)
參考答案:B,因?yàn)閍,b,c三個(gè)變量都是浮點(diǎn)數(shù),所以在B答案中其結(jié)果是0,因?yàn)樵谟?jì)算1/2是就是0,如果改成1/2.0就正確了。
2、為了向二進(jìn)制文件尾部增加數(shù)據(jù),打開(kāi)文件的方式應(yīng)采用
A.″ab″
B.″rb+″
C.″wb″
D.″wb+″
參考答案:D
3、下述程序執(zhí)行后的輸出結(jié)果是
#include
main()
{
int x='f';
printf("%c ",'a'+(x-'a'+1));
}
A.g
B.h
C.i
D.j
參考答案:A
4、C語(yǔ)言中,下列運(yùn)算符優(yōu)先級(jí)最高的是
A.!
B.%
C.>>
D.= =
參考答案:A
5、數(shù)組定義為“ int a [ 4 ] ; ”,表達(dá)式 ( ) 是錯(cuò)誤的。
A.*a
B.a [ 0 ]
C.a
D.a++
參考答案:D
6、執(zhí)行語(yǔ)句“ k=7>>1; ”后,變量 k 的當(dāng)前值是
A.15
B.31
C.3
D.1
參考答案:C
7、定義函數(shù)時(shí),缺省函數(shù)的類(lèi)型聲明,則函數(shù)類(lèi)型取缺省類(lèi)型
A.void
B.char
C.float
D.int
參考答案:D
8、若main()函數(shù)帶參數(shù),參數(shù)個(gè)數(shù)最多是
A.0
B.1
C.2
D.3
參考答案:C 只知道有定義形式main(int argc,char* argv[]))
9、若有宏定義:#define MOD(x,y) x%y
則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是
int a=13,b=94;
printf(″%d ″,MOD(b,a+4));
A.5
B.7
C.9
D.11
參考答案:B
10、下列各個(gè)錯(cuò)誤中,哪一個(gè)不屬于編譯錯(cuò)誤
A.改變 x 原值 3 為 5 ,寫(xiě)作“ x==5 ;”
B.花括號(hào)不配對(duì)
C.復(fù)合語(yǔ)句中的最后一條語(yǔ)句后未加分號(hào)
D.變量有引用、無(wú)定義
參考答案:A
11、下列程序段運(yùn)行后, x 的值是( )
a=1;b=2;x=0;
if(!( -- a))x -- ;
if(!b)x=7;else ++x;
A.0
B.3
C.6
D.7
參考答案:A
12、設(shè)
#define N 3
#define Y(n) ((N+1)*n)
則表達(dá)式2*(N+Y(5+1))的值是
A.42
B.48
C.54
D.出錯(cuò)
參考答案:B Y(5+1) 傳遞過(guò)去的應(yīng)該是6,而不是簡(jiǎn)單的把5+1給替換掉
13、若定義了char ch[]={″abc\0def″},*p=ch;則執(zhí)行printf(″%c″,*p+4);語(yǔ)句的輸出結(jié)果是
A.def
B.d
C.e
D.0
參考答案:C
14、下列轉(zhuǎn)義字符中錯(cuò)誤的是
A.′\000′
B.′14′
C.′x111′
D.′2′
參考答案:C error C2022、 '273' 、 too big for character
15、算術(shù)運(yùn)算符,賦值運(yùn)算符和關(guān)系運(yùn)算符的運(yùn)算優(yōu)先級(jí)按從高到低依次為
A.算術(shù)運(yùn)算、賦值運(yùn)算、關(guān)系運(yùn)算
B.算術(shù)運(yùn)算、關(guān)系運(yùn)算、賦值運(yùn)算
C.關(guān)系運(yùn)算、賦值運(yùn)算、算術(shù)運(yùn)算
D.關(guān)系運(yùn)算、算術(shù)運(yùn)算、賦值運(yùn)算
參考答案:B
16、設(shè)#define N 3
#define Y(n) ((N+1)*n)
則表達(dá)式2*(N+Y(5+1))的值是
A.42
B.48
C.54
D.出錯(cuò)
參考答案:B
17、表達(dá)式 strcmp( “ 3.14 ”,“ 3.278 ” ) 的值是一個(gè)
A.非零整數(shù)
B.浮點(diǎn)數(shù)
C.0
D.字符
參考答案: A
18、設(shè)struct
{ short a;
char b;
float c;
}cs;
則sizeof(cs)的值是
A.4
B.5
C.6
D.7
參考答案: D 字節(jié)對(duì)齊的話應(yīng)該是8
19、若變量已正確定義,表達(dá)式( j=3 , j++ )的值是
A.3
B.4
C.5
D.0
參考答案:A
20、C 語(yǔ)言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是
A.%
B./
C.!
D.**
參考答案:A
二、簡(jiǎn)答題
21、打印一個(gè)N*N的方陣,N為每邊字符的個(gè)數(shù)( 3〈N〈20 ),要求最外層為“X”,第二層為“Y”,從第三層起每層依次打印數(shù)字0,1,2,3,...
例子:當(dāng)N =5,打印出下面的圖形:
X X X X X
X Y Y Y X
X Y 0 Y X
X Y Y Y X
X X X X X
22、談?wù)凜OM的線程模型。然后討論進(jìn)程內(nèi)/外組件的差別。
23、多態(tài)類(lèi)中的虛函數(shù)表是Compile-Time,還是Run-Time時(shí)建立的?
參考答案:
虛擬函數(shù)表是在編譯期就建立了,各個(gè)虛擬函數(shù)這時(shí)被組織成了一個(gè)虛擬函數(shù)的入口地址的數(shù)組.
而對(duì)象的隱藏成員--虛擬函數(shù)表指針是在運(yùn)行期--也就是構(gòu)造函數(shù)被調(diào)用時(shí)進(jìn)行初始化的,這是實(shí)現(xiàn)多態(tài)的關(guān)鍵.
24、#include
void main()
{ int c;
while ((c=get))!= ′ n ′ )
switch(c - ′ 2 ′ )
{ case 0、
case 1、putc+4);break;
case 2、putc+4);break;
case 3、putc+3);break;
default、putc+2);break;
}
printf( ″ n ″ );
}
運(yùn)行時(shí)輸入: 2473 ,輸出結(jié)果:
參考答案:6897 VC++6.0測(cè)試過(guò)
25、用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的功能?
參考答案:
設(shè)2個(gè)棧為A,B, 一開(kāi)始均為空.入隊(duì)、
將新元素push入棧A;出隊(duì)、
(1)判斷棧B是否為空;
(2)如果不為空,則將棧A中所有元素依次pop出并push到棧B;
(3)將棧B的棧頂元素pop出;這樣實(shí)現(xiàn)的隊(duì)列入隊(duì)和出隊(duì)的平攤復(fù)雜度都還是O(1),
26、寫(xiě)一語(yǔ)句實(shí)現(xiàn)x是否為2的若干次冪的判斷。
參考答案:!(X)&(X-1)
27、解二次方程、a*x*x+b*x+c
int Quadratic( double a,double b,double c,double& x1,double& x2);
返回值:解的個(gè)數(shù)
28、如何判別一個(gè)數(shù)是unsigned。
參考答案;
#define issignal(x) ((x>=0 && ~x>=0) ? 1、0) //為1是無(wú)符號(hào) 為0有符號(hào)
29、執(zhí)行下述程序的輸出結(jié)果是 ABCDEFCDEFEF 。
#include
char b[]="ABCDEF";
main()
{
char *bp;
for (bp=b;*bp;bp+=2)
printf("%s",bp);
printf(" ");
}
30、已知一個(gè)數(shù)組table,用一個(gè)宏定義,求出數(shù)據(jù)的元素個(gè)數(shù)。
參考答案:#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))