75分鐘,不許切屏。爛網絡,斷了幾次重連卡了自動交卷了。。。
這個崗位要求還是挺高的啊,還考單元測試,單元測試這種一般還是開發做的吧?我覺得很多公司都不會叫一個測試去做單元測試,怪。。。
自己再慢慢做一遍吧。。。
分為選擇題+程式設計題2部分。滿分100分
選擇題12題。(共60分)
1、黑盒測試流程正确的順序是(A)? (5.0分)
A 、 需求評審->用例設計->用例評審->送代測試->回歸測試->內建測試->回歸測試->上線測試
B 、 需求評審->疊代測試->編寫測試用例->用例評審內建測試->回歸測試->上線測試
C 、需求評審->編寫測試用例->疊代測試->用例評審->內建測試->回歸測試->上線測試
D 、 編寫測試用例->需求評審->疊代測試->用例評審->內建測試->回歸測試->上線測試
2、下列哪種方法設計出的測試用例發現程式錯誤的能力最強(A)? (5.0分)
A 、邊界值分析法 B 、決策表法 C 、等價類劃分法 D、場景法
3、單元測試架構如Junit4中@BeforeClass,@Before,@AfterClass,@After,@Test所标的方法,執行順序正确的是?(D)(5.0分)
A、@BeforeClass,@Before,@AfterClass,@After是必須寫的
B、@Before和@AfterClass在測試執行中,隻會執行一次
C、@Test的測試程式,必須以test開關
D、@BeforeClass和@AfterClass在測試過程中,隻會執行一次
解析:Unit4使用Java5中的注解(annotation),以下是JUnit4常用的幾個annotation:
@Before:初始化方法 對于每一個測試方法都要執行一次(注意與BeforeClass差別,後者是對于所有方法執行一次)
@After:釋放資源 對于每一個測試方法都要執行一次(注意與AfterClass差別,後者是對于所有方法執行一次)
@Test:測試方法,在這裡可以測試期望異常和逾時時間
@Test(expected=ArithmeticException.class)檢查被測方法是否抛出ArithmeticException異常
@Ignore:忽略的測試方法
@BeforeClass:針對所有測試,隻執行一次,且必須為static void
@AfterClass:針對所有測試,隻執行一次,且必須為static void
一個JUnit4的單元測試用例執行順序為:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass
每一個測試方法的調用順序為:
@Before -> @Test -> @After
4、對于一個含有n個變量的程式,采用基本邊界值分析法測試程式會産生(A)個測試用例。
A、6n+1 B、7n C、4n+1 D、5n
5、TCP三向交握過程描述正确的是?(D)
Client SYN=1,seq=0
Server SYN=1,ACK=1,seq=0,ack=(x=0+1)
Client ACK=1,seq=1,ack=(y=0+1)
A、2,1 B、2,2 C、1,2 D、1,1
解析:tcp三次握手過程:ACK是确認标志位
1、首先由Client送出請求連接配接即SYN=1,明自己的序号是seq=x :
2、然後Server 進行回複确認,即SYN=1,聲明自己的号是seq=y,并設定為ack=x+1
3、最後Client 再進行 一 次确認,seq=x+1,ack=y+1.
seq例号範圍::2^32 -1到最大值,再從0開始
seq例号作用:依據這個例号來組資料進行資料包的順序
6、一堆資料進行入棧出棧操作,入棧順序為{a,b,c,d,e,f,g},可能的出棧順序為(C)
A、{e,f,d,g,b,c,a} B、{c,d,e,f,a,g,b} C、{d,e,c,f,b,g,a} D、{f,e,g,d,b,a,c}
解析:注意出棧操作可以和入棧操作間隔進行,棧為“先進後出”。
7、程式的完整編譯過程分為是:預處理,編譯,彙編等,如下關于編譯階段的編譯優化的說法不正确的是(D)
A、For循環的循環過程控制變量通常很适合排程到寄存器通路
B、強度削弱是指執行時間較短的指令等價的替代執行時間較長的指令
C、函數内聯可以避免函數調用中壓棧和退棧的開始
D、死代碼删除指的是編譯過程直接抛棄掉被注釋的代碼
8、32位Windows系統中,short(signed short int)類型的取值範圍是?(D)(5.0分)
A、-32767~-32768 B、 0~65535 C、 0~65536 D、-32768~-32767
9、根據以下提供的數列尋找規律,選擇正确答案:10,22,-6,14,_B___。
A、26 B、-10 C、 4 D、-14
解析:10+22=32=2^5,22+(-6)=16=2^4,(-6)+14=8=2^3,14+X=2^2,X = 10
10、一次投擲兩個骰子,請問投擲之後兩個骰子數值之和為9的機率是多少?(D)(5.0分)
A、 3/36 B、 5/36 C、 6/36 D、4/36
11、有4個人,分别是ABCD,每個人都頭上都帶了個帽子,帽子隻有黑色或白色,4個人中分别有兩個人帶黑色,有兩個人帶白色,4個人的站位是A|B C D,是一堵牆,B,C,D分别站在平地,一層台階,二層台階上,每個人都看不到自己帶的帽子,一開始大家都不講話,突然有個人說,我知道自己帶的什麼顔色的帽子了,請問是誰(A 或B ??)
A、 C B、D C、 A D、B
12、當 n =5時,下列函數的傳回值是:(A)
int func(int n){
if(n<=2){ return n; }
return func(n-1) + func(n-2);
}
A、 8 B、 13 C、5 D、6
二、問答題(共4題,合計40.0分)
1、已知三角形三邊abc,現有個程式能判斷這個三角形的類别(比如等腰三角形),請為這個程式設計測試用例。(10.0分)
a=int(input("Please input the first side:")) #輸入第一條邊
b=int(input("Please input the second side:")) #輸入第二條邊
c=int(input("Please input the third side:")) #輸入第三條邊
if (a+b>c) and (a+c>b) and (b+c>a): #判斷是否是三角形
if a==b==c:
print("This is a equilateral triangle") #等邊三角形
elif (a==b or a==c or b==c):
print("This is a isosceles triangle") #等腰三角形
elif (a*a+b*b==c*c) or (a*a+c*c==b*b) or (c*c+b*b==a*a):
print("This is a right triangle") #直角三角形
else:
print("This is a scalene triangle") #不規則三角形
else :
print("This isn't a triangle") #不是三角形
2、公司資料庫的在職人員表有name和deptment兩個字段,分别表示員工姓名和所屬部門。請寫出一條SQL語句查出每個部門的人數。(10.0分)
select name,count(*) from 在職人員表 group by deptment
3、設計用例測試下面的Python程式
def Do(a,b,x):
if(a>1) and (b==0):
x=x/a
if (a==2) or (x>1):
x = x+2
return x
(10.0分)
答:
4、聖誕節到了,公司舉行交換禮物活動,參加的員工每人準備一個禮物。
交換完成後,自己的禮物會随機給到另一個人,自己也能随機獲得一個其他人準備的禮物。不要求A拿了B的禮物.,B就一定要拿A的,隻要自己不拿自己的即可。為公平起見,請你寫一個随機程式來決定禮物何配置設定。
(10.0分)
答案後面再找吧。。。
20191120日更新----------------------------------
現在是晚上八點二十幾分,居然接收到富途的面試電話,說我筆試通過了?!
因卡殼自動交卷,我的大題沒做呢,選擇題可能錯了1道2道這樣子吧,這也能通過?
明天去試試水吧感覺這裡面有東西啊。。。
20191121下午5點半更新-------------------------------
剛從深大地鐵站回來,記錄下面試。一個面試官
1、七層網絡模型,介紹下每一層,TCP在第幾層,TCP、UDP是什麼,有什麼差別?
2、測試流程?
3、什麼是邊界值法和等價類劃分法?兩者差別
4、有500毫升、600毫升的杯子,倒出300毫升水?
5、多表查詢會嗎?左連接配接、又連接配接?自己建表随便寫一個?(麻蛋我寫了内連接配接查詢?面試官說沒用過。。。)
6、python生成100個不重複的4位數随機數。
7、HTTP傳回碼?(我隻答了2345開頭的,其實還有1和6開頭的)
回答的一般。。。唉最後面試官建議我學一下Django。。。。