軟件開發(fā)工程師面試題(軟件開發(fā)工程師面試題庫及答案)
今天給各位分享軟件開發(fā)工程師面試題的知識,其中也會對軟件開發(fā)工程師面試題庫及答案進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!
本文目錄一覽:
- 1、軟件工程師面試時,HR都會問些什么問題
- 2、知名企業(yè)招聘軟件工程師的C語言筆試題和面試題答案
- 3、軟件工程師經(jīng)典面試題及答案
- 4、應(yīng)聘JAVA工程師,面試官常問一些什么問題?
- 5、.net軟件工程師筆試題和面試題答案目
- 6、軟件測試工程師經(jīng)典面試題匯總
軟件工程師面試時,HR都會問些什么問題
軟件工程崗位面試大致可分為兩類:特定領(lǐng)域知識面試和計算機科學(xué)基礎(chǔ)知識面試
特定領(lǐng)域知識面試
特定領(lǐng)域知識面試通常涉及到你最熟悉的技術(shù)領(lǐng)域的具體知識點。例如,如果你主要使用Angular1.x進行前端開發(fā),并且面試公司又有 Angular前端,那他們就可能問你關(guān)于 Angular控制器、指令和服務(wù)的相關(guān)內(nèi)容。也就是說,你需要做好準備去建立、展示和討論Angular。
特定領(lǐng)域的面試重點關(guān)注的是你已經(jīng)實際構(gòu)建起來的東西,因此要想順利通過這些面試,最好是你已經(jīng)構(gòu)建過相關(guān)技術(shù)的項目。你應(yīng)該為自己的工作而感到自豪,不必感覺不好意思,而應(yīng)該深入探討具體項目的技術(shù)細節(jié)。項目最好是近階段完成的,沒人會愿意去聽你去年寫的那些代碼,你自己也會對這種陳舊的項目感覺厭倦,面試效果也欠佳。
特定領(lǐng)域面試的另一個常見策略是看求職者能否構(gòu)建一些非常棒的產(chǎn)品或者是排除實際存在的一些問題和故障。這通常是讓求職者帶回家去完成的一種測試,求職者一般有 24-48個小時的時間來完成這些測試。例如,如果你是一名 Laravel開發(fā)人員,并且你面試的公司恰好也使用 Laravel,那他們可能會要求你構(gòu)建公司產(chǎn)品或者是公司定期創(chuàng)建的產(chǎn)品的微縮版本。對于這種帶回家做的測試,做好投入大量工作的心理準備。準備好啟動模板,不要抗拒去Google搜索答案,發(fā)送電子郵件尋求幫助和使用外部工具包這些做法。因為能否通過特定領(lǐng)域面試最重要的一個衡量標(biāo)準是你能否構(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)的問題來進行評估。
計算機科學(xué)基礎(chǔ)面試的問題有章法可循。因為學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法需要大量的準備工作和長時間的學(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í)和準備才能發(fā)現(xiàn)。即便這些知識中的一部分并不適用于日常的編程任務(wù),但只要你堅持這樣做,你就能抓住更多的面試機會,就能收到更多公司發(fā)來的 offer。如果你的目標(biāo)是獲得更多的工作機會,那你一定要看一下《Cracking The Coding Interview》這本書,并且查看這一免費的面試資源來進行相應(yīng)的準備工作。
知名企業(yè)招聘軟件工程師的C語言筆試題和面試題答案
C語言筆試題(1)
第1題:完成文件的拷貝,srcFileName為源文件名,dstFileName 為目標(biāo)文件名。
int copy_file(const char *srcFileName, const char *dstFileName);
第2題:設(shè)有文件a.file, 請寫出程序在文件的開頭插入 字符串 “ file start: ”;
第3題:
已知
union un {
short s;
char a[3];
};
求sizeof(union un)?
第4題:
請描述以下代碼中的p,
char(*(*p())[])(int, void (*)())
第5題:
已知
union un {
short s;
char a[3];
};
求sizeof(union un)?
C語言筆試題(2)
第1題:已知 char a[] = “abc\0efg”, 求sizeof(a) 和 strlen(a);
第2題:1, 寫程序完成M進制轉(zhuǎn)N進制,M、N為1~10之間。
mton(const char* mNum, int m, char *nNum, int n);
第3題:完成16進制字符串相加,返回相加后的16進制字符串。
char* sum_str16(const char* str1, const char* str2);
第4題:完成strlen函數(shù),要求除參數(shù)外,不能使用變量和庫函數(shù)。
第5題:用鏈表完成結(jié)點的添加、刪除操作。
typedef struct student
{
int studentNum,
struct student *next;
}STU;
C語言筆試題(3)
第1題:兩個字符串,s,t;把t字符串插入到s字符串中,s字符串有足夠的空間存放t字符串
第2題:printf (“%d%d\n”,++n, power(2,n)); 其中power(2,n)為實現(xiàn)一定功能的函數(shù) 如 2^n 。請問這種表示方法有什么潛在的問題?
第3題:printf (s);
請問這樣的語句有沒有問題?(s為一指向有效字符串的指針)
第4題:兩段代碼共存于一個文件,編譯時有選擇的編譯其中的一部分,請問如何實現(xiàn)?
第5題:數(shù)據(jù)結(jié)構(gòu)指針傳給函數(shù),函數(shù)能訪問數(shù)據(jù)單元,但不能修改實際的內(nèi)容,如何實現(xiàn)?
C語言筆試題(4)
第1題:兩個字符串,s,t;把t字符串插入到s字符串中,s字符串有足夠的空間存放t字符串
第2題:char *a = “hello”;
char *b = “hello”;
if(a= =b)
printf(“YES”);
else
printf(“NO”);
第3題:簡述stack frame 的含義
第4題:printf (“%d%d\n”,++n, power(2,n)); 其中power(2,n)為實現(xiàn)一定功能的函數(shù) 如 2^n 。請問這種表示方法有什么潛在的問題?
第5題:printf (s);
請問這樣的語句有沒有問題?(s為一指向有效字符串的指針)
C語言筆試題(5)
第1題:在頭文件中定義靜態(tài)變量,可能產(chǎn)生什么問題?
第2題:malloc()與 calloc()的區(qū)別?
第3題:寄存器變量可不可以訪問其地址?可否是全局變量?在什么場合使用寄存器變量?
第4題:“\n” ‘\n’ 的區(qū)別?
第5題:#include “stdio.h”
int main()
{
int a;
int *p;
p = a;
*p = 0×500;
a = (int )(*(p));
a = (int )((*p));
if(a == (int)p)
printf(“equal !\n”);
else
printf(“not equal !\n”);
}
請問本程序的輸出顯示是什么?
軟件工程師經(jīng)典面試題及答案
1、為什么要在一個團隊中開展軟件測試工作?
因為沒有經(jīng)過測試的軟件很難在發(fā)布之前知道該軟件的質(zhì)量,就好比ISO質(zhì)量認證一樣,測試同樣也需要質(zhì)量的保證,這個時候就需要在團隊中開展軟件測試的工作。在測試的過程發(fā)現(xiàn)軟件中存在的問題,及時讓開發(fā)人員得知并修改問題,在即將發(fā)布時,從測試報告中得出軟件的質(zhì)量情況。
2、您所熟悉的軟件測試類型都有哪些?
測試類型有:功能測試,性能測試,界面測試。
功能測試在測試工作中占的比例最大,功能測試也叫黑盒測試。
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標(biāo)進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進行。
界面測試,界面是軟件與用戶交互的最直接的層,界面的好壞決定用戶對軟件的第一印象。
3、您認為做好測試用例設(shè)計工作的關(guān)鍵是什么?
白盒測試用例設(shè)計的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果黑盒用例設(shè)計的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內(nèi)發(fā)現(xià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、是否有初始化或終止性錯誤?
軟件的白盒測試是對軟件的過程性細節(jié)做細致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態(tài),確定實際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試主要是想對程序模塊進行如下檢查:
1、對程序模塊的所有獨立的執(zhí)行路徑至少測試一遍。
2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
3、在循環(huán)的邊界和運行的界限內(nèi)執(zhí)行循環(huán)體。
4、測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。4、驗收測試是部署軟件之前的最后一個測試操作。驗收測試的目的是確保軟件準備就緒,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務(wù)。驗收測試是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計把所有的模塊組裝成一個完整的軟件系統(tǒng),接口錯誤也已經(jīng)基本排除了,接著就應(yīng)該進一步驗證軟件的有效性,這就是驗收測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。
應(yīng)聘JAVA工程師,面試官常問一些什么問題?
面試啊,一般不會問太具體的問題,語法會在筆試里考,然后一般面試分技術(shù)面試和綜合面試。一般情況是,你過了筆試,然后去技術(shù)面試,然后綜合面試。技術(shù)面試官一般是拿著你的簡歷和筆試試卷,一開始會問你那些寫錯的地方。然后問你有什么項目經(jīng)驗,如果有,會追問項目的種種,比如你開發(fā)了一個圖書館信息管理系統(tǒng),會問你用了什么框架,比如你說用了struts,然后他會問你struts的基本原理,你大致講一下對struts框架對servlet的封裝和配置文件,然后他會問一些你數(shù)據(jù)庫的東西,主要是你數(shù)據(jù)是如何設(shè)計的~。大致是這個流程。然后綜合面試就是問你在學(xué)校干了什么 班干部什么 學(xué)校活動 學(xué)生會 還有 項目都可以隨便說說,聊聊。
有些技術(shù)面試官會問你一些智力題(通常這樣的面試官都不是項目經(jīng)理,是稍微懂點技術(shù)的人力資源,比較2的反正)
技術(shù)題目可以在網(wǎng)上搜索,另外就是看程序員面試寶典這本書。
技術(shù)面試官還會問你對其他技術(shù),(你會的東西都應(yīng)該寫在簡歷上),比如你簡歷上說你會Hibernate,那他也會問你Hibernate的相關(guān)東西。OOP思想什么的,設(shè)計模式也會涉及的
.net軟件工程師筆試題和面試題答案目
說明:
1. 本試題分可選題和必選題兩部分。必選題需要根據(jù)題目要求回答。
2. 本試題考試時間為 0.5 小時。
3. 本試題完成后,請標(biāo)明你的姓名以及聯(lián)系方式(包括:Email、聯(lián)系電話)。
注意事項:
1、在規(guī)定時間內(nèi)自行選題(在可選題部分中),選題數(shù)目不能少于2個,難度不限,編程語言不限(除非題目中有特別說明)。
2、盡可能用代碼段或函數(shù)完成,或自然語言來描述解題方法。
3、評分標(biāo)準跟所選題目的數(shù)量和完成度無關(guān),請盡可能展示自己的編程能力、思路、經(jīng)驗和風(fēng)格。
可選題部分:
(1) 請使用目錄樹遍歷的方法統(tǒng)計出指定邏輯驅(qū)動器的目錄總數(shù)及文件總數(shù),并顯示硬盤空間浪費的百分比
類別:系統(tǒng)類
難度:中級
(2) 列出局域網(wǎng)中的所有工作組和計算機名,并可顯示每一個計算機的共享目錄
類別:系統(tǒng)類
難度:高級
(3) 寫一個類似OICQ點對點消息發(fā)送軟件,僅實現(xiàn)發(fā)送和接收的功能即可
類別:網(wǎng)絡(luò)編程類
難度:高級
(4) 為DataGrid(WinForm)增加ComboBox樣式的數(shù)據(jù)列
類別:數(shù)據(jù)庫編程類
難度:中級
(5) 一維數(shù)組iArray[10],類型為int。請使用選擇排序算法對其排序,并輸出結(jié)果。
類別:數(shù)據(jù)算法
難度:初級
(6) 請新建一個類(名稱為ClassA),該類必須含有三個屬性:姓名(字符串),性別(布爾值),年齡(數(shù)值)。
用該類建立一個鏈表,該鏈表有以下算法:創(chuàng)建、添加、插入、刪除和查找,算法內(nèi)不用
考慮內(nèi)存的分配與釋放
類別:數(shù)據(jù)結(jié)構(gòu)
難度:中級
Public Class ClassA{
Public string name;
Public boolean sex;
Public int age;
}
(7) 在上題的基礎(chǔ)上,實現(xiàn)以下兩個功能:
a. 保存該鏈表為二進制文件test.lib(存放在本題目路徑之下)
b. 讀取生成的二進制文件到鏈表中。
類別:數(shù)據(jù)結(jié)構(gòu)
難度:中級
(8) 你所知道有哪些操作平臺,談?wù)勀銓λ麄兊囊娊?/p>
類別:其它類
難度:無
(9) 你所知道有哪些編程語言,談?wù)勀銓λ麄兊目捶ǎ闶褂眠^哪些語言,熟練程度
如何,編寫過什么樣的程序
類別:其它類
難度:無
(10) 請用VBScript或JavaScript語言中任何一種,與CSS結(jié)合,編寫出移動Layer的例子,具體效果與Windows窗體類似。
類別:Web
難度:中級
必選題部分(必須用VS2003開發(fā)):
(1) C#回答題:請描述抽象類、接口、結(jié)構(gòu)三者的區(qū)別:
抽象類當(dāng)中的屬性和方法不能被其子類重寫,接口只定義其中的屬性和方法,其方法的實現(xiàn)部分必須在其繼承的子類中實現(xiàn),結(jié)構(gòu)和類比較類似,也有其屬性和方法,但不能被繼承和實例化.
(2) C#編程題:在WinForm 中實現(xiàn)類似于Windows 資源管理器的功能,左邊有目錄樹,點擊目錄樹,在右邊顯示該目錄下的所有文件。查看方式分:大圖標(biāo)、小圖標(biāo)、列表、詳細資料等。
(3) 寫一個簡單的存儲過程或觸發(fā)器,要求能正確運行(數(shù)據(jù)庫采用Oracle,自建測試表)
Create table test
(id int primary key,
Name varchar2(10) not null,
Address varchar2(50),
Tel varchar2(18)
);
Create or replace procedure InsertTest as
Declare IDN test.id%type;
Declare VName test.name%type;
Declare VAddress test.address%type;
Declare VTel test.tel%type;
Begin
Select nvl(decode(max(id),0,1,max(id)),1) + 1 into IDN
End
When
4 更多相關(guān)文章推薦參考:
安捷倫筆試真題
中興數(shù)據(jù)庫筆試真題
工商銀行歷年考試真題
軟件測試工程師經(jīng)典面試題匯總
1.說說一個缺陷的生命周期
考查點: 測試人員對于缺陷整體生命周期的理解 ,注意面試官用詞,有時只需要回答關(guān)鍵節(jié)點,有時需要分開闡述。
圍繞缺陷提交、缺陷確認、缺陷打開、缺陷修復(fù)、缺陷回歸、缺陷關(guān)閉這幾個關(guān)鍵節(jié)點回答即可。
2.缺陷的基本類型有哪些?
考查點:需求、數(shù)據(jù)、邏輯、性能、功能、安全、兼容、變更、易用等
對于工作經(jīng)歷的側(cè)面了解,有時會需要分別舉例說明。
3.測試用例的基本要素有哪些?
用例編號、用例類型、用例標(biāo)題(名稱)、前置條件、操作步驟、測試數(shù)據(jù)、預(yù)期結(jié)果、實際結(jié)果
考察類型形式多樣,有些面試官會出場景需求要求現(xiàn)場設(shè)計用例,來用于考察應(yīng)試者的思維縝密性、經(jīng)驗是否豐富以及對需求的理解程度。
4.你如何做用例評審?
考查點:主要考察之前工作流程是否規(guī)范,同時對于評審工作的參與度
靈活回答,不同公司不同項目評審流程也有區(qū)別。
參考:內(nèi)部評審(通常由測試組內(nèi)部人員評審)-正式評審(由參與該項目的產(chǎn)品、開發(fā)、測試、項目經(jīng)理評審)-用例修訂-項目經(jīng)理確認
5.針對微信的聊天窗口設(shè)計測試用例
考查點:也經(jīng)常會換成其他知名網(wǎng)站的一些搜索功能、列表功能、分頁功能等等,來考察系統(tǒng)思維能力。
參考:
首先,了解完成業(yè)務(wù)需求后,轉(zhuǎn)化為測試需求,最終的測試需求一定是跟項目組評審?fù)ㄟ^的。
開始設(shè)計:
冒煙用例:實現(xiàn)最簡單的聊天功能(語音、文字形式)
功能業(yè)務(wù):
純文字聊天
語間聊天
表情
組合發(fā)送聊天
特殊字符及組合
發(fā)送文件
查看聊天記錄
截屏功能
視頻聊天
實時語音聊天
不同版本間的切換功能
客戶化場景分解
異常場景分解
兼容性測試用例:
一般在業(yè)務(wù)需求中會定義好
在測試需求中可以分解好對應(yīng)的機型與系統(tǒng)版本,求得最優(yōu)最小組合,用于兼容性測試的用例。
安全測試用例
性能測試用例
(一般都有獨立的測試方案)
回歸測試用例:
抽取用例庫中的核心用例組合成回歸用例 。
6.你發(fā)現(xiàn)一個缺陷,但開發(fā)人員認為不是問題,你會怎么辦?
考察點:溝通表達能力,過往工作流程經(jīng)驗,合作意識、責(zé)任意識
此類問題需要首先清楚自己的角色定位,作為一名軟件測試人員,此類問題是經(jīng)常遇到的。如果是執(zhí)行人員,可以帶出原來工作的測試流程,因為缺陷處理也是屬于測試流程中的一部分,如開發(fā)人員會在缺陷管理系統(tǒng)中備注原因,自己先分析,如果不確定可以找上級測試負責(zé)人來一起處理。但如果是管理崗,回答時可以舉例說明自己以往遇到的類似問題以及處理方式,更具有說服力。
7.你評估的測試時間是5天,但領(lǐng)導(dǎo)只給三天怎么辦?
考察點:溝通表達能力,過往工作沖突的處理方式經(jīng)驗
此類問題如果面試官并未給出具體場景,就一定需要反問把問題的背景描述出來,通過背景分析給出解決沖突的方法。
問題背景如:臨時緊急需求、常規(guī)需求、經(jīng)常性壓縮時間、客戶壓縮時間、因自身漏洞導(dǎo)致壓縮時間等等
那么回答時就需要應(yīng)景:排列工作優(yōu)先級、重新分解當(dāng)前工作、改變測試策略、團隊內(nèi)分工、外部求助等
8.說說一個項目的測試流程
考察點:以往工作的流程規(guī)范性,業(yè)務(wù)熟悉度
可以參考下文章《測試過程文檔模板整理(一)-提測流程》中提到的測試流程,結(jié)合目前項目來說明。回答時體現(xiàn)自信、專業(yè)、對工作環(huán)節(jié)的熟悉度
9.黑盒測試用例設(shè)計方法有哪些?
等價類劃分法、邊界值分析法、因果圖法、正交實驗法、判定表法、錯誤推測法、隨機測試、場景法
10.軟件的質(zhì)量特性有哪些?
可維護性、可擴展性、可測試性、可重用性、可移植性、易理解性
一般在實習(xí)生與初級測試工程師中的筆試題也會有很多考查類型,中高級測試工程師更傾向于考察關(guān)于質(zhì)量的影響因素等。
11.缺陷的基本要素有哪些?描述缺陷有哪些注意事項?
缺陷編號、缺陷標(biāo)題、前置條件、測試數(shù)據(jù)、操作步驟、預(yù)期結(jié)果、實際結(jié)果、初步定位原因、截圖或日志信息(可選)
軟件開發(fā)工程師面試題的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于軟件開發(fā)工程師面試題庫及答案、軟件開發(fā)工程師面試題的信息別忘了在本站進行查找喔。