2018綠盟軟體開發工程師筆試記錄

更新1:XX年10月17日(星期天) 晚上7:29 收到面試通知,明天下午面試。

更新2:XX年10月21日 下午五點左右收到通知,已被錄用。第一份offer~

筆試地點:華科n201

筆試職位:軟體開發工程師(質量部)

筆試感覺還好,題目類型為:

多選(選對3分,不全1分,選錯不得分)

配置題:第一個是windows和linux下如何配置靜態路由,第二題是一個sql查詢的(很強大啊)、第三題是填寫幾個公司名稱

設計題:兩個路由器負載均衡,如何設計測試用例

工具使用題:告訴你一個名為netperf的工具,然後發一張英文文檔,內容大致為man netperf顯示的,有命令的格式,每個參數的含義,考研英文閱讀能力和使用命令行工具的經驗,以及快速攝取必要信息的能力。

編程題:

1.n*n的矩形,每一格輸入1-n*n的數,要求行、列、對角線之和均相等。

2.一個字元串匹配的設計題目。

下面是詳細內容:

選擇題涉及了

  linux下的chmod命令,chmod 755 ,可以使具有什麼許可權?

  兩個整數交換的方式,通過與運算和加法運算都可以完成(不過加法可能溢出,不知道出題人怎么考慮的,反正我選了. a=a+b,b=a-b,a=a-b,與運算是肯定沒問題的)

哪幾個工具可以進行協定分析(tcpdump/wireshark/sniffer,還有一個選項沒見過:tcpreplay,在這裡,看描述是進行網路硬體測試的:test a variety of network devices. it allows you to classify traffic as client or server, rewrite layer 2, 3 and 4 headers and finally replay the traffic back onto the network and through other devices such as switches, routers, firewalls, nids and ips's. tcpreplay supports both single and dual nic modes for testing both sniffing and inline devices. )。

  還有一個是問web自動化測試的工具有哪些(我就看到認識一個junit,查資料得知,selenium是很有名的web自動化測試工具。選項:curl是 a command line tool for transferring data with url syntax, supporting 很多的協定~。還有個選項忘了)

  大致就這些題值得記憶。

  接下來是問答題
1.分別在windows和linux下用命令行的方式添加靜態路由,寫出命令。比如添加192.168.0.1/16,網關為192.168.255.254.

2.有三張資料庫表,表明和欄位如下(格式:表明(欄位1,欄位2……)):

course(cno,cname,credit,teacher)

student(sno,sname,dept,grade,class)

sc(id,sno,cno,date)

試卷上面是給的中文,我自己在試卷上說明後對每個欄位給了個英文名。其中,credit是成績,class是班級,id是序號。

題目要求,寫出“截至/9/13,每門課程在各院系的選課人數”的sql語句,要求輸入格式:課程名、院系、選課人數(選課人數由大到小排序)。

說實話,這個比課本上的示例要難一些,難點在與這裡有兩次group,一個是對cno的group,另一個是dept上的group,如何完成呢?我用了from嵌套查詢的方式解決。大致如下:

select cname,dept,count(*) as totalstu

from (select cname,dept

  from sc,student,course

  where sc.cno=course.cno and

  sc.sno=student.sno and

  data <= XX0930 //假設時間用一個八位的整數表示

  group by cno)

group by dept

order by totalstu asc;

之前不久複習過資料庫,還有些印象。不過也不太清楚,這個from中嵌套select後能不能調用group by語句。這題可能做錯了。

3.寫出三個主要從事信息安全的公司名,國內和國外一共三個。

很囧的說,我第一個就寫的金山……。然後是奇虎、江明、瑞星、卡巴、趨勢。

然後是一個完全沒碰過的測試用例設計題:

某route具有ha(high availability,高可靠性)能力,即:將兩個路由器a、b部署到網路,平時a、b分別配不同策略路由,以達到負載均衡,兩個route用專線同步心跳。一旦一台出現故障,則由另一台承擔全部任務,以保證網路正常通訊,當故障路由器回復上線時,負載重回流到均衡狀態,請針對ha功能進行測試用例設計。

說實話,測試用例我是小白。但是8分的題不寫多可信,於是大致寫了下思路。分為4大類情況:

classify  a b

1  ok ok

2. bad->ok  ok

ok  bad->ok

3  ok->bad ok

  ok ok->bad

4 ok  bad

  bad  ok

為什麼這么分?不解釋。看個人的理解~

下面是考察快速學習和套用能力了:

先是一個拓撲圖,給出了伺服器和客戶端的ip以及server的port,然後額外發了一張紙,內容如下:

其實就是shell中輸入man netperf得到的內容,然後給出幾個場景,利用這些參數構造命令。具體的場景記不得了。

最後是兩個數據結構和算法題:

題一:畫了三個矩形,分別是3*3 、5*5 、7*7三種矩形的示例,每個矩形滿足:所有數在1-n*n之間,行、列、對角線數隻和相等。找出圖中的規律,寫一個程式,實現輸入n(n為奇數),生成一個n*n的矩陣,滿足行、列、對角和相等。

這種題目估計很多人之前做過,這裡就不多說了。

題二:實現通配符匹配,通配符包括*(星號,代表任意個任意字元)。?(問號,單個任意字元)。要求利用遞歸實現。比如,匹配a*b,對於字元串mmmafdjskb輸出true,對mmmmaaa輸出false。

如果說不限制用遞歸,用循環我估計可以解決,一看到遞歸我就不想寫了。隨便寫了個明顯帶有問題的程式就交了。

另外選擇題有個考察shell中的正則的,大概為:echo 'hello hello big world' | sed '/s/^h.*\s/hi' ,問輸出的結果是什麼。sed中的\s是什麼意思?這個我沒搞懂,所以只能理解到這一層“/s表示該字元串中以h開頭,後面跟任何一個字元的子串均用hi替換”,那么輸出即為hi。

因為不懂\s的意思,所以只能這樣了

總的來說,這張試卷考的面很廣:

1.知識面廣:涉及了網路、資料庫、正則表達式、網路安全(sql注入的原理)、linux常用操作、測試用例的設計……

2.語言雜:shell、sed、python、bat (這個說法不太嚴格)

就這么多吧,上面有任何不對,希望各位大牛不吝指出。