软件测试期末考试
1 名詞解釋
軟件測試指為了發現軟件中的錯誤而執行軟件的過程。它的目標是盡可能多地發現軟件中存在的錯誤,將測試結果作為糾錯的依據。
指對一項特定的軟件產品進行測試任務的描述,體現測試方案方法、技術和策略。其內容包括:測試目標,測試環境,輸入數據,測試步驟,預期結果,測試腳本等(屬性)
是一種驗證已變更系統的完整性與正確性的測試技術,用于確定修改沒有帶來副作用
面向對象技術具有信息隱蔽、封裝、繼承、多態和動態綁定等特性,提高了軟件開發質量,但同時也給軟件測試提出了新的問題,增加了測試的難度。
按照測試執行主體劃分,軟件測試為: α測試(內測), β測試(公測),第三方測試
在軟件開發環境中,開發者和用戶共同去檢測與證實軟件。其環境是受開發方控制的,用戶的數量相對比較少,時間比較集中。
用戶測試,通過用戶大量使用評價檢查軟件。其環境環境是不受開發方控制的, 用戶數量相對比較多,時間不集中。
由第三方機構來進行測試,由開發方和用戶方都相對獨立的組織進行軟件測試。
單元測試:指對源程序中每一個程序單元進行測試,檢查各個模塊是否 正確實現規定的功能,從而發現模塊在編碼中或算法中的錯誤,它涉及編碼和 詳細設計的文檔
是指模擬被測試的模塊所調用的模塊,而不是軟件產品的組成的部分
用于模擬被測模塊的上一級模塊,相當于被測模塊的主程序,它接收測試數據并將這些數據傳送到被測試模塊,單元測試一個函數單元時,被測單元本身是不能獨立運行的,需要為其傳送數據,為此寫驅動
樁模塊的使命除了使得程序能夠編譯通過之外,還需要模擬返回被代替的模塊的各種可能返回值(什么時候返回什么值需要根據測試用例的情況來決定)。
驅動模塊的使命就是根據測試用例的設計去調用被測試模塊,并且判斷被測試模塊的返回值是否與測試用例的預期結果相符)
集成測試:主要目標是驗證組成軟件系統各模塊的接口和交互作用,分增量式和非增量式。
非增量式測試:
非增量式測試是采用一步到位的方法來構造測試:對所有模塊進行個別的單元測試后,按照程序結構圖將各模塊連接起來,把連接后的程序當作一個整體進行測試。
增量式測試:
逐次將未曾集成測試的模塊和已經集成測試的模塊(或子系統)結合成程序包,再將這些模塊集成為較大系統,在集成的過程中邊連接邊測試,以發現連接過程中產生的問題。
增量式測試方法具有:自頂向下,自底向上,以及三明治集成測試方法
性能的測試分類:負載測試,壓力測試,可靠性測試,數據庫測試,安全性測試:
負載測試是通過逐步增加系統負載,測試系統性能的變化,并最終確定在滿足性能指標的情況下,系統所能承受的最大負載量的測試。
是給軟件不斷加壓,強制其在極限的情況下運行,觀察它可以運行到何種程度,從而發現性能缺陷。
軟件系統在規定的時間內以及規定的環境條件下,完成規定功能(可服務性,可安裝性,可維護性等)的能力。
有關驗證應用程序的安全服務和識別潛在安全性缺陷的過程,在應付非授權的內部/外部,非法侵入或故意損害時的系統防護能力,檢驗系統是否有能力時使可能存在的風險傷害在可接受范圍內。
2 填空題
| 功能 | 影響系統功能,邏輯的缺陷 |
| 用戶界面 | 影響人機交互特性,屏幕格式,輸入輸出格式等缺陷 |
| 文檔 | 影響發布和維護,包括注釋,用戶手冊,設計文檔 |
| 軟件包 | 軟件配置庫,變更管理,版本控制 |
| 性能 | 不滿足系統可測量的屬性值,如執行時間,事務處理速度等 |
| 系統/模塊接口 | 與其他模塊或參數、控制塊或參數列表等不匹配、沖突 |
按照軟件測試主體執行劃分,軟件測試分為α測試,β測試,第三方測試。
軟件測試模型:V,W,X,H,前置模型
軟件測試流程:
測試計劃,測試設計,測試開發,測試執行,測試評估
邏輯覆蓋是對程序內部有判定 存在的邏輯結構設計測試用例,根據程序內部的邏輯覆蓋程度又可分為_語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋6種覆蓋技術。
黑金測試是功能測試,用黑盒技術設計測試用例有4種方法:等價類劃分、邊界值分析、錯誤推測、因果圖.
軟件測試般經過4個測試: 單元測試、集成測試、確認測試、系統測試
在軟件測試階段,測試步驟按次序可以劃分為以下幾步:單元測試、集成測試、系統測試、驗收測試
在單元測試中,需要為被測模塊設計驅動模塊和_樁模塊。驅動模塊用來模擬被測模塊的上級調用模塊,樁模塊用來代替 被測模塊所調用的模塊。
漸增式測試有兩種不同的組裝模塊的方法:自頂向下結合、自底向上結合
常見的性能測試指標:響應時間,并發用戶數,吞吐量,性能計數器,資源利用率。
3 簡答題
3.1 軟件缺陷
3.2 軟件缺陷產生的原因
- 階段:
軟件系統的復雜性呈現指數增長,需求變化增加了軟件系統開發的復雜性,產生了大量不確定因素,導致許多缺陷產生。 - 項目管理:
開發時,由于時間的限制,導致編寫文檔缺失,而文檔的貧乏容易使得代碼維護和修改變得很難。 - 團隊工作
團隊組成人員本身的認知層面、擁有知識、處事原則各不相同。 - 復審階段
由于沒有或不全面的復審導致軟件產生缺陷
3.3軟件測試的目的
3.4 軟件測試師一般承擔的工作
進行測試設計、寫作測試文檔(測試計劃、測試方案、測試用例等)
執行測試,發現軟件缺陷,提交缺陷報告,并確認缺陷最終得到了修正
3.5 V,W,X模型的比較
V模型:
先開發后測試;
- 優點:線性,步驟簡單有序
- 缺點:忽略了測試的對象不應該僅僅包括程序,沒有明確指出對需求、設計的測試
W模型:
由兩個V模型組成,開發與測試并行
- 優點:有利于盡早發現問題,
- 缺點:測試與開發保持著串行的線性前后關系,無法支持迭代開發模型
H模型:
強調測試是獨立的,大部分時間可交叉,只要測試準備完成,就可以執行測試;
- 優點:H模型兼顧效率和靈活性,可以被應用到各種規模類型的軟件項目上
- 缺點:管理型要求高;技能要求高:H模型要求能夠很好的定義每個迭代的規模,不能太大也不能太小;測試就緒點分析困難:測試很多時候,你并不知道測試準備到什么時候是合適的,就緒點在哪里,就緒點的標準是什么,這就對后續的測試執行的啟動帶來很大困難;對于整個項目組的人員要求非常高;
3.6 回歸測試與一般測試
3.7 web測試
Web測試主要分為六個部分:
功能測試、性能測試、用戶界面測試、兼容性測試、安全測試、接口測試
用戶界面測試:
1.導航測試:導航是否直觀?Web系統的主要部分是否可通過主頁存取?Web系統是否需要站點地圖、搜索引擎或其他的導航幫助?web應用系統頁面結構、導航、菜單、連接的風格是否一致
2. 圖形測試:1)要確保圖形有明確的用途,圖片或動畫不要胡亂地堆在一起,以免浪費傳輸時間。Web應用系統的圖片尺寸要盡量地小,并且要能清楚地說明某件事情,一般都鏈接到某個具體的頁面。
2)驗證所有頁面字體的風格是否一致。
3)背景顏色應該與字體顏色和前景顏色相搭配。
4)圖片的大小和質量也是一個很重要的因素,一般采用JPG或GIF壓縮,
5)最后,需要驗證的是文字回繞是否正確。如果說明文字指向右邊的圖片,應該確保該圖片出現在右邊。不要因為使用圖片而使窗口和段落排列古怪或者出現孤行。
內容測試:檢驗Web應用系統提供信息的正確性、準確性和相關性。信息是否可靠,是否有語法或拼寫錯誤,是否可以找到與當前瀏覽信息相關的信息列表或入口。
整體界面測試:給用戶的整體感覺,是否感到舒適,是否能憑直覺就知道找到的信息在什么地方,設計風格是否一致。
3.8 白盒測試:
定義:
指把測試對象看成一個打開的盒子,測試人員需了解程序的內部結構和處理過程,以檢查處理過程的細節為基礎,對程序中盡可能多的邏輯路徑進行測試,檢驗內部控制結構和數據結構是否有錯,實際的運行狀態與預期的狀態是否一致。
具體方法
白盒測試適應的測試有:
語句覆蓋:線覆蓋,面覆蓋,若干個測試用例,是被測試程序中每條可執行語句至少執行一次。
判定覆蓋:設計的測試用例使程序中每個判定至少分別取真,假分支各一次。
條件覆蓋:每個判斷中每個條件的可能取值至少一次。
判定/條件覆蓋:通過設計足夠多的用例,是判斷條件中的所有條件執行1次取值,同時所有判斷的可能結果至少執行一次。
條件組合覆蓋:不僅可以覆蓋所有條件可能取值的組合,還可以覆蓋所有判斷的可取分支,但會漏掉所有的路徑。
路徑覆蓋:覆蓋率最大,但是呈指數級增長
循環覆蓋:(限制循環次數,有單循環和嵌套循環)
黑盒測試
定義
黑盒測試是指對程序功能性的測試,也就是不考慮內部的具體實現,僅僅就程序的功能是否滿足需求進行測試,相當于一個看不見內部的黑盒子。
黑盒測試常用的方法
1:等價類劃分 :
等價類是指某個輸入域的子集合
分類
有效等價類,指符合輸入域的子集合
無效等價類 ,指不符合輸入域的子集合
2:邊界值分析法
3:因果圖法
4:判定表組合法
4 應用設計題
4.1 等價類劃分
某城市電話號碼由三部分組成,分別是:
地區碼—— 空白或三位數字;
前 綴—— 非‘0’或‘1’開頭的三位數字;
后 綴—— 4位數字。
假定被測程序能接受一切符合上述規定的電話號碼, 拒絕所有不符合規定的電話號碼。要求采用弱健壯等價類方法,即同時考慮有效值和無效值,基于單缺陷假設
(1)首先進行輸入條件等價類劃分,并編號,寫出等價類表
(2)設計測試用例,以便覆蓋所有的有效等價類
(3)為每一個無效等價類設計一個測試用例,列出完整的測試用例表。
4.2 基本路徑測試
使用基本路徑測試方法,為以下程序段設計測試用例。
(1)畫出程序的控制流圖。
(2)計算程序的循環復雜度,導出程序基本路徑集中的獨立路徑條數。
(3)導出基本路徑集,確定程序的獨立路徑。
(4)根據(3)中的獨立路徑,設計測試用例(確保基本路徑集中的每一條路徑的執行)的輸入數據和預期輸出。
void Do (int X,int A,int B)
{
1 if ( (A>1)&&(B=0) )
2 X = X/A;
3 if ( (A=2)||(X>1) )
4 X = X+1;
5 }
由于控制流圖假設的是單條件,因此對于復合條件,可將其分解為多個單個條件,并映射成控制流圖。
1: A>1;2: B=0 ;3: X = X/A ;4: A=2 ;5:X>1 ;6: X = X+1;7: }
4.3三角形等價類劃分
5 設計題
測試杯子
6 理解辨析題
6.1解釋測試技術的作用與意義:
軟件測試:
用來確認一個程序的品質或性能是否符合開發之前所提出的一些要求
軟件測試就是在軟件投入運行前,對軟件需求分析、設計規格說明和編碼的最終復審,是軟件質量保證的關鍵步驟。
軟件測試是為了發現錯誤而執行程序的過程
6.2 作為一名軟件測試工程師,需要具備哪些能力?
軟件測試工程師
總結
- 上一篇: 【Java基础】网络编程-计算机网络基本
- 下一篇: 【cocos2dx】记录解决csb创建f