第一篇:【軟件工程師】精選試題五
1.結(jié)構(gòu)化分析方法以數(shù)據(jù)流圖、()和加工說明等描述工具,即用直觀的圖和簡潔語言來描述軟件系統(tǒng)模型。
A.DFD圖B.PAD圖C.IPO圖D.數(shù)據(jù)字典
2.結(jié)構(gòu)化分析(SA)是軟件開發(fā)需求分析階段所使用的方法,()不是SA所使用的工具。
A.DFD圖B.PAD圖C.結(jié)構(gòu)化英語D.判定表
3.Jackson設(shè)計方法是由英國的M.Jackson所提出的。它是一種面向()的軟件設(shè)計方法。
A.對象B.數(shù)據(jù)流C.數(shù)據(jù)結(jié)構(gòu)D.控制結(jié)構(gòu)
4.軟件開發(fā)的結(jié)構(gòu)化生命周期法(SA)的基本假定是認為軟件需求能做到(A),它與早期的軟件開發(fā)方式相比較,其最重要的指導(dǎo)原則應(yīng)該是(B),它常用的描述軟件功能需求的工具是(C)。軟件開發(fā)的原型化方法是一種與結(jié)構(gòu)化方法具有不同策略的方法。其最有效的應(yīng)用領(lǐng)域應(yīng)該是(D),在一般軟件需求分析中,這兩種方法相互的關(guān)系是(E)。
可供選擇的答案
A.①嚴格定義②初步定義
③早期凍結(jié)④動態(tài)改變
B.①自頂向下設(shè)計②分階段開發(fā)
③逐步求精④用戶需求至上
C.①業(yè)務(wù)流程圖、處理說明②軟件流程圖、模塊說明
③數(shù)據(jù)流程圖、數(shù)據(jù)字典④系統(tǒng)流程圖、程序編碼
D.①科學(xué)計算②工程設(shè)計
③管理信息④過程控制
E.①相互替代②從屬關(guān)系
③相互排斥④相互補充
5.軟件設(shè)計中,Jackson方法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法,它將數(shù)據(jù)結(jié)構(gòu)表示為三種基本結(jié)構(gòu),分別為()
A.分支結(jié)構(gòu)、選擇結(jié)構(gòu)和控制結(jié)構(gòu)
B.順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)
C.順序結(jié)構(gòu)、分支結(jié)構(gòu)和嵌套結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)
6.軟件工程方法是在實踐中不斷發(fā)展著的方法,而早期的軟件工程方法是指()
A.原型化方法B.結(jié)構(gòu)化方法
C.面向?qū)ο蠓椒―.功能分解法
7.軟件工程的結(jié)構(gòu)化生命周期方法(SA)是將軟件開發(fā)的全過程化分為互相獨立而又互相依存的階段,軟件的邏輯模型是形成于(A)。作為軟件開發(fā)結(jié)構(gòu)化方法的工具數(shù)據(jù)流圖描述數(shù)據(jù)在軟件流動和被處理變換的過程,它是以圖示的方法來表示(B),它的正確性是保證軟件邏輯模型正確性的基礎(chǔ),(C)項內(nèi)容與它的正確性相關(guān)性最弱。數(shù)據(jù)字典最基本的功能的是(D)。而軟件的結(jié)構(gòu)化設(shè)計(SD)方法中,一般分為總體設(shè)計和詳細設(shè)計兩階段,其中總體設(shè)計主要是建立(E)??晒┻x擇的答案
A.①開發(fā)階段②計劃階段
③分析階段④設(shè)計階段
B.①軟件模型②軟件功能
③軟件結(jié)構(gòu)④軟件加工
C.①數(shù)據(jù)守恒②均勻分解
③文件操作④圖形層次
D.①數(shù)據(jù)庫設(shè)計②數(shù)據(jù)通訊
③數(shù)據(jù)定義④數(shù)據(jù)維護
E.①軟件結(jié)構(gòu)②軟件流程
③軟件模型④軟件模塊
8.結(jié)構(gòu)化生命周期方法具有各種特征,下列各種敘述中,哪一個不是結(jié)構(gòu)化方法的特征?()
A.嚴格定義需求B.劃分開發(fā)階段
C.提供運行模型D.制定規(guī)范文檔
9.在結(jié)構(gòu)化方法中,軟件功能分解應(yīng)屬于軟件開發(fā)中的(A)階段,它最后提供的文檔是軟件的(B)。數(shù)據(jù)流程圖(DFD)是用于描述結(jié)構(gòu)化方法中(C)階段的工具。數(shù)據(jù)字典(DD)是定義(D)系統(tǒng)描述工具中的數(shù)據(jù)的工具。判定樹和判定表是用于描述結(jié)構(gòu)化分析方法中(E)環(huán)節(jié)的工具。
可供選擇的答案
A.①詳細設(shè)計②需求分析
③總體設(shè)計④編程調(diào)試
B.①功能說明書②加工說明書
③可行性分析報告④結(jié)構(gòu)說明書
C.①可行性分析②需求分析
③詳細設(shè)計④程序編碼
D.①數(shù)據(jù)流程圖②系統(tǒng)流程圖
③程序流程圖④軟件結(jié)構(gòu)圖
E.①功能說明②數(shù)據(jù)加工
③流程描述④結(jié)構(gòu)說明
10.結(jié)構(gòu)化程序流程圖中一般包括三種基本結(jié)構(gòu),下述結(jié)構(gòu)中哪一種不屬于其基本結(jié)構(gòu)?()
A.順序結(jié)構(gòu)B.條件結(jié)構(gòu)
D.選擇結(jié)構(gòu)D.嵌套結(jié)構(gòu)
11.軟件工程方法中普遍應(yīng)用的方法之一是結(jié)構(gòu)化生命周期方法(SLC方法),下述哪一個論述不具有SLC方法的主要特征?()
A.嚴格定義需求B.劃分開發(fā)階段
C.規(guī)范文檔格式D.分析控制流程
12.數(shù)據(jù)流圖是用于表示軟件模型的一種圖示方法,在下列可采用的繪制方法中,哪些是常采用的?()
a、自頂向下
b、自底向上
c、分層繪制
d、初步求精
A.全是B.a,c和d
C.b,c和dD.a和c
13.結(jié)構(gòu)化分析方法是一種預(yù)先嚴格定義需求的方法,它在實施時強調(diào)的是分析對象的()
A.控制流B.數(shù)據(jù)流C.程序流D.指令流
14.數(shù)據(jù)流圖是用于軟件需求分析的工具,下列元素哪些是其基本元素()a.數(shù)據(jù)流
b.加工
c.數(shù)據(jù)存儲
d.外部實體
A.a,b和cB.a和c
C.全部D.a,c和d
15.軟件需求分析一般應(yīng)確定的是用戶對軟件的()
A.功能需求B.非功能需求
C.性能需求D.功能需求和非功能需求
16.數(shù)據(jù)字典是對數(shù)據(jù)定義信息的集合,它所定義的對象都包含于()
A.數(shù)據(jù)流圖B.程序框圖
C.軟件結(jié)構(gòu)D.方框圖
17.軟件開發(fā)的原型化方法是一種動態(tài)定義軟件需求的方法,下述條件哪個(些)條件是實施原型化方法所必備的?()
a、成熟的原型化人員
b、快速的成型工具
c、需求了解的準確性
A.a和bB.b和c
C.全部D.c
18.軟件需求分析和設(shè)計過程中,其分析與設(shè)計對象可歸結(jié)成兩個主要的對象,即數(shù)據(jù)和程序,按一般實施原則,對二者的處理應(yīng)該是()
A.先數(shù)據(jù)后程序B.先程序后數(shù)據(jù)
C.與順序無關(guān)D.可同時進行
19.加工是對數(shù)據(jù)流圖中不能再分解的基本加工的精確說明,下述哪個是加工的最核心成分?()
A.加工順序B.加工邏輯
C.執(zhí)行頻率D.激發(fā)條件
20.軟件工程的結(jié)構(gòu)化生命周期方法,通常將軟件生命周期劃分為計劃、開發(fā)和運行三個時期,下述哪些工作應(yīng)屬于軟件開發(fā)期的內(nèi)容?()
a.需求分析
b.可行性研究
c.總體設(shè)計
A.只有aB.a和b
C.全部D.a和c
21.軟件開發(fā)的結(jié)構(gòu)化方法中,常應(yīng)用數(shù)據(jù)字典技術(shù),其中數(shù)據(jù)加工是其組成內(nèi)容之一,下述哪個(些)方法是常采用編寫加工說明的方法?()
a.結(jié)構(gòu)化語言
b.判定樹
c.判定表
A.只有aB.只有b
C.b和cD.全部
22.系統(tǒng)/軟件開發(fā)的原型化方法是一種有效的開發(fā)方法,下述基本環(huán)節(jié)中哪一個是原型形成以后才應(yīng)實施的內(nèi)容?()
A.識別基本需求B.開發(fā)工作模型
C.修正和改進模型D.進行細部說明
23.對軟件的過分分解,必然導(dǎo)致()
A.模塊的獨立性變差B.接口的復(fù)雜程度增加
C.軟件開發(fā)的總工作量增加D.A.、B.、C.都對
第二篇:軟件工程師試題
軟件工程師筆試試題
(請按照題目的序號在另一張紙上做答,并寫好名字和聯(lián)系方式)
1、請比較#include
2、關(guān)鍵字static的作用是什么?
3、請用代碼簡單描述一下你最熟悉的排序算法?
4、寫一個函數(shù)將字符串轉(zhuǎn)換為整數(shù),例如“-1234567”轉(zhuǎn)換成-1234567。
5、有如下程序:
void GetMemory(char **p,int num)
{
*p=(char *)malloc(num);
}
void main()
{
char *str=NULL;
GetMemory(&str, 100);
strcpy(str, “hello”);
printf(str);
}
試問程序運行的結(jié)果是什么?這段程序是否有問題,如果有,請解釋原因?
6、請用代碼簡單描述面向?qū)ο蟮亩鄳B(tài)原理?
7、請簡述進程和線程的差別?
8、請簡述NAND FLASH和NOR FLASH的區(qū)別?
9、有一個有序單向鏈表,每個鏈表節(jié)點數(shù)據(jù)域存儲是字符串,此單向鏈表按節(jié)點中數(shù)據(jù)域字符串的大小,從小到大排序,請用代碼詳細描述將一個字符串插入此單向鏈表的過程,且保存鏈表有序?
10、請描述你對TD-SCDMA的理解?
第三篇:Java軟件工程師試題
姓名:聯(lián)系電話:電子郵件:學(xué)歷:專業(yè):畢業(yè)時間:
Java軟件工程師試題(A卷)
(滿分100分,作答時間為120分鐘)
一、單選題(每題3分,共45分)
1.以下哪個修飾符可用于定義成員常量?B
A.start B.final C.abstract D.No modifier can be used
2.定義一個Java文件名字為:Sub.java,其代碼為:
class Super {
public int i=0;
public Super(){
}
public static void main(){
}
} System.out.println((new Super()).i);i = 1;
這段程序的運行結(jié)果是: B
A.Compile will fail
C.Compile success and print 0
3.給出如下代碼:
class Test {
private int m;
public static void fun(){
// some code......}
} B.Compile success and print 1D.Compile success and print nothing
如何使成員變量m被函數(shù)fun()直接訪問?D
A.將private int m改為protected int m
c.將private int m改為int m
4.下面代碼段中,執(zhí)行之后i和j的值是什么? C
int i = 1;
int j;
j = i++;
A.1,1B.1,2C.2,15.已知如下代碼:A
boolean m;
if(m == false)
System.out.println(“false”);
else
B.將private int m改為public int m D.將private int m改為static int mD.2,2
System.out.println(“true”);
執(zhí)行結(jié)果是什么?
A.Compile will fail
C.true
B.false D.An error will occur when running
6.下面哪個語句是創(chuàng)建數(shù)組的錯誤語句?C
A.float f[][] = new float [6][6];
C.float f[][] = new float [][6];
E.float [][]f = new float [6][];
B.float []f[] = new float [6][6];D.float [][]f = new float [6][6];
7.給出如下代碼:C
String a = new String(“巨匠IT”);
String b = new String(“巨匠IT”);
請問上面的語句在內(nèi)存中分配了多少個內(nèi)存區(qū)?
A.1B.2C.3D.48.給出如下代碼:D
Set set = new HashSet();
set.add(“gjun”);
set.add(“pcschoolchina”);
set.add(“gjun”);
set.add(“it”);
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
上面的代碼最有可能的輸出結(jié)果是:
A.gjun pcschoolchina gjun it
C.it gjun pcschoolchina gjun
9.請看下面的代碼段:
String a = “gjun”;
String b = new String(“gjun”);
String c = new String(“gjun”);
if(a==b){
System.out.println(“true”);
}else{B.gjun pcschoolchina it gjun D.it gjun pcschoolchina
System.out.println(“false”);
}
if(a.equals(b)){
System.out.println(“true”);
}else{
System.out.println(“false”);
}
if(c==b){
System.out.println(“true”);
}else{
System.out.println(“false”);
}
輸出的結(jié)果為:C
A.false truetrue B.truefalse true C.false truefalse D.false false true
10.以下哪個方法用于定義線程的執(zhí)行體?C
A.start()B.init()C.run()
D.main()E.synchronized()
11.給出url地址為“index?page=3&category=tech”,下面哪個描述是正確的:
A.通過request.getAttribute(“page”)可以獲取page的值
B.通過request.getParameter(“page”)可以獲取page的值
C.通過request.getAttribute(“page&category”)可以獲取page和category的值
D.通過request.getParameter(“page&category”)可以獲取page和category的值
12.有一個登錄的表單,其屬性有name=“l(fā)oginForm”, action=“l(fā)oginServlet”, method=“post”,下面哪個描述是正確的:
A.在loginServlet中使用doPost的方法來處理表單的請求
B.在loginServlet中使用doGet的方法來返回表單的處理結(jié)果
C.在loginServlet中,先調(diào)用doPost的方法,然后再調(diào)用service的方法來處理表單的請求
D.在loginServlet中,先調(diào)用doGet的方法,然后再調(diào)用service的方法來處理表單的請求
13.如果需要從一個Servlet中傳遞參數(shù)username到結(jié)果的頁面,下面哪種方式是可行的:
A.request.setParameter(“username”, username);
B.request.setAttribute(“username”, username);
C.response.setParameter(“username”, username);
D.request.setAttribute(“username”, username);
14.下列哪個描述是正確的:
A.EJB3.0包含Session Bean, Entity Bean和JMS
B.在系統(tǒng)中,我們會使用Entity Bean來保存數(shù)據(jù)和處理業(yè)務(wù)流程
C.Session Bean分為有狀態(tài)和無狀態(tài)兩中,其中有狀態(tài)的性能更高
D.遠程調(diào)用EJB組件,可以通過lookup的方式去查找JNDI名稱,獲取代理接口來調(diào)用
15.關(guān)于JUnit的描述,哪個是正確的:
A.JUnit其實是一個main函數(shù)
B.JUnit可以應(yīng)用于系統(tǒng)的整體測試
C.如果要測試一個方法的話可以,使用assertEquals來判定結(jié)果的正確性
D.JUnit中可以的使用@Test來修飾方法,該方法可以帶參數(shù)
二、多選題(每題3分,共45分)
16.如下哪些字符串是Java中的標識符?AE
A.fieldnameB.superC.3number
17.如下哪些是Java中有效的關(guān)鍵字?ACDE
A.constB.NULLC.false
D.#numberE.$numberD.thisE.native
18.在switch語句中,以下哪些參數(shù)類型是合法的?ABCD
A.intB.ByteC.charD.byte
19.下面哪個賦值語句是合法的?BCD
A.float a = 2.0B.double b = 2.0
E.String C.int c = 2D.long d = 2
20.已知如下的命令執(zhí)行java MyTest a b c,請問哪個語句是正確的?CD
A.args[0] = “MyTest a b c”;B.args[0] = “MyTest”;
C.args[0] = “a”;D.args[1] = “b”;
21.下面代碼執(zhí)行后的輸出是什么?ADC
for(int i=0;i<3;i++){
} for(int j=0;j<2;j++){} if(j==1)continue;System.out.println(j+“and”+i);
A.0 and 0
F.1 and 2
b.0 and 1G.2 and 0C.0 and 2H.2 and 1D.1 and 0I.2 and 2 E.1 and 1
22.Java中如下哪個修飾符是正確的?ABE
A.privateB.publicC.default
23.已知如下類的說明:
public class Test {
} private float f = 1.0f;int m = 12;static int n = 1;public static void main(String arg[]){} Test t = new Test();D.friendE.protected
如下哪個代碼可以加入到下劃線中?AD
A.t.f = 0;B.this.n = 1;
24.已知如下類定義:
class Base {
}
public class Child extends Base { public Base(){} public Base(int m){} protected void fun(int n){}C.Test.m = 2;D.Test.n = 3;
// member methods
}
如下哪句可以正確地加入子類中?CD
A.private void fun(int n){}
C.protected void fun(int n){}
B.void fun(int n){} D.public void fun(int n){}
25.下面哪個方法可用于定義新線程類?AD
A.implement the Runnable interface B.add a run()method in the class
C.create an instance of ThreadD.extend the Thread class
26.下面哪個對象是JSP中內(nèi)置對象?
A.contextB.request
C.exceptionD.application
27.現(xiàn)在有一個登錄頁面login.jsp,提交到/LoginServlet來處理,下面哪些描述是正確的。
A.通過request.getParameter(“username”)獲取到login.jsp中的用戶名值
B.通過request.getAttribute(“username”)獲取到login.jsp中的用戶名值
C.可以在LoginSerlvet中的doPost方法中處理請求
D.可以在LoginSerlvet中的service方法中處理請求
28.在LoginServlet處理完成后,跳轉(zhuǎn)到要去到index.jsp頁面,下面那些描述是正確的。
A.response.sendRedirect(“index.jsp”);
B.response.forward(“index.jsp”);
C.request.getRequestDispatcher(“index.jsp”).forward(request, response);
D.request.sendRedirect(“index.jsp”);
29.在Struts2.0中,Action接口默認的result值有:
A.SUCCESSB.FAILUREC.LOGIND.ERROR
E.OUTPUT
30.在Hibernate3.0中,假設(shè)現(xiàn)在有個Student的對象,下面那些HQL的寫法是正確的:
A.select * from StudentB.from Student
C.select s from Student sD.select s from Student s where id>10
三、填空題(每題5分,共10分)
31.補充完整Test類的定義,使其能計算下面的數(shù)列值:
F(1)= 1(n=1)
F(2)= 2(n=2)
F(n)= F(n-1)*n(n>3)
如: 當(dāng)n=5時,f(5)=f(4)*5,f(4)=f(3)*4,f(3)=f(2)*3,f(2)=f(1)*1,f(1)=1
結(jié)果f(5)= 1*1*3*4*5 = 60
public class Test {
public static int calculate(int n){if(①)return 1;return②;} public static void main(String[] args){System.out.println(calculate(3));
}
}
32.請看TestAnimal類的代碼:
public class TestAnimal{
public static void main(String args[]){Animal a1 = new Dog();Animal a2 = new Cat();①②
Dog b1 =③
Cat b2 =④
⑤
}⑥}
interface Animal {
}
class Dog implements Animal{
}
class Cat implements Animal{
} public void run(){} public void catchMouse(){} System.out.println(“catching mouse”);System.out.println(“A cat is running now”);public void run(){} public void watch(){} System.out.println(“watching house”);System.out.println(“A dog is running now”);public void run();
請補充完整上面的代碼,使其運行的時候得到如下結(jié)果:
A dog is running now
A cat is running now
watching house
catching mouse
第四篇:【軟件工程師】精選試題二
一、單向選擇題(四選
一、每小題3分,共18分)
1、軟件的發(fā)展經(jīng)歷了()個發(fā)展階段。
A.一
B.二
C.三
D.四
2、需求分析的任務(wù)不包括()。
A.問題分析
B.系統(tǒng)設(shè)計
C.需求描述
D.需求評審。
3、一個軟件的寬度是指其控制的()。
A.模塊數(shù)
B.層數(shù)
C.跨度
D.厚度
4、當(dāng)模塊中包含復(fù)雜的條件組合,只有()能夠清晰地表達出各種動作之間的對應(yīng)關(guān)系。
A.判定表和判定樹
B.盒圖
C.流程圖
D.關(guān)系圖
5、以下不屬于邏輯覆蓋的是()。
A.語句覆蓋
B.判定覆蓋
C.條件覆蓋
D.基本路徑
6、為適應(yīng)軟件運行環(huán)境的變化而修改軟件的活動稱為()。
A.糾錯性維護
B.適應(yīng)性維護
C.改善性維護
D.預(yù)防性維護
二、填空題(每空2分,共18分)
1.軟件可靠性是指在給定的時間間隔內(nèi),程序成功運行的()。2.高級語言:獨立于機器,面向過程或面向()
3.軟件項目管理的范圍主要集中于3個P上,即:People人員、Proble
m問題和()。
4.人機界面的風(fēng)格第一代界面是命令和()方式。
5.由于維護或在維護過程中其他一些不期望的行為引入的錯誤稱為維護的()。
6.在公式V(G)= E – N + 2中:E為程序圖G中邊的總數(shù); N 為程
序圖中結(jié)點的總數(shù)。V(G)又稱為圖G的環(huán)形()。
7.任何一個基于計算機系統(tǒng)都可以用輸入-處理-輸出()圖來描述,它
將該系統(tǒng)轉(zhuǎn)換成一個信息變換模型。
8.為提高可交互性一般對所有可能造成損害的用戶操作動作,應(yīng)堅持要
求用戶(),例如,提問“你確實要刪除??”。
9.文檔是一種數(shù)據(jù)媒體和其上所記錄的(數(shù)據(jù))。
三、判斷題(每小題2分,共24分,錯誤打X、正確打√)
1.用戶對軟件需求的描述不精確,往往是產(chǎn)生軟件危機的原因之一。()2.目前,軟件項目的進度安排的兩種比較常用的方法是程序評估與審查技術(shù)
(PERT)和關(guān)鍵路徑法(CPM)。()
3.一個好的開發(fā)人員應(yīng)具備的素質(zhì)和能力包括善于與周圍人員團結(jié)協(xié)作,建
立良好的人際關(guān)系,善于聽取別人的意見。()
4.目前的絕大多數(shù)軟件都不適合于快速原型技術(shù)。()
5.面向數(shù)據(jù)的設(shè)計方法的適用場合是具有明顯的層次信息結(jié)構(gòu)的應(yīng)用如:企
事業(yè)的信息管理系統(tǒng);系統(tǒng)軟件(如操作系統(tǒng))等。()
6.缺乏處理大型軟件項目的經(jīng)驗。是產(chǎn)生軟件危機的唯一原因。()7.通常緊致性好的語言一致性就好。()
8.測試計劃、測試用例、出錯統(tǒng)計和有關(guān)的分析報告一般不用長期保存。()9.數(shù)據(jù)輸入的一般準則中包括保證信息顯示方式與數(shù)據(jù)輸入方式的協(xié)調(diào)一
致;允許用戶定做輸入格式等內(nèi)容。()
10.軟件也會磨損和老化。()
11.完善性維護是提高或完善軟件的性能。()
12.McCabe建議模塊規(guī)模應(yīng)滿足:V(G)≤20。()
四、簡答題(每小題4分,共20分)
1、程序設(shè)計語言的三種類型和特點是什么?
2、軟件危機
3、軟件項目的質(zhì)量管理
4、好的編程風(fēng)格應(yīng)遵循哪四條規(guī)則?
5、軟件測試中按照錯誤的性質(zhì)和范圍進行分類可分為:“功能錯誤”及其它哪些錯誤?
五、綜合題(每小題10分,共20分)
1、選擇語言時要考慮的因素有:項目的應(yīng)用領(lǐng)域、項目中算法、計算的復(fù)雜性和其余哪些內(nèi)容?
2、已知一個軟件項目的記錄,開發(fā)人員M=3人,其代碼行數(shù)=12.1KLOC,工作
量E=24PM,成本S=168000美元,錯誤數(shù)N=29,文檔頁數(shù)Pd=365頁。試計算開發(fā)該軟件項目的生產(chǎn)率P、平均成本C、代碼出錯率EQR和文檔率D。
第五篇:軟件測試工程師筆試題
軟件測試工程師筆試題一及答案
一、基礎(chǔ)理論
1、軟件測試的結(jié)束標準是什么?
2、一套完整的測試應(yīng)該由哪些階段組成?分別闡述一下各個階段。
3、什么是缺陷報告?
4、缺陷報告的作用
5、缺陷報告的要點
6、軟件測試缺陷報告的“5C”原則
7、缺陷的二八定理
8、軟件測試的流程
9、測試計劃的目的是什么?測試計劃的內(nèi)容都包括什么?其中哪些是最重要的?
10、請試著比較一下黑盒測試、白盒測試、單元測試、集成測試、系統(tǒng)測試、驗收測試的區(qū)別與聯(lián)系。
11、Alpha 測試與beta 測試的區(qū)別
答案:
一、基礎(chǔ)理論
1、測試計劃中所有規(guī)定的測試內(nèi)容和回歸測試都已經(jīng)運行完成或根據(jù)上級主管對測試結(jié)果的意見,就可以結(jié)束本次測試
2、計劃階段、設(shè)計階段、白盒單元、白盒集成、黑盒單元、黑盒集成、系統(tǒng)測試、回歸測試、驗收測試
一套完整的測試應(yīng)該由五個階段組成:
1)測試計劃首先,根據(jù)用戶需求報告中關(guān)于功能要求和性能指標的規(guī)格說明書,定義相應(yīng)的測試需求報告,即制訂黑盒測試的最高標準。以后所有的測試工作都將圍繞著測試需求來進行,符合測試需求的應(yīng)用程序即是合格的,反之即是不合格的;同時,還要適當(dāng)選擇測試內(nèi)容,合理安排測試人員、測試時間及測試資源等。
2)測試設(shè)計將測試計劃階段制訂的測試需求分解、細化為若干個可執(zhí)行的測試過程,并為每個測試過程選擇適當(dāng)?shù)臏y試用例(測試用例選擇的好壞將直接影響測試結(jié)果的有效性)。
3)測試開發(fā)建立可重復(fù)使用的自動測試過程。
4)測試執(zhí)行執(zhí)行測試開發(fā)階段建立的自動測試過程,并對所發(fā)現(xiàn)的缺陷進行跟蹤管理,測試執(zhí)行一般由單元測試、組合測試、集成測試、系統(tǒng)聯(lián)調(diào)及回歸測試等步驟組成,測試人員應(yīng)本著科學(xué)負責(zé)的態(tài)度,一步一個腳印地進行測試。
5)測試評估結(jié)合量化的測試覆蓋域及缺陷跟蹤報告,對于應(yīng)用軟件的質(zhì)量和開發(fā)團隊的工作進度及工作效率進行綜合評價。
3、缺陷報告是描述軟件缺陷現(xiàn)象和重現(xiàn)步驟地集合。軟件缺陷報告Software Bug Report(SBR)或軟件問題報告Software Problem Report(SPR)
4、缺陷報告是軟件測試人員的工作成果之一,體現(xiàn)軟件測試的價值
缺陷報告可以把軟件存在的缺陷準確的描述出來,便于開發(fā)人員修正
缺陷報告可以反映項目/產(chǎn)品當(dāng)前的質(zhì)量狀態(tài),便于項目整體進度和質(zhì)量控制
軟件測試缺陷報告是軟件測試的輸出成果之一,可以衡量測試人員的工作能力
5、標題(Title)
簡潔、準確、完整、反映缺陷本質(zhì)、方便查詢
前綴 + 標題正文,標題正文采用結(jié)果和動作,或者現(xiàn)象和位置的方式表達
步驟(Steps)
可復(fù)現(xiàn)、完整、簡潔、準確
按數(shù)字編號
實際結(jié)果(Actual results)
準確、詳細描述軟件的現(xiàn)象和特征
期望結(jié)果(Expected results)
準確、豐富、有理有據(jù)
平臺(Platforms)
準確
截圖(Screenshots)
準確反映缺陷特征
注釋(Notes)
關(guān)于缺陷的輔助說明
6、內(nèi)容準確(Correct):
每個組成部分的描述準確,不會引起誤解
步驟簡潔(Concise):
只包含必不可少的信息,不包括任何多余的內(nèi)容
內(nèi)容清晰(Clear):
每個組成部分的描述清晰,易于理解
結(jié)構(gòu)完整(Complete):
包含復(fù)現(xiàn)該缺陷的完整步驟和其他本質(zhì)信息
風(fēng)格一致(Consistent):
按照一致的格式書寫全部缺陷報告
7、在分析、設(shè)計、實現(xiàn)階段的復(fù)審和測試工作能夠發(fā)現(xiàn)和避免80%的缺陷,而系統(tǒng)測試又能找出其余缺陷中的80%,最后的4%的缺陷可能只有在用戶大范圍、長時間使用后才會暴露出來。
8、制訂測試計劃、設(shè)計測試用例、實施測試、提交缺陷報告、測試總結(jié)。
9、測試計劃的目的:編寫軟件測試計劃的目的是指導(dǎo)測試組成員進行工作和讓測試組以外的項目成員了解測試工作的。
測試計劃的內(nèi)容:測試目的和測試項目簡介、測試參考文檔和測試提交文檔、術(shù)語和定義、測試策略、確定測試內(nèi)容、資源、測試進度、測試員的職責(zé)與任務(wù)分配、項目通過或失敗的標準、暫
停和重新啟動測試的標準、風(fēng)險和問題等。
最重要的:測試策略、確定測試內(nèi)容、資源、測試進度、測試員的職責(zé)與任務(wù)分配、項目通過或失敗的標準
10、黑盒測試:把測試對象當(dāng)成一個黑盒子,測試人員完全不考慮邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程式的需求說明書來檢查程式的功能是否滿足它的功能說明。
白盒測試:把測試對象當(dāng)成一個透明的盒子,允許測試人員利用程序內(nèi)部邏輯結(jié)構(gòu)及相關(guān)信息,設(shè)計或選擇測試用例,對程式所有邏輯路徑進行測試。
單元測試:白盒測試的一種,對軟件設(shè)計中的單元模塊進行測試。
集成測試:在單元測試的基礎(chǔ)上,對單元模塊之間的連接和組裝w進行測試。
系統(tǒng)測試:在所有都考慮的情況下,對系統(tǒng)進行測試。
驗收測試:第三方進行的確認軟件滿足需求的測試。