天天看點

測試面試題整理

1.Java和c++的不同之處,至少三個。

00、Java不再支援指針。這可能是C++和Java之間的最大不同。

【注】既然JAVA中不存在指針,那麼也不存在->操作符。

01、Java不再支援操作符重載。

02、Java不再包含結構或者聯合。在可以完全包含它們的類出現後,這些結構成為備援部分。

03、Java不再包括預處理,也不再支援預處理指令。

04、Java不支援自動的類型轉換,必須顯示強制執行類型轉換。  

05、在Java中的代碼必須封裝在一個或者多個類中。

【注】是以Java中不再包含所謂的全局變量或者全局函數。  

06、Java不再允許預設參數。  

07、Java不支援多繼承,即不允許一個子類繼承多個父類。

08、雖然Java支援構造函數,但是不再支援析構函數。但是Java增加了finalize( )函數。

09、Java不再支援typedef。 

10、Java中不再可能聲明無符号整數。  

11、Java不再支援goto語句。  

12、Java不再有delete操作符。  

13、Java中的<>不再重載I/O操作。  

14、Java中,對象隻能由引用傳遞,C++中對象可由值或引用傳遞。

00、多線程。Java允許兩個或者多個相同的線程并發運作。這是一種在語言級支援的并發機制。C++中沒有類似的機制,或者說C++采用的是單線程的體系結構。如果需要并發執行一個C++程式,必須利用作業系統的功能手工啟動。雖然這兩種方法都可以同時執行兩個或者多個線程,但是Java的方法清楚而且便于使用。 

01、C++中沒有可以與Java包對應的特性。最近似的是用一個公用頭檔案的一組庫函數。然而,在C++中建構和使用庫函數與在Java中建構包和使用包是完全不同的。 

02、Java的接口與C++的抽象類相似(C++中的抽象類是包括至少一個純虛函數的類)。例如,C++的抽象類和Java的接口都不能建立執行個體。兩者都用于指定一個子類實作的一緻接口。兩者之間最大的不同之處在于接口更清晰的表明了這個概念。  

03、Java提供一個流線型的記憶體配置設定機制(即系統自動回收記憶體機制)。與C++類似,Java支援new這個關鍵字。但是,不支援delete關鍵字。當對象的最後一個引用撤銷時,對象本身被自動地删除,并進行記憶體垃圾回收。再考慮到Java沒有指針,這使得Java語言安全性能更強。

04、Java丢棄了C++的标準庫,将它替換成自己的API類集合。它們功能上有相似之處,但是名字和參數有顯著的不同。同時,因為所有的Java API庫都是面向對象的,而C++庫隻有部分是,是以庫例程調用的方式不同。  

05、Java增強了break和continue語句以接收标記。

06、Java中的char類型是國際通用的16位Unicode字元集,是以能自動表達大多數國家的字元。這與C++中的wchar_t型相似。使用Unicode字元增強了代碼的可移植性。  

07、Java增加了>>>操作,完成無符号的右移。  

08、除支援單行和多行的注釋之外,Java增加了第三種注釋方法:文檔注釋。文檔注釋以結尾。  

09、Java包含一個内置的字元串類型叫做String。String在某種程度上和C++提供的标準string類很相似。當然C++中的string隻有在程式中聲明後方可使用,它并不是内置的類型。

2.測試用例的設計方式,至少三個。

等價類,邊界值 ,因果圖,錯誤推測,路徑覆寫,功能圖 ,正交試驗設計法,場景設計方法

3.測試的方法,至少五個

黑盒測試,白盒測試,回歸測試,負載測試,壓力測試,安全性測試、Ui測試,功能測試。。。。。。。。。。。。。其實我不是很懂到底要問什麼,怎麼變成測試的種類去了???

4.寫測試用例。假設x的取值有1、2、3,Y的取值有a、b、c,通常來說要測試所有z=x+y的可能,需要3*3=9個case。那麼假設x和y的取值各有100個,case數量級會很大。要如何去簡化case數量呢?

邊界加等價類劃分?0,負數,小數?無效等價類?

5.對于網易郵箱的登入框,測試的時候要考慮哪些方面呢?(不是真的寫case,是考慮測試方向)

回答了:功能上的,并發時的性能和壓力,安全性(get方式可能會洩露使用者名+密碼),還有浏覽器的相容性問題。
           

8.寫一個建表的sql語句

create table cs

(

    id char(10) NULL,

    name char(10) NULL,

    score integer NULL,

    primary key(id)

);

然後修改已有表的屬性,比如添加新屬性,删除舊屬性的:

alter table cs add newOne integer NULL;

alter table cs drop newOne;
           

10.說進行項目測試的流程

a.參與需求分析,pm、開發、qa一起讨論,确定産品細節,生成項目文檔;

b.進行開發。qa期間根據項目文檔來寫測試case,和開發人員溝通測試時應重點關注的問題;

c.提測,進行準入測試(冒煙測試)。if (false),打回,傳回b;else,ok,進入d;

d.根據b中的case和重點,進行測試,包括功能的,安全的,相容性的,性能,壓力等等。發現bug,先進行定位,和開發人員進行溝通,記錄。

e.開發人員解決bug,再次提測。bug未解決或衍生出新bug,傳回d;bug解決了,進入f;

 f.測試通過,準許上線;

g.上線後進行回歸測試,線上發現問題根據重要優先級記錄下來,後期追加修複。
           

11.準入測試的衡量标準是什麼

1 測試準入标準 1) 開發人員編碼結束,并已完成自測試; 2) 需求說明書規定的功能或程式員送出的功能說明書的功能均已實作; 3) 基本流程可以走通,界面上功能均已實作,符合設計文檔規定的功能; 4) 開發人員向測試部送出《測試申請單》和配置檔案。

14.列舉一些常用的linux指令

mv cp rm vim等等
           

15.怎麼cp一個目錄?mv有哪兩種作用?

cp -r ......          移動檔案,重命名。
           

3.寫大浮點數相加的函數

char * add (char * d1, char * d2)

4.寫一個函數,滿足以下功能。給定一個2的倍數的整數n(不用考慮n是否錯誤了,假定n一定正常),比如n=8,那麼對于數列1 2 3 4 5 6 7 8,函數調整一次後變為 1 5 2 6 3 7 4 8. 先寫一次調整的,然後如果是k次調整呢?

5.使用grep指令。找出a.txt檔案中每一行第一個字為數字的内容。

[]

比對一個指定範圍内的字元,如’[Gg]rep’比對Grep和grep。

grep ^[1-9] a.txts

找出已u開頭的行内容

[[email protected] test]# cat test.txt |grep ^u

ubuntu

ubuntu linux

輸出非u開頭的行内容

[[email protected] test]# cat test.txt |grep ^[^u]

hnlinux

peida.cnblogs.com

redhat

Redhat

linuxmint

[[email protected] test]#

輸出以hat結尾的行内容

[[email protected] test]# cat test.txt |grep hat$

redhat

Redhat

[[email protected] test]#

6.顯示檔案最後100行

tail -100 fileName
           

7.檢視本機的負載、性能等

9.做測試的話,是怎麼個計劃?鑽研一個細方向?

測試的一個好處是可以了解整個系統的架構,子產品互動,而不是局限于一個小子產品的功能。在這個基礎上,選擇例如性能測試、壓力測試作為主要專注領域吧。
           

1、兩根不均勻分布的木棍,每根點完的時間都是一個小時,請問您如何确定一個45分鐘的時間。

一根:兩頭同時燒

二根:和他一起燒,燒完後30分鐘,一根剩一半,再兩頭同時燒,結束45分鐘

2、TCP\IP五層結構,TCP、IP分别在哪層

傳輸層。網絡層

3、HTTP中請求GET、POST的差別

4、軟體測試的目的

5、對測試計劃的了解,測試計劃應包括哪些内容

6、缺陷跟蹤系統是否了解,說明其中的bug流程

7、若早上上班發現上不了網了,如何定位解決

繼續閱讀