拍題目搜答案的軟件3篇
拍題目搜答案的軟件(1)
搜題軟件:幫忙還是添亂?作者:華政來源:《內蒙古教育·基教版》2016年第04期
????????如今,不少孩子做作業遇到困難的時候,會拿出手機對著題拍一下,然后通過搜題軟件上傳,答案和解題過程會很快找出來。然而,這種搜題軟件,到底是幫忙還是添亂?
????????筆者使用手機的應用寶簡單地搜索了一下,就找到了不下15種搜題軟件,幾乎每一種的功能都包括輸入搜題、拍照搜題、語音搜題、答案解析、同步練習等,一些功能強大的,甚至連作文都“幫”著寫好了。因為功能強大,使用簡單,所以每一款軟件都有不少擁躉。
????????搜題軟件讓筆者聯想到了小時候練習冊背后的答案,那時候老師千叮萬囑:做題之前不能看答案。但是,還是有很多自覺性不強的學生無視老師的叮囑,直接抄答案。幾番勸導無用,老師終于下了狠手:發給學生的練習冊,背后的答案全部撕掉上交。
????????可以說,搜題軟件和練習冊背后的答案如出一轍,初衷都是好的,一方面可以讓學生做完作業自己確定對錯,另一方面也能在學生實在不會做的情況下提供幫助。但是,實現這種初衷,前提是要用好、用對。事實上,留作業的目的是鍛煉學生的思考和學習能力,而搜題軟件一旦錯用甚至濫用,很容易讓學生形成依賴,把寫作業變成了簡單的抄作業,這等于是放棄了獨立思考和自我學習的機會,對學生的成長是非常不利的。
????????在幾乎人人都有手機的大背景下,要想像過去撕掉練習冊背后的答案一樣,禁止孩子使用搜題軟件不太現實,但也不能聽之任之。筆者認為,一方面,老師和家長應該加強引導孩子們正確使用搜題軟件,讓它成為孩子的好幫手;另一方面,老師也應該嘗試讓作業突破現有框架,以一種更為靈活和貼近生活的方式出現在學生面前。這樣做,不僅能有效抑制搜題軟件的濫用,也有利于培養和提升學生的綜合能力,何樂而不為?
拍題目搜答案的軟件(2)
關于學生使用搜題軟件的反思不能丟了學習的樂趣
晚上輔導孩子做作業,孩子遇到了一道難題,他拿來問我。我勾劃良久,還是感到無從下手,只是隱約感覺到需要用到一個固定的公式,可是時過境遷,早就忘記。孩子不耐煩地說:“叫下個搜題軟件吧,你反對,這算徹底做不出來了吧!” 孩子的話又勾起了我們對搜題軟件的爭議。早就聽他說過,他們班里有很多同學都下載有學霸君、阿凡提、小猿搜題、作業幫等搜題軟件,不管哪個年級、哪類學科,只需把不會的題目拍個照片上傳,不出幾秒鐘,軟件就會完整地給出解題過程,多么輕松,他們班已經有學生用這些軟件一年半載了,有些學習成績在班級還一直是數一數二的。 聯系一個時期以來,搜題軟件一直處于爭議當中,支持者認為它是可移動的貼身家教,反對者認為它只會增長學生的惰性。 回想當年,在自己的學習經歷中,也曾經遇到過一道道難題,大家都習慣地把它們叫做“攔路虎”。攔路虎擋道,豈能畏難不前?于是就開動腦筋、心手并用,畫圖、查資料、添加輔助線、正面推理、反面證明,基本上把能想到的方法全部用上。有時一道難題下來,要用掉演草紙數張、耗時幾十分鐘。但攻克難題那一刻,真的感受到了潛力的無窮、知識的奧秘、學習的樂趣。印象最深的是高中階段,與兩個同學摳一道難題,不達目的誓不罷休,群策群力、集思廣益,最終耗時近三個小時,終于攻克了那道難題,一看時間,早已是深夜。幾個人上床睡覺,睡得格外香甜,其酣暢淋漓不亞于夢中笑醒,苦悶的學習也變得富有生機。設若當時也有了搜題軟件,是否還能找回當年的樂趣? 聯想起曾經看過的一篇文章,更有啟示。在動物界,狼是一種非常聰明的動物,如果讓單個的狗與單個的狼搏斗,敗北的肯定是狗。雖然狗與狼是近親,它們的體型也難分伯仲。但為什么敗北的總是狗呢?有人曾就這問題仔細地將狗與狼作對此研究。結果發現,經人類長期豢養的狗,因為不面臨生存的危機,腦容量遠遠小于狼:而生長在野外的狼,為了生存,它們的大腦被很好地開發,不但非常有創造性,而且有著異乎尋常的生存智慧。狗并不是天生就比狼愚蠢,而是后天豢養的結果,有了飽食終日,也就沒了戰勝獵物的樂趣,一旦條件優越,就難免不思進取。 所以我鄭重地告訴孩子:我不主張用搜題軟件,即使你不會因此養成惰性,但也很難享受到學習的樂趣。
拍題目搜答案的軟件(3)
一、 選擇題
1.軟件測試的目的是( B )。
A)試驗性運行軟件 B)發現軟件錯誤 C)證明軟件正確 D)找出軟件中全部錯誤
2.軟件測試中白盒法是通過分析程序的( B )來設計測試用例的。
A)應用范圍 B)內部邏輯 C)功能 D)輸入數據
3.黑盒法是根據程序的( C )來設計測試用例的。
A)應用范圍 B)內部邏輯 C)功能 D)輸入數據
4.為了提高軟件測試的效率,應該( D )。
A)隨機地選取測試數據 B)取一切可能的輸入數據作為測試數據
C)在完成編碼以后制定軟件的測試計劃 D)選擇發現錯誤可能性最大的數據作為測試用例
5.與設計測試用例無關的文檔是( A )。
A)項目開發計劃 B)需求規格說明書 C)設計說明書 D)源程序
6.測試的關鍵問題是( B )。
A)如何組織軟件評審 B)如何選擇測試用例
C)如何驗證程序的正確性 D)如何采用綜合策略
7.軟件測試用例主要由輸入數據和( C )兩部分組成。
A)測試計劃 B)測試規則 C)預期輸出結果 D)以往測試記錄分析
8.成功的測試是指運行測試用例后( B )。
A)未發現程序錯誤 B)發現了程序錯誤 C)證明程序正確性 D)改正了程序錯誤
9.下列幾種邏輯覆蓋標準中,查錯能力最強的是( D )。
A)語句覆蓋 B)判定覆蓋 C)條件覆蓋 D)條件組合覆蓋
10.在黑盒測試中,著重檢查輸入條件組合的方法是( D )。
A)等價類劃分法 B)邊界值分析法 C)錯誤推測法 D)因果圖法
11.單元測試主要針對模塊的幾個基本特征進行測試,該階段不能完成的測試是( A )。
A)系統功能 B)局部數據結構 C)重要的執行路徑 D)錯誤處理
12.軟件測試過程中的集成測試主要是為了發現( B )階段的錯誤。
A)需求分析 B)概要設計 C)詳細設計 D)編碼
13.不屬于白盒測試的技術是( D )。
A)路徑覆蓋 B)判定覆蓋 C)循環覆蓋 D)邊界值分析
14.集成測試時,能較早發現高層模塊接口錯誤的測試方法為( A )。
A)自頂向下漸增式測試 B)自底向上漸增式測試 C)非漸增式測試 D)系統測試
15.確認測試以( A )文檔作為測試的基礎。
A)需求規格說明書 B)設計說明書 C)源程序 D)開發計劃
16.使用白盒測試方法時,確定測試數據應根據( A )和指定的覆蓋標準。
A)程序內部邏輯 B)程序的復雜度 C)使用說明書 D)程序的功能
17.程序的三種基本結構是( B )。
A)過程子、程序、分程序 B)順序、選擇、循環
C)遞歸、堆棧、隊列 D)調用、返回、轉移
18.結構化程序設計的一種基本方法是( D )
A)篩選法 B)遞歸法 C)歸納法 D)逐步求精法
19.軟件調試的目的是( A )
A)找出錯誤所在并改正之 B)排除存在錯誤的可能性
C)對錯誤性質進行分類 D)統計出錯的次數
20.程序三種基本結構的共同特點是( D )
A)不能嵌套使用 B)只能用來寫簡單程序
C)已經用硬件實現 D)只有一個入口和一個出口
21.下面說法正確的是( C )。
A)經過測試沒有發現錯誤說明程序正確 B)測試的目標是為了證明程序沒有錯誤
C)成功的測試是發現了迄今尚未發現的錯誤的測試 D)成功的測試是沒有發現錯誤的測試
22.覆蓋準則最強的是( D )。
A)語句覆蓋 B)判定覆蓋
C)條件覆蓋 D)路徑覆蓋
23.發現錯誤能力最弱的是( A )。
A)語句覆蓋 B)判定覆蓋
C)條件覆蓋 D)路徑覆蓋
24.實際的邏輯覆蓋測試中,一般以( C )為主設計測試用例。
A)條件覆蓋 B)判定覆蓋
C)條件組合覆蓋 D)路徑覆蓋
25.下面( D )方法能夠有效地檢測輸入條件的各種組合可能引起的錯誤。
A)等價類劃分 B)邊界值分析
C)錯誤推測 D)因果圖
26.與確認測試階段有關的文檔是( A )。
A)需求規格說明書 B)概要設計說明書
C)詳細設計說明書 D)源程序
27.超出軟件工程范圍的測試是( D )。
A)單元測試 B)集成測試
C)確認測試 D)系統測試
28.軟件測試不需要了解軟件設計的( D )。
A)功能 B)內部結構
C)處理過程 D)條件
29.( B )方法需要考察模塊間的接口和各模塊之間的聯系。
A)單元測試 B)集成測試
C)確認測試 D)系統測試
30.調試應該由( B )完成。
A)與源程序無關的程序員 B)編制該源程序的程序員
C)不了解軟件設計的機構 D)設計該軟件的機構
31.基線是軟件生存期中各開發階段的一個特定點,它可作為一個檢查點,當采用的基線發生錯誤時,我們可以返回到最近和最恰當的( C )上。
A)配置項 B)程序 C)基線 D)過程
32.版本管理是對系統不同版本進行的( A )過程
A)標識與跟蹤 B)標識變更 C)發布變更 D)控制變更
33.在變更控制中,管理各個用戶存取和修改一個特定軟件配置對象的權限是( D )。
A)異步控制 B)同步控制
C)存取控制 D)基線控制
34. 在配置管理中,“登入”和“檢出”處理實現了兩個重要的變更控制要素,即同步控制和( B )。
A)異步控制 B)同步控制
C)基線控制 D)存取控制
35. 按照軟件配置管理的原始指導思想,受控制的對象應是( C )。
A)軟件元素 B)軟件配置項
C)軟件項目 D)軟件過程
36. 軟件配置項是軟件配置管理的對象,指的是軟件工程過程中所產生的( B )。
A)接口 B)軟件環境 C)信息項 D)版本
37.在變更控制中,可用來確保由不同用戶所執行的并發控制是( B )。
A)異步控制 B)同步控制 C)存取控制 D)基線控制
38.以下說法錯誤的是( A )。
A)軟件配置管理簡稱SCI(SCM)
B)軟件配置項是配置管理的基本單位
C)軟件配置實際上是一動態的概念
D)軟件工程過程中某一階段的變更均要引起軟件配置的變更
39.在設計人機界面時,應主要考慮的因素有(D)。
A) 系統響應時間 B)錯誤處理 C)用戶求助機制 D)以上都是
40.人機界面的風格大致經過了( D )代的演變
A)一 B)二 C)三 D) 四
二、 填空題
1.軟件測試的目的是盡可能多地發現軟件中存在的 錯誤 ,將測試 測試結果 作為糾錯的依據。
2.測試階段的基本任務是根據軟件開發各階段的 文檔資料 和程序的 內部結構 ,精心設計一組 測試用例 ,利用這些實例執行 程序 ,找出軟件中潛在的各種 錯誤 和 缺陷 。
3.測試用例由 輸入數據 和預期的 輸出數據 兩部分組成。
4.軟件測試方法一般分為兩大類: 動態測試 方法和 靜態測試 方法。
5.動態測試通過 運行程序 發現錯誤。根據 測試用例 的設計方法不同,動態測試又分為 黑盒測試 與 白盒測試 兩類。
6.靜態測試采用 人工檢測 和 計算機輔助靜態分析 的手段對程序進行檢測。
7.人工審查程序偏重于 編碼質量 的檢驗,而軟件審查除了審查 編碼 還要對各階段 軟件產品 進行檢驗。
8.計算機輔助靜態分析利用 靜態分析 工具對測試程序進行 特性 分析。
9.黑盒法只在軟件的 接口 處進行測試,依據 需求規格 說明書,檢查程序是否滿足 功能 要求。
10.白盒法必須考慮程序的 內部結構 和 處理過程 ,以檢查 處理過程 的細節為基礎,對程序中盡可能多的邏輯路徑進行 測試 。
11.白盒測試是 結構 測試,被測對象是 源程序 ,以程序的 內部邏輯 為基礎設計測試用例。
12.邏輯覆蓋是對程序內部有 判定 存在的邏輯結構設計測試用例,根據程序內部的邏輯覆蓋程度又可分為 語句覆蓋 判定覆蓋 條件覆蓋 判定/條件覆蓋 條件組合覆蓋 路徑覆蓋6種覆蓋技術。
13.實際的邏輯覆蓋測試中,一般以 條件組合 覆蓋為主設計測試用例,然后再補充部分用例,以達到 路徑 覆蓋測試標準。
14.循環覆蓋是對程序內部有 循環 存在的邏輯結構設計測試用例,它通過限制 循環次數 來測試。
15.基本路徑測試是在程序 控制流程圖 基礎上,通過分析控制構造的 環路 復雜性,導出 基本路徑 集合,從而設計測試用例。
16.黑盒測試是 功能 測試,用黑盒技術設計測試用例有4種方法:等價類劃分 邊界值分析 錯誤推測 因果圖。
17.等價類劃分從程序的 功能 說明,找出一個輸入條件(通常是 一句話 或 一個短語 ),然后將每個輸入條件劃分成兩個或多個 等價類 。
18.邊界值分析是將測試 邊界 情況作為重點目標,選取正好等于、剛剛大于或剛剛小于邊界值 的測試數據。如果輸入或輸出域是一個有序集合,則應選取集合的 第一個 元素和 最后一個 元素作為測試用例。
19.在測試程序時,根據經驗或直覺推測程序中可能存在的各種錯誤,稱為 錯誤推測法 。
20.因果圖的基本原理是通過畫 因果 圖,把用自然語言描述的 功能說明 轉換為 判定表 ,最后為判定表每一列設計一個測試用例。
21.測試的綜合策略是在測試中,聯合使用各種 測試 方法。通常先用 黑盒 法設計基本的測試用例,再用 白盒 法補充一些必要的測試用例。
22.軟件測試過程中需要3類信息:軟件配置 、 測試配置 和 測試工具 。
23.軟件測試一般經過4個測試:單元測試 集成測試 確認測試 系統測試 。
24.單元測試 指對源程序中每一個程序單元進行測試,檢查各個模塊是否正確實現規定的功能,從而發現模塊在編碼中或算法中的錯誤,它涉及 編碼 和 詳細設計 的文檔。
25.單元測試主要測試模塊的5個基本特征:模塊接口 局部數據結構 重要的執行路徑 錯誤處理 邊界條件。
26.在單元測試中,需要為被測模塊設計 驅動 模塊和 樁 模塊。 驅動模塊 用來模擬被測模塊的上級調用模塊, 樁模塊 用來代替被測模塊所調用的模塊。
27.集成測試指在 單元 測試基礎上,將所有模塊按照設計要求組裝成一個完整的系統進行的測試。也稱 組裝 測試或 聯合 測試。
28.集成測試的方法有兩種: 非漸增式測試 漸增式測試 。
29.漸增式測試有兩種不同的組裝模塊的方法: 自頂向下結合 自底向上結合 。
30.自頂向下漸增式測試不需要編寫 驅動 模塊,只需要編寫 樁 模塊,其步驟是從 模塊開始,沿著被測程序的 頂層 的控制路徑逐步向下測試,它有兩種組合策略: 軟件結構圖 和深度優先策略 寬度優先策略 。
31.自底向上漸增式測試不需要編寫 樁 模塊,只需要編寫 驅動 模塊。
32.確認測試指檢查軟件的功能 與 性能 是否與 需求規格 說明書中確定的指標相符合,又稱 有效性 測試。
33.確認測試在模擬環境下運用 黑盒 測試方法,由專門測試人員 和 用戶 參加的測試。
34.確認測試開始前需要制定 測試 計劃,結束后要寫出 測試分析 報告。其測試用例要選用實際運用 的數據。
35.軟件配置審查的任務是檢查軟件的所有文檔資料的 完整性 和 正確性 。
36.調試也稱 糾錯 ,是在成功的測試之后才開始進行,其目的是確定錯誤的 原因 和 位置 ,并改正錯誤。
37.調試技術包括 簡單調試 歸納法調試 演繹法調試 回溯法調試
38.回溯法調試是從程序產生錯誤的地方 出發,而歸納法調試是從 測試結果發現的線索 入手。
39.被測試程序不在機器上運行,而是采用人工檢測和計算機輔助分析檢測的手段稱為
靜態 測試。
40.用等價類劃分法設計一個測試用例時,使其覆蓋 盡可能多的 尚未被覆蓋的合理等價類。
41.用等價類劃分法設計一個測試用例時,使其覆蓋 一個 不合理等價類。
42.在單元測試時,需要為被測模塊設計 驅動模塊與樁模塊 。
43.在集成測試時有兩種測試方法,它們是 漸增式和非漸增式 。
44.軟件測試是為了 發現錯誤 而執行程序的過程。
45.運行被測程序的方法稱為 動態 測試。
46.動態測試中,主要測試軟件功能的方法稱為 黑盒 法。
47.選擇測試用例,使得被測程序中每個判定的每個分支至少執行一次,這種邏輯覆蓋標準稱為 判定覆蓋 。
48.要覆蓋含循環結構的所有路徑是不可能的,一般通過限制 循環次數 來測試。
49.用等價類劃分法設計測試用例時,如果被測程序的某個輸入條件規定了取值范圍,則可確定一個合理的等在和 兩個不合理的等價類 。
50.憑經驗或直覺推測程序中可能存在的錯誤而設計測試用例的方法是 錯誤推測法 。
51.集成測試中的具體方法是 漸增式和非漸增式測試方法 。
52.確認測試階段的兩項工作是 進行確認測試和軟件配置審查 。
53.在單元測試中,測試一個模塊時,需要設計 驅動模塊和樁模塊 。
54.軟件配置管理,簡稱SCM,它用于整個軟件工程過程。其主要目標是: 標識變更 控制變更 確保變更正確地實現 報告有關變更
55.SCM是一組管理整個軟件生存期各階段中 變更 的活動。
56.基線的作用是把各階段的開發工作劃分得更加明確,便于檢查與確認階段成果。因此,基線可以作為項目的一個 檢查點 。
三、 名詞解釋
1.軟件測試:軟件測試指為了發現軟件中的錯誤而執行軟件的過程。它的目標是盡可能多地發現軟件中存在的錯誤,將測試結果作為糾錯的依據。
2.靜態測試:指被測試的程序不在機器上運行,而是采用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。
3.動態測試:指通過運行程序發現錯誤
4.黑盒測試:指把測試對象看成一個黑盒子,測試人員完全不考慮程序的內部結構和處理過程,只在軟件的接口處進行測試,依據需求規格說明書,檢查程序是否滿足功能要求,又稱為功能測試或數據驅動測試。
5.白盒測試:把測試對象看成一個打開的盒子,測試人員需了解程序的內部結構和處理過程,以檢查處理過程的細節為基礎,對程序中盡可能多的邏輯路徑進行測試,檢驗內部控制結構和數據結構是否有錯,實際的運行狀態與預期的狀態是否一致。
6.語句覆蓋:設計足夠的測試用例,使被測程序中每個語句至少執行一次
7.判定覆蓋:指設計足夠的測試用例,使被測程序中每個判定表達式至少獲得一次“真”值或“假”值,從而使程序的每個分支至少都通過一次,因此判定覆蓋又稱分支覆蓋
8.條件覆蓋:指設計足夠測試用例,使判定表達式中每個條件的各種可能的值至少出現一次。
9.判定/條件覆蓋:設計足夠的測試用例,使得判定表達式中每個條件的所有可能取值至少出現一次,并使每個判定表達式所有可能的結果也至少出現一次。
10.條件組合覆蓋:指設計足夠的測試用例,使得每個判定表達式中條件的各種可能的值的組合都至少出現一次。
11.路徑覆蓋:設計足夠的測試用例,覆蓋被測程序中所有可能的路徑
12.測試用例:指為尋找程序中的錯誤而精心設計的一組測試數據
13.驅動模塊:指用來模擬被測模塊的上級調用模塊,其功能比真正的上級模塊簡單得多,它只完成接受測試數據,以上級模塊調用被測模塊的格式驅動被測模塊,接收被測模塊的測試結果并輸出。
14.樁模塊
15.單元測試
16.集成測試
17.確認測試
18.漸增式測試
19.非漸增式測試
20.調試
21.人的因素的含義
22.基線
23.軟件配置管理
24.軟件配置項
四、 簡答題
1.為什么說軟件測試是軟件開發中不可缺少的重要一環,但不是軟件質量保證的安全網?
2.軟件測試的目的是什么?為什么把軟件測試的目的定義為只是發現錯誤?
3.軟件測試應當遵循什么原則?為什么要遵循這些原則?
4.軟件測試的步驟是什么?這些測試與軟件開發各階段之間的關系?
5.軟件測試的過程是什么?
6.單元測試、集成測試和確認測試各自主要目標是什么?它們之間有什么不同?相互有什么關系?
7.什么是黑盒測試與白盒測試?它們都適應哪些測試?
8.簡述軟件測試與軟件調試的區別。
9.軟件配置管理的任務。
10.試述第三代界面的優點。
11.試述人機界面的設計過程。
五、 綜合題
1.變量的命名規則一般規定如下:變量名的長度不多于40個字符,第一個字符必須為英文字母,其他字母可以英文字母、數字以及下劃線的任意組合。請用等價分類法設計測試用例。
2.某商場在“五一”期間,顧客購物時收費有4種情況:普通顧客一次購物累計少于100元,按A類標準收費(不打折),一次購物累計多于或等于100元,按B類標準收費(打9折);會員顧客一次購物累計少于1000元,按C類標準收費(打8折),一次購物累計等于或多于1000元,按D類標準收費(打7折)。測試對象是按以上要求計算顧客收費模塊,按照路徑覆蓋法設計測試用例。
3.下面是某程序的流程圖:
(1)計算它的環路復雜性。
(2)為了完成基本路徑測試,求它的一組獨立的路徑。
六、 選擇題
1.B 2.B 3.C 4.D 5.A 6.B 7.C 8.B 9.D 10.D
11.A 12.B 13.D 14.A 15.A 16.A 17.B 18.D 19.A 20.D
21.C 22.D 23.A 24.C 25.D 26.A 27.D 28.D 29.B 30.B
31.C 32.A 33.D 34.B 35.C 36.B 37.B 38.A 39.D 40.D
七、 填空題
1. 錯誤 測試結果
2. 文檔資料 內部結構 測試用例 程序 錯誤 缺陷
3. 輸入數據 輸出數據
4. 動態測試 靜態測試
5. 運行程序 測試用例 黑盒測試 白盒測試
6. 人工檢測 計算機輔助靜態分析
7. 編碼質量 編碼 軟件產品
8. 靜態分析 特性
9. 接口 需求規格 功能
10. 內部結構 處理過程 處理過程 測試
11. 結構 源程序 內部邏輯
12. 判定 語句覆蓋 判定覆蓋 條件覆蓋 判定/條件覆蓋 條件組合覆蓋 路徑覆蓋
13. 條件組合 路徑
14. 循環 循環次數
15. 控制流程圖 環路 基本路徑
16. 功能 等價類劃分 邊界值分析 錯誤推測 因果圖
17. 功能 一句話 一個短語 等價類
18. 邊界 邊界值 第一個 最后一個
19. 錯誤推測法
20. 因果 功能說明 判定表 判定表
21. 測試 黑盒 白盒
22. 軟件配置 測試配置 測試工具
23. 單元測試 集成測試 確認測試 系統測試
24. 單元測試 編碼 詳細設計
25. 模塊 模塊接口 局部數據結構 重要的執行路徑 錯誤處理 邊界條件
26. 驅動 樁 驅動模塊 樁模塊
27. 單元 組裝 聯合
28. 非漸增式測試 漸增式測試
29. 自頂向下結合 自底向上結合
30. 驅動 樁 頂層 軟件結構圖 深度優先策略 寬度優先策略
31. 樁 驅動
32. 功能 性能 需求規格 有效性
33. 黑盒 專門測試人員 用戶
34. 測試 測試分析 實際運用
35. 完整性 正確性
36. 糾錯 原因 位置
37. 簡單調試 歸納法調試 演繹法調試 回溯法調試
38. 程序產生錯誤的地方 測試結果發現的線索
39.靜態
40.盡可能多的
41.一個
42.驅動模塊與樁模塊
43.漸增式和非漸增式
44.發現錯誤
45.動態測試
46.黑盒法
47.判定覆蓋
48.循環次數
49.兩個不合理的等價類
50.錯誤推測法
51.漸增式和非漸增式測試方法
52.進行確認測試和軟件配置審查
53.驅動模塊和樁模塊
54.標識變更 控制變更 確保變更正確地實現 報告有關變更
55.變更
56.檢查點
八、 名詞解釋
1. 軟件測試指為了發現軟件中的錯誤而執行軟件的過程。它的目標是盡可能多地發現軟件中存在的錯誤,將測試結果作為糾錯的依據。
2. 靜態測試指被測試的程序不在機器上運行,而是采用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。
3. 動態測試指通過運行程序發現錯誤。
4. 黑盒測試指把測試對象看成一個黑盒子,測試人員完全不考慮程序的內部結構和處理過程,只在軟件的接口處進行測試,依據需求規格說明書,檢查程序是否滿足功能要求,又稱為功能測試或數據驅動測試。
5. 白盒測試指把測試對象看成一個打開的盒子,測試人員需了解程序的內部結構和處理過程,以檢查處理過程的細節為基礎,對程序中盡可能多的邏輯路徑進行測試,檢驗內部控制結構和數據結構是否有錯,實際的運行狀態與預期的狀態是否一致。
6. 語句覆蓋指設計足夠的測試用例,使被測程序中每個語句至少執行一次。
7. 判定覆蓋指設計足夠的測試用例,使被測程序中每個判定表達式至少獲得一次“真”值或“假”值,從而使程序的每個分支至少都通過一次,因此判定覆蓋又稱分支覆蓋。
8. 條件覆蓋指設計足夠測試用例,使判定表達式中每個條件的各種可能的值至少出現一次。
9. 判定/條件覆蓋指設計足夠的測試用例,使得判定表達式中每個條件的所有可能取值至少出現一次,并使每個判定表達式所有可能的結果也至少出現一次。
10. 條件組合覆蓋指設計足夠的測試用例,使得每個判定表達式中條件的各種可能的值的組合都至少出現一次。
11. 路徑覆蓋指設計足夠的測試用例,覆蓋被測程序中所有可能的路徑。
12. 測試用例指為尋找程序中的錯誤而精心設計的一組測試數據。
13. 驅動模塊指用來模擬被測模塊的上級調用模塊,其功能比真正的上級模塊簡單得多,它只完成接受測試數據,以上級模塊調用被測模塊的格式驅動被測模塊,接收被測模塊的測試結果并輸出。
14. 樁模塊指用來代替被測試模塊所調用的模塊,其作用是返回被測試模塊所需的信息。
15. 單元測試指對源程序中每一個程序單元進行測試,檢查各個模塊是否正確實現規定的功能,從而發現模塊在編碼中或算法中的錯誤。
16. 集成測試指在單元測試基礎上,將所有模塊按照設計要求組裝成一個完整的系統進行的測試。也稱組裝測試或聯合測試。
17. 確認測試指檢查軟件的功能與性能是否與需求規格說明書中確定的指標相符合,又稱有效性測試。
18. 漸增式測試指逐個把未經過測試的模塊組裝到已經過測試的模塊上去,進行集成測試。每加入一個新模塊進行一次集成測試,重復此過程直到程序組裝完畢。
19. 非漸增式測試指首先對每個模塊分別進行單元測試,然后把所有的模塊按設計要求組裝在一起進行測試。
20. 調試指確定錯誤的原因和位置,并改正錯誤的過程,也稱糾錯。
21. 1)人對感知過程的認識,包括視覺、閱讀時的認知心理、記憶、歸納與演繹推理等;
2)用戶已有的技能和行為方式;
3)用戶所要求的完成的整個任務以及用戶對人機交互部分的特殊要求。
22. 已經通過正式復審和批準的某規約或產品,它因此可以作為進一步開發的基礎,并且只能遵循正式的變化控制過程得到改變。
23. 軟件配置管理,簡稱SCM,它用于整個軟件工程過程。其主要目標是:標識變更、控制變更、確保變更正確地實現、報告有關變更。SCM是一組管理整個軟件生存期各階段中變更的活動。
24. 軟件配置項是軟件工程中產生的信息項,它是配置管理的基本單位,對已成為基線的SCI,雖然可以修改,但必須按照一個特殊的正確的過程進行評估,確認每一處的修改。
九、 簡答題
1. ① 軟件測試是軟件開發中不可缺少的重要一環,原因是:
·?????? 測試的工作量約占整個項目開發工作量的40%左右,幾乎一半。如果是關系到人的生命安全的軟件,測試的工作量還要成倍增加。
·?????? 軟件測試代表了需求分析、設計、編碼的最終復審。
② 軟件測試不是軟件質量保證的安全網,因為軟件測試只能發現錯誤,不能保證沒有錯誤。
2. 軟件測試的目的有:
① 軟件測試是為了發現錯誤而執行程序的過程。
② 一個好的測試用例能夠發現至今尚未發現的錯誤。
③ 一個成功的測試是發現了至今尚未發現的錯誤。
??? 軟件測試的目標定義為只是發現錯誤,原因是軟件測試可以有兩個目標,一個是預防錯誤,另一個是發現錯誤。由于軟件開發是人的創造性勞動,人的活動不可能完美無缺,錯誤可能發生在任何一個階段,因此預防錯誤這一目標幾乎是不可實現的,所以軟件測試的目標定義為只是發現錯誤。
3. 軟件測試應當遵循原則如下:
① 用例由輸入數據和預期的輸出數據兩部分組成,因為這樣便于對照檢查,做到有的放矢。
② 用例不僅選用合理的輸入數據,還要選擇不合理的輸入數據。因為當以特殊方式使用程序時,會突然發現程序中有許多錯誤,故使用預期的不合理的輸入數據進行程序測試,比用合理的輸入數據收獲要大,從而能更多地發現錯誤,提高程序可靠性。
③ 除了檢查程序是否做了它應該做的事,還應該檢查程序是否做了它不應該做的事,因為如果程序做了它不應該做的事,即使程序能做它應該做的事,程序也是錯誤的。
④ 應制定測試計劃并嚴格執行,因為這樣可以排除隨意性。
⑤ 長期保留測試用例,因為測試用例的設計耗費很大的工作量,而修改后的程序可能有新的錯誤,需要進行回歸測試,故必須將測試用例作為文檔保存,使測試具有可重復性,同時測試用例是將來系統維護測試與確認的依據,保存測試用例也為以后的維護提供方便。
⑥ 對發現錯誤較多的程序段,應進行更深入的測試,因為發現錯誤較多的程序段,其質量較差,同時在修改錯誤過程中又容易引入新的錯誤。
⑦ 程序員避免測試自己設計的程序,因為測試目的是找錯。從心理學角度講,程序員大多對自己的程序存有偏見,總認為沒有錯誤或錯誤不大,另外程序員對需求規格說明的理解而引入的錯誤則更難發現,應該由別人或另外的機構來測試會更客觀、更有效。
4. ① 軟件測試的步驟如圖7-3所示。
圖7-3 軟件測試的步驟
② 這些測試與軟件開發各階段之間的關系如圖7-2所示。因為系統測試已經超出了軟件工程的范圍,所以圖7-2中的系統測試不包括在內。
5. 軟件測試是一個規則的過程,包括測試設計、測試執行以及測試結果比較等。
① 測試設計:根據軟件開發各階段的文檔資料和程序的內部結構,利用各種設計測試用例技術精心設計測試用例。
② 測試執行:利用這些測試用例執行程序,得到測試結果。
③ 測試結果比較:將預期的結果與實際測試結果進行比較,如果二者不符合,對于出現的錯誤進行糾錯,并修改相應文檔。修改后的程序還要進行再次測試,直到滿意為止。如果測試發現不了錯誤,可能由于測試配置考慮不周到,應考慮重新制定測試方案,設計測試用例。
6. 單元測試、集成測試和確認測試各自主要目標是:
① 單元測試的主要目標是檢查各個模塊是否正確實現規定的功能,從而發現模塊在編碼中或算法中的錯誤。
② 集成測試的主要目標是檢查與設計相關的軟件體系結構的有關問題。
③ 確認測試的主要目標是檢查已實現的軟件是否滿足需求規格說明書中確定的各種需求。
單元測試、集成測試和確認測試之間的不同如下:
① 測試內容不同:單元測試集中于單個模塊的功能和結構檢驗,其測試內容主要包括模塊接口、局部數據結構、重要的執行路徑、錯誤處理和邊界測試;集成測試集中于模塊組合的功能和軟件結構檢驗,其測試內容主要包括模塊組裝中可能出現的問題,即數據穿過接口可能丟失、一個模塊可能破壞另一個模塊的內容、子功能組裝可能不等于主功能、全程數據結構問題、誤差累積問題;確認測試集中于論證軟件需求的可追溯性,主要包括測試軟件功能和性能是否與軟件需求一致、測試軟件配置的所有程序與文檔是否正確完整而且一致。
② 測試的方法不同:單元測試總是使用白盒測試法,為被測模塊設計驅動模塊和樁模塊;集成測試使用漸增式測試和非漸增式測試,漸增式測試又有分為自頂向下結合法和自底向上結合法;確認測試總是使用黑盒測試法。
③ 發現的錯誤不同:單元測試發現的錯誤主要是在編碼階段產生的錯誤,集成測試發現的錯誤主要是在設計階段產生的錯誤,確認測試發現的錯誤主要是在需求分析階段產生的錯誤。
④ 涉及的文檔不同:單元測試涉及編碼和詳細設計文檔,集成測試涉及詳細設計文檔和概要設計文檔,確認測試涉及軟件需求規格說明書和用戶手冊。
三者相互關系是:單元測試、集成測試和確認測試是順序實現的。首先單元測試對各個模塊進行測試,然后集成測試以單元測試為基礎,將所有已測模塊按照設計要求組裝成一個完整的系統,對模塊組合的功能和軟件結構檢驗進行測試,最后確認測試是以集成測試為基礎,測試集成的軟件是否滿足需求規格說明書中確定的各種需求。
7. ① 黑盒測試指把測試對象看成一個黑盒子,測試人員完全不考慮程序的內部結構和處理過程,只在軟件的接口處進行測試,依據需求規格說明書,檢查程序是否滿足功能要求,又稱為功能測試或數據驅動測試。
② 白盒測試指把測試對象看成一個打開的盒子,測試人員需了解程序的內部結構和處理過程,以檢查處理過程的細節為基礎,對程序中盡可能多的邏輯路徑進行測試,檢驗內部控制結構和數據結構是否有錯,實際的運行狀態與預期的狀態是否一致。
③ 白盒測試適應的測試有單元測試、邏輯覆蓋(按邏輯覆蓋程度不同,有語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。)、循環覆蓋(限制循環次數,有單循環和嵌套循環)和基本路徑測試。
④ 黑盒測試適應的測試有:確認測試、等價類劃分、邊界值分析、錯誤推測和因果圖。
8. 軟件測試與軟件調試在目的、技術和方法等方面存在很大的區別,主要表現在:
① 測試從一個側面證明程序員的失敗,而調試是為了證明程序員的正確。
② 測試從已知條件開始,使用預先定義的程序,且有預知的結果,不可預見的只是程序是否通過測試。調試一般以不可知的內部條件開始,除統計性調試外,結果是不可預見的。
③ 測試是有計劃的,并要進行測試設計,而調試是不受時間約束的。
④ 測試是一個發現錯誤、改正錯誤、重新測試的過程,而調試是一個推理過程。
⑤ 測試的執行是有規程的,而調試的執行往往要求程序員進行必要的推理及知覺的飛躍。
⑥ 測試經常由獨立的測試組在不了解軟件設計的前提下完成,而調試必須由了解詳細設計的程序員完成。
⑦大多數測試的執行和設計可由工具支持,而調試時,程序員能利用的工具主要是調試器。
一十、 綜合題
1.① 劃分等價類下表。
等價類劃分表
② 設計測試用例下表。
測試用例表
2.① 被測模塊的程序流程圖如圖所示。
被測模塊的程序流程圖
② 按照路徑覆蓋法設計測試用例如下:
是會員,累計消費900元, 覆蓋路徑127
是會員,累計消費2000元, 覆蓋路徑128
不是會員,累計消費80元, 覆蓋路徑134
不是會員,累計消費300元, 覆蓋路徑135
3.(a) 環路復雜性=判斷數+1=6+1=7(個)
(b) 路徑1: 0 —①— 13 — 19
路徑2: 0 —②—③— 14 — 19
路徑3: 0 —②—④—⑤— 15 — 19
路徑4: 0 —②—④—⑥—⑦— 16 — 19
路徑5: 0 —②—④—⑥—⑧—⑨— 17 — 19
路徑6: 0 —②—④—⑥—⑧—⑩— 18 — 19
路徑7: 0 —②—④—⑥—⑧—⑩— 12 — 19
4.(1) 劃分等價類見表1。
表1 等價類劃分表
(2) 設計測試用例見表2。
表2 測試用例表
5.等價劃分法
① 劃分等價類并編號,如下表所示。
十六進制整型常量輸入條件的等價類表
② 為合理等價類設計測試用例,表中有三個合理等價類,兩個例子。
③ 為每個不合理等價類至少設計一個測試用例。
6.(1) 被測模塊的程序流程圖如下圖所示。
(2) 按照路徑覆蓋法設計測試用例如下:
是會員,累計消費900元,覆蓋路徑127
是會員,累計消費2000元,覆蓋路徑128
不是會員,累計消費80元,覆蓋路徑134
不是會員,累計消費300元,覆蓋路徑135
2.
4.變量的命名規則一般規定如下:變量名的長度不多于40個字符,第一個字符必須為英文字母,其他字母可以是英文字母、數字以及下劃線的任意組合。請用等價分類法設計測試用例。
5.根據下列條件使用等價劃分法設計測試用例。
某8位微機,其十六進制常數定義為:以0x或0X開頭的數是十六進制整數,其值的范圍是-7f~7f(表示十六進制的大小寫字母不加區別),如0X13,0X6A,-0X3c。
6.某商場在“五一”期間,顧客購物時收費有4種情況:普通顧客一次購物累計少于100元,按A類標準收費(不打折),一次購物累計多于或等于100元,按B類標準收費(打9折);會員顧客一次購物累計少于1000元,按C類標準收費(打8折),一次購物累計等于或多于1000元,按D類標準收費(打7折)。測試對象是按以上要求計算顧客收費的模塊,按照路徑覆蓋法設計測試用例。




