第一篇:軟件測試實踐之測試環境的規劃與管理
測試環境是指為了完成軟件測試工作所必需的計算機硬件、軟件、網絡設備、歷史數據的總稱。毫無疑問,穩定和可控的測試環境,可以使測試人員花費較少的時間就完成測試用例的執行,也無需為測試用例、測試過程的維護花費額外的時間,并且可以保證每一個被提交的缺陷都可以在任何時候被準確的重現。
簡單的說,經過良好規劃和管理的測試環境,可以盡可能的減少環境的變動對測試工作的不利影響,并可以對測試工作的效率和質量的提高產生積極的作用。
一、規劃測試環境——讓環境為你服務
對于“金山詞霸”這樣的軟件,大多數測試工作都可以在一臺單獨的電腦上完成,而對于一套電信系統,為了執行測試用例,你可能會需要搭建一個由多臺計算機以及其他網絡設備組成,采用集群和負載均衡技術,并且接駁到Internet的計算機網絡。
不同的行業應用,不同的質量目標,都可能會影響到測試環境的規劃。但從測試工作自身的要求來看,一條應當遵守的原則就是“盡可能的還原軟件在用戶那里最終實際運行的環境”——雖然在很多時候這是不現實的。^_^
通常來說,我們所需要搭建的環境,主要是用于被測應用的系統測試——單元測試和集成測試由開發人員在開發環境中進行,而驗收測試則在用戶的最終應用環境中進行,因此都可以暫不考慮。
為了確定測試環境的組成,我們需要明確以下問題:
1.所需要的計算機的數量,以及對每臺計算機的硬件配置要求,包括CPU的速度、內存和硬盤的容量、網卡所支持的速度、打印機的型號等;
2.部署被測應用的服務器所必需的操作系統、數據庫管理系統、中間件、WEB服務器以及其他必需組件的名稱、版本,以及所要用到的相關補丁的版本;
3.用來保存各種測試工作中生成的文檔和數據的服務器所必需的操作系統、數據庫管理系統、中間件、WEB服務器以及其他必需組件的名稱、版本,以及所要用到的相關補丁的版本;
4.用來執行測試工作的計算機所必需的操作系統、數據庫管理系統、中間件、WEB服務器以及其他必需組件的名稱、版本,以及所要用到的相關補丁的版本;
5.是否需要專門的計算機用于被測應用的服務器環境和測試管理服務器的環境的備份;
6.測試中所需要使用的網絡環境。例如,如果測試結果同接入Internet的線路的穩定性有關,那么應該考慮為測試環境租用單獨的線路;如果測試結果與局域網內的網絡速度有關,那么應該保證計算機的網卡、網線以及用到的集線器、交換機都不會成為瓶頸;
7.執行測試工作所需要使用的文檔編寫工具、測試管理系統、性能測試工具、缺陷跟蹤管理系統等軟件的名稱、版本、License數量,以及所要用到的相關補丁的版本。對于性能測試工具,則還應當特別關注所選擇的工具是否支持被測應用所使用的協議;
8.為了執行測試用例,所需要初始化的各項數據,例如登陸被測應用所需的用戶名和訪問權限,或其他基礎資料、業務資料;對于性能測試,還應當特別考慮執行測試場景前應當滿足的歷史數據量。當然,還有另外一個非常關鍵的問題:在測試過程中受到影響的數據如何恢復?
明確了上面的問題后,明確哪些條件是可以滿足的,哪些是需要其他部門協助調配、采購或者支援的。建議在搭建測試環境之前,把上面的問題做成一張 CheckList,并為每一項指定一個責任人,完成一項就填寫一項,最終形成的文檔則作為測試環境的配置說明文檔使用。當然,如果時間或其他條件允許,應當做好應急預案,盡量保證在環境失效時不會對正常工作產生太大的影響。
二、管理測試環境——把變化掌握在手中
測試環境搭建好以后不太可能永遠不發生變化,至少被測應用的每次版本發布都會對測試環境產生或多或少的影響。而應對變化之道,不是禁止變化,而是“把變化掌握在手中”。下面的這些建議可以幫助你盡可能擺脫環境變化所帶來的不利影響。
1.設置專門的測試環境管理員角色
每個測試項目或測試小組都應當配備一名專門的測試環境管理員,其職責包括:測試環境的搭建。包括操作系統、數據庫、中間件、WEB服務器等必須軟件的安裝,配置,并做好各項安裝、配置手冊的編寫;
記錄組成測試環境的各臺機器的硬件配置、IP地址、端口配置、機器的具體用途,以及當前網絡環境的情況;
完成被測應用的部署,并做好發布文檔的編寫;
測試環境各項變更的執行及記錄;
測試環境的備份及恢復;
操作系統、數據庫、中間件、WEB服務器以及被測應用中所需的各用戶名、密碼以及權限的管理;
當測試組內多名成員需要占用服務器并且相互之間存在沖突時(例如在執行性能測試時,在同一時刻應當只有一個場景在運行),負責對服務器時間進行分配和管理。
2.明確測試環境管理所需的各種文檔
一般來說,下面的幾個文檔是必需的,當然你也可以根據需要增加新的文檔。
組成測試環境的各臺計算機上各項軟件的安裝配置手冊,記錄各項軟件的名稱、版本、安裝過程、相關參數的配置方法等,并記錄好歷次軟件環境的變更情況;
組成測試環境的各臺機器的硬件環境文檔,記錄各臺機器的硬件配置(CPU/內存/硬盤/網卡)、IP地址、具體用途以及歷次的變更情況;
被測應用的發布手冊,記錄被測應用的發布/安裝方法,包括數據庫表的創建、數據的導入、應用層的安裝等。另外,還需要記錄歷次被測應用的發布情況,對版本差異進行描述;測試環境的備份和恢復方法手冊,并記錄每次備份的時間、備份人、備份原因(與上次備份相比發生的變化)以及所形成的備份文件的文件名和獲取方式;
用戶權限管理文檔,記錄訪問操作系統、數據庫、中間件、WEB服務器以及被測應用時所需的各種用戶名、密碼以及各用戶的權限,并對每次變更進行記錄。
3.測試環境訪問權限的管理
應當為每個訪問測試環境的測試人員和開發人員設置單獨的用戶名,并根據不同的工作需要設置不同的訪問權限,以避免誤操作對測試環境產生不利的影響。下面的要求可以作為建立“測試環境訪問權限管理規范”的基礎。
訪問操作系統、數據庫、中間件、WEB服務器以及被測應用等所需的各種用戶名、密碼、權限,由測試環境管理員統一管理;
測試環境管理員擁有全部的權限;
除對被測應用的訪問權限外,一般不授予開發人員對測試環境其他部分的訪問權限。如的確有必要(例如查看系統日志),則只授予只讀權限;
除測試環境管理員外,其他測試組成員不授予刪除權限;
用戶及權限的各項維護、變更,需要記錄到相應的“用戶權限管理文檔”中。
4.測試環境的變更管理
對測試環境的變更應當形成一個標準的流程,并保證每次變更都是可追溯的和可控的。下面的幾項要點并不是一個完整的流程,但是可以幫助你實現這個目標。
測試環境的變更申請由開發人員或測試人員提出書面申請,由測試環境管理員負責執行。測試環境管理員不應接受非正式的變更申請(例如口頭申請);
對測試環境的任何變更均應記入相應的文檔;
同每次變更相關的變更申請文檔、軟件、腳本等均應保留原始備份,作為配置項進行管理;
對于被測應用的發布,開發人員應將整個系統(包括數據庫、應用層、客戶端等)打包為可直接發布的格式,由測試環境管理員負責實施。測試環境管理員不接受不完整的版本發布申請;
對測試環境做出的變更,應該可以通過一個明確的方法返回到之前的狀態。
5.測試環境的備份和恢復
對于測試人員來說,測試環境必須是可恢復的,否則將導致原有的測試用例無法執行,或者發現的缺陷無法重現,最終使測試人員已經完成的工作失去價 值。因此,應當在測試環境(特別是軟件環境)發生重大變動(例如安裝操作系統、中間件或數據庫,為操作系統、中間件或數據庫打補丁等對系統產生重大影響并 難以通過卸載恢復)時進行完整的備份,例如使用Ghost對硬盤或某個分區進行鏡像備份。并由測試環境管理員在相應的“備份記錄”文檔中記錄每次備份的時 間、備份人以及備份原因(與上次備份相比發生的變化),以便于在需要時將系統重新恢復到安全可用的狀態。
另外,每次發布新的被測應用版本時,應當做好當前版本的數據庫備份。而在執行測試用例或性能測試場景之前,也應當做好數據備份或準備數據恢復方案,例如通過運行SQL腳本來將數據恢復到測試執行之前的狀態,以便于重復的使用原有的數據,減少因數據準備和維護而占用的工作量,并保證測試用例的有效性和缺陷記錄的可重現。
第二篇:軟件測試(推薦)
一、簡答5*6’
1.為什么不讓時間有余的人做測試工作
表面上看這體現了管理的效率和靈活性,但實際上也體現了管理者對測試的輕視。測試和測試的人有很大關系。測試工作人員應該是勤奮并富有耐心,善于學習、思考和發現問題,細心有條理,總結問題,如果具備這樣的優點,做其它工作同樣也會很出色,因此這里還有一個要求,就是要喜歡測試這項工作。2.軟件測試風險主要體現在哪里
我們沒有對軟件進行完全測試,實際就是選擇了風險,因為缺陷極有可能存在沒有進行測試的部分。因此,我們要盡可能的選擇最合適的測試量,把風險降低到最小 3.所有軟件測試缺陷都需要修復嗎
從技術上講,所有的軟件缺陷都是能夠修復的,但是沒有必要修復所有的軟件缺陷。測試人員要做的是能夠正確判斷什么時候不能追求軟件的完美。對于整個項目團隊,要做的是對每一個軟件缺陷進行取舍,根據風險決定那些缺陷要修復。發生這種現象的主要原因如下:-沒有足夠的時間資源。在任何一個項目中,通常情況下開發人員和測試人員都是不夠用的,而且在項目中沒有預算足夠的回歸測試時間,修改缺陷可能引入新的缺陷。
-有些缺陷只是特殊情況下出現,這種缺陷處于商業利益考慮,可以在以后升級中進行修復。-不是缺陷的缺陷。我們經常會碰到某些功能方面的問題被當成缺陷來處理,這類問題可以以后有時間時考慮再處理。缺陷是否修改要由軟件測試人員、項目經理、程序員共同討論來決定是否修復,不同角色的人員從不同的角度來思考,以做出正確的決定。4.如何減少測試人員跳槽帶來的損失 建議我們從以下兩個方面做起:
-加強部門內員工之間的互相學習,互相學習是建立學習型組織的基本要求,是知識互相轉移的過程。在此基礎上,可以把個人擁有的技術以知識的形式沉積下來,也就完成了隱性知識到顯性知識的轉化。
-管理者就應該把員工的個人成長和企業的發展聯系起來,為員工設定合理發展規劃并付諸實現。
5.驗收測試的注意點有哪些 測試要注意下面的事項:
(1)用戶現場測試不可能測試全部功能,因此要測試核心功能。這需要提前做好準備,這些核心功能一定要預先經過測試,證明沒有問題才可以和用戶共同進行測試。測試核心模塊的目的是建立用戶對軟件的信心。當然如果這些模塊如果問題較多,不應該進行演示。(2)如果某些模塊確實有問題,我們可以演示其它重要的業務功能模塊,必要時要向用戶做成合理的解釋。爭得時間后,及時修改缺陷來彌補。(3)永遠不能欺騙用戶,蒙混過關。6.完全測試程序是可能的嗎
實際上完全測試是不可能的。主要有以下原因:-完全測試比較耗時,時間上不允許;
-完全測試通常意味著較多資源投入,這在現實中往往是行不通的;-輸入量太大,不能一一進行測試;-輸出結果太多,只能分類進行驗證;-軟件實現途徑太多;
-軟件產品說明書沒有客觀標準,從不同的角度看,軟件缺陷的標準不同;因此測試的程度要根據實際情況確定 7.是不是發現的缺陷越多就說明軟件缺陷越多 其中的原因主要如下:
-代碼復用、拷貝代碼導致程序員容易犯相同的錯誤。類的繼承導致所有的子類會包含基類的錯誤,反復拷貝同一代碼意味可能也復制了缺陷。-程序員比較勞累是可以導致某些連續編寫的功能缺陷較多。
“缺陷一個連著一個”不是一個客觀規律,只是一個常見的現象。如果軟件編寫的比較好,這種現象就不常見了。測試人員只要嚴肅認真的測試程序就可以了。8.軟件測試就是QA嗎
軟件測試人員的職責是盡可能早的找出軟件缺陷,確保得以修復。而質量保證人員(QA)主要職責是創建或者制定標準和方法,提高促進軟件開發能力和減少軟件缺陷。測試人員的主要工作是測試,質量保證人員日常工作重要內容是檢查與評審,測試工作也是測試保證人員的工作對象。軟件測試和質量是相輔相成的關系,都是為了提高軟件質量而工作。9.測試產品和測試項目區別
習慣上把開發完成后進行商業化、幾乎不進行代碼修改就可以售給用戶使用的軟件成為軟件產品,也就是可以買“賣拷貝”的軟件,軟件項目是一種個性化的產品,可以是按照用戶要求全部重新開發,也可以修改已有的軟件產品來滿足特定的用戶需求。項目和產品的不同特點,決定我們測試產品和測試項目仍然會有很多不同的地方:
-質量要求不同。通常產品的質量要高一些,修復發布后產品的缺陷成本較高,甚至會帶來很多負面的影響。而做項目通常面向某一用戶,雖然質量越高越好,但是一般只要滿足用戶要求就可以了。測試資源投入多少不同。做軟件產品通常是研發中心來開發,進度壓力要小些。同時由于質量要求高,因此會投入較多的人力、物力資源。項目最后要和用戶共同驗收測試,這是產品測試不具有的特點。此外,測試產品與測試項目在缺陷管理方面、測試策略制定都會有很大不同,測試管理者應該結合具體的環境,恰如其分的完成工作 10.如何編寫提交給用戶的測試報告
測試報告一般分為內部測試報告和外部測試報告。內部報告是我們在測試工作中的項目文檔,反映了測試工作的實施情況,一般外部測試報告要滿足下面幾個要求:
根據內部測試報告進行編寫,一般可以摘錄;不可以向客戶報告嚴重缺陷,即使是已經修改的缺陷,開發中的缺陷也沒有必要讓客戶知道;報告上可以列出一些缺陷,但必須是中級的缺陷,而且這些缺陷必須是修復的;報告上面的內容盡量要真實可靠;整個測試報告要仔細審閱,力爭不給項目帶來負面作用,尤其是性能測試報告??傊獠繙y試報告要小心謹慎的編寫。
二、論述2*12’
1.請論述為什么要進行軟件測試,并列舉歷史上2~3個著名軟件測試(缺陷)案例,說明測試重要性
軟件測試的目的,第一是確認軟件的質量,其一方面是確認軟件做了你所期望做的事情(,另一方面是確認軟件以正確的方式來做了這個事情。第二是提供信息,比如提供給開發人員或程序經理的回饋信息,為風險評估所準備的信息。第三軟件測試不僅是在測試軟件軟件產品本身,而且還包括軟件開發的過程。如果一個軟件產品開發完成之后發現了很多問題,這說明此軟件開發過程很可能是有缺陷的。因此,軟件測試的第三個目的是保證整個軟件開發過程是高質量的。
愛國者導彈防御系統把“槍口”對準了自己人 美國迪斯尼公司的獅子王游戲軟件的兼容性問題 售票系統性能問題
2.論述軟件測試科學的發展歷程 1957年之前-調試為主 20世紀50年代,計算機剛誕生不久,只有科學家級別的人才會去編程,需求和程序本身也遠遠沒有現在這么復雜多變,相當于開發人員一人承擔需求分析,設計,開發,測試等所有工作,當然也不會有人去區分調試和測試。
1957–1978-證明為主 當時計算機應用的數量,成本和復雜性都大幅度提升,隨之而來的經濟風險也大大增加,測試就顯得很有必要了,這個時期測試的主要目就是確認軟件是滿足需求的,也就是我們常說的“做了該做的事情”。
1979–1982-破壞為主 我們不僅要證明軟件做了該做的事情,也要保證它沒做不該做的事情,這會使測試更加全面,更容易發現問題。
1983–1987-評估為主 人們提出了在軟件生命周期中使用分析,評審,測試來評估產品的理論。軟件測試工程在這個時期得到了快速的發展.1988–至今-預防為主 預防為主是當下軟件測試的主流思想之一。測試不是在編碼完成后才開始介入,而是貫穿于整個軟件生命周期。3.論述軟件缺陷的由來
軟件缺陷的產生主要是由軟件產品的特點和開發過程決定的。
軟件本身:①需求不清晰,導致設計目標偏離客戶的需求,從而引起功能或產品特征上的缺陷。②系統結構非常復雜,而又無法設計成一個很好的層次結構或組件結構,結果導致意想不到的問題或系統維護、擴充上的困難;即使設計成良好的面向對象的系統,由于對象、類太多,很難完成對各種對象、類相互作用的組合測試,而隱藏著一些參數傳遞、方法調用、對象狀態變化等方面問題。③對程序邏輯路徑或數據范圍的邊界考慮不夠周全,漏掉某些邊界條件,造成容量或邊界錯誤。④對一些實時應用,要進行精心設計和技術處理,保證精確的時間同步,否則容易引起時間上不協調,不一致性帶來的問題。⑤沒有考慮系統崩潰后的自我恢復或數據的異地備份、災難性恢復等問題,從而存在系統安全性、可靠性的隱患。⑥系統運行環境的復雜,不僅用戶使用的計算機環境千變萬化,包括用戶的各種操作方式或各種不同的輸入數據,容易引起一些特定用戶環境下的問題;在系統實際應用中,數據量很大。從而會引起強度或負載問題。⑦由于通信端口多、存取和加密手段的矛盾性等,會造成系統的安全性或適用性等問題。⑧新技術的采用,可能涉及技術或系統兼容的問題,事先沒有考慮到。
團隊工作:系統需求分析時對客戶的需求理解不清楚,或者和用戶的溝通存在一些困難。不同階段的開發人員相互理解不一致。對于設計或編程上的一些假定或依賴性,相關人員沒有充分溝通。項目組成員技術水平參差不齊技術問題。算法錯誤:在給定條件下沒能給出正確或準確的結果。語法錯誤:對于編譯性語言程序,編譯器可以發現這類問題;但對于解釋性語言程序,只能在測試運行時發現。計算和精度問題:計算的結果沒有滿足所需要的精度。系統結構不合理、算法選擇不科學,造成系統性能低下。接口參數傳遞不匹配,導致模塊集成出現問題。
項目管理的問題:缺乏質量文化,不重視質量計劃,對質量、資源、任務、成本等的平衡性把握不好,容易擠掉需求分析、評審、測試、等時間,遺留的缺陷會比較多。系統分析時對客戶的需求不是十分清楚,或者和用戶的溝通存在一些困難。開發周期短,需求分析、設計、編程、測試等各項工作不能完全按照定義好的流程來進行,工作不夠充分,結果也就不完整、不準確,錯誤較多;周期短,還給各類開發人員造成太大的壓力,引起一些人為的錯誤。開發流程不夠完善,存在太多的隨機性和缺乏嚴謹的內審或評審機制,容易產生問題。文檔不完善,風險估計不足等。4.軟件測試V模型
①繪制示意圖
②闡述每個步驟是做什么 需求分析
即首先要明確客戶需要的是什么,需要軟件作成什么樣子,需要有那幾項功能
概要設計
主要是架構的實現,指搭建架構、表述各模塊功能、模塊接口連接和數據傳遞的實現等項事務。詳細設計
對概要設計中表述的各模塊進行深入分析,對各模塊組合進行分析等。軟件編碼
按照詳細設計好的模塊功能表,編程人員編寫出實際的代碼。單元測試
按照設定好的最小測試單元進行按單元測試,主要是測試程序代碼,為的是確保各單元模塊被正確的編譯,單元的具體劃分按不同的單位與不同的軟件有不同。集成測試
經過了單元測試后,將各單元組合成完整的體系,主要測試各模塊間組合后的功能實現情況,以及模塊接口連接的成功與否,數據傳遞的正確性等,其主要目的是檢查軟件單位之間的接口是否正確。根據集成測試計劃,一邊將模塊或其他軟件單位組合成系統,一邊運行該系統,以分析所組成的系統是否正確,各組成部分是否合拍。系統測試
經過了單元測試和集成測試以后,我們要把軟件系統搭建起來,按照軟件規格說明書中所要求,測試軟件其性能功能等是否和用戶需求相符合,在系統中運行是否存在漏洞,等。驗收測試
主要就是用戶在拿到軟件的時候,在使用現場,會根據前邊所提到的需求,以及規格說明書來做相應測試,以確定軟件達到符合效果的。
第三篇:軟件測試管理總結
軟件測試管理總結
軟件測試工程師管理系統是我接觸的測試管理項目,通過近兩個星期對軟件測試管理的學習和實踐,遇到了很多問題,覺得還是有很多經驗需要總結。
隨著軟件開發規模的增加、復雜程度的增加,以尋找軟件中的故障為目的的測試工作就
顯得更加重要。因此,為了盡可能多的找出程序中的故障,開發出高質量的軟件產品,必須
對測試工作進行組織策劃和有效管理,采取系統的辦法建立起來軟件測試管理系統。在進行
測試工作識別管理的過程中,我主要做了測試計劃,測試實施,測試總結這幾部分工作。
一、測試計劃的編寫要足夠清晰合理。
測試計劃階段的整體目標是為了確定測試范圍、測試策略和方法,以及對可能出現的問
題和風險,所需要的各種資源和投入等進行分析和估計,以指導測試的執行。在計劃中要明
確測試的目的,完善對測試人員的資源分配,設置測試的標準,責任及時間都有明確的進度
安排,指出所用工具。測試計劃編寫時要對照產品需求說明書,系統全面的對測試工作作出
籌劃。
二、準確的填寫bug記錄單需進行充分的步驟記錄。
在測試過程中,bug記錄單不清晰,產品錯誤便不會容易再現。作為測試管理人員對于
問題記錄單中必須包括的要素要了解。我曾經有過造成填寫的問題記錄單過于簡練,只有結
果,沒有清晰的操作步驟,沒有描述產生錯誤的數據信息等,這些都會在測試實施過程中造
成不必要的麻煩,給開發人帶來模糊理解。認識問題才能解決問題,我在以后的工作中正盡
可能避免這些問題。
三、測試結果的分析要全面公正。
測試結束后,對測試結果進行分析,以確定軟件產品的質量,為產品的改進或發布提供
數據和支持。在管理上,應做好測試結果的審查和分析,做好測試報告的撰寫和審查工作。
對軟件測試工程師管理系統的管理工作中,我覺得還可以努力地還有,明確測試流程,注意測試流程中各階段的注意事項,及正確填寫問題記錄單。及時發現測試實施工作中的各
種問題,加強與開發人員的溝通,以便及時解決問題,保證產品測試進度。
第四篇:軟件測試管理常見問題及其回答
由安博測試空間技術中心http:///提供
軟件測試管理常見問題及其回答
軟件測試管理常見問題及其回答
1、測試負責人要進行嚴格的測試進度跟蹤嗎?
很多時候,由于人力資源的不足,測試項目負責人都是在執行測試,這樣就使整個項目缺乏控制,一些問題(例如:有些成員的缺陷質量不夠合格;開發人員修改不及時,系統某些功能發生嚴重問題導致部分功能無法測試。)得不到解決,耽誤了進度。所以測試負責任必須全程監控項目,盡可能多的掌握信息。通常,測試負責人需要完成下面這些內容的管理工作: 測試用例執行情況;
每個測試員提交的缺陷情況;
測試中是否發生突發問題。
2、測試也有版本控制嗎?
這里的版本主要是指測試對象的版本控制,也就是指對開發部提交的產品進行版本控制。在開發小組版本管理不規范的情況下,測試小組進行版本控制十分重要,要保證測試對象是可以控制的。建議開發和測試雙方進行明確的約定,可以各自指定專門的測試版本負責人,制定提交原則,對提交情況進行詳細的記錄,這樣基本避免了版本失控導致的測試失誤或無效。
3、如何處理測試人員的流動問題?
人員流動不僅僅是測試部門,這是IT行業的普遍現象。從管理者角度,主管需要多多和團隊內成員進行溝通,建立一個融洽的團隊環境,及時掌握情況,可以早些進行相應的調整。但是只有企業建立好的用人制度,給員工提高廣闊的發展空間和好的培訓學習機會,才能從根本上解決這一問題。
加強項目管理,強化文檔管理并保證文檔的有效性,可以大大減少由于人員流失帶來的損失。同時,測試部門要建立培訓機制,使新到員工接受直接或者間接的培訓,快速適應工作。
4、為什么開發人員經常抱怨測試工程師提交的缺陷質量太差?
我們經常聽開發人員說:“這不是缺陷!”,“這個缺陷沒有,因為我的系統上運行正常!”。測試工程師本身就是做質量工作的,提交的成果本身就應該質量高些,為什么還會有這種現象?
提交的缺陷引起爭議是一種正常的現象,例如測試人員描述不清楚就會引起爭議。減少甚至避免這種現象的方法是交叉測試,交叉測試是提高測試質量的一個有效手段,當然交叉測試會增加一定的測試成本投入。在測試任務完成后,測試工程師之間互相驗證彼此提交的缺陷,就會避免了缺陷描述不清、因運行環境而產生的缺陷等一系列問題,從而大大降低了回歸測試以及交流的成本,因而這種投入也是值得的,實際開發人員在單元測試階段也會進行交叉測試,來提高開發質量。
另外,測試人員一定要按照規范描述測試中發現的缺陷,一個缺陷至少描述清楚概要描述、詳細描述、重現步驟三方面的內容,缺陷管理參考第八章的內容。
5、“讓那些新手來做測試,反正他們也不會什么”正確嗎?
在實際項目開發中,我們常??吹接行﹩挝缓鲆暅y試團隊存在的意義,當要實施測試時,往往臨時找幾個程序員充當測試人員。也有些單位盡管認識到了組建測試團隊的重要性,但在具體落實的時候往往安排一些毫無開發經驗的行業新手去做測試工作,這常常導致測試效率低下,測試人員對測試工作索然無味。
根據筆者的經驗,測試團隊應首先聘請一名資深的測試領域專家,他應具有極為豐富的同類項目軟件測試經驗,對軟件開發過程中常見的缺陷或錯誤了然于胸;此外,他還具有較好的親和力和人格魅力。其次,項目測試團隊還具有很多具備一技之長的成員,如對某些自動化測試工具運用嫻熟或能輕而易舉地編寫自動化測試腳本等。
另外,測試團隊還應聘請一些兼職成員,如驗證測試實施過程中,同行評審是最常使用的一種形式,這些同行專家就屬于兼職測試團隊成員的范疇。至于測試團隊里里的測試新手,這部分人可以安排去從事交付驗證或黑盒測試之類的6、測試同化現象是什么?
同化現象是指隨著時間的推移,開發人員會逐漸影響測試人員的思維和對缺陷的判斷能力,尤其是針對同一產品,同一組開發人員和同一組測試人員共同配合了很長時間,很多本來是缺陷的問題,由于測試人員對軟件“習慣成自然”的使用,會不被當成缺陷,尤其是在開發人員的解釋和說服下。同化現象發生可能意味著“惡性循環”的開始:測試人員會幫著開發人員解釋一個個缺陷的合理性,一輪有一輪的測試都不會發現問題。
招聘新的人員,不同的測試項目組輪換去測試不同的產品,就可以避免。同時建議產品可以發布測試版,更多的人對其進行測試,就可以發現更多的問題。
7、測試工程師如何避免定位效應?
社會心理學家曾作過一個試驗:在召集會議時先讓人們自由選擇位子,之后到室外休息片刻再進入室內入座,如此五至六次,發現大多數人都選擇他們第一次坐過的位子。這種現象稱為定位效應,說明人們習慣上凡是自己認定的,人們大都不想輕易改變它。
定位效應在開發人員和測試人員身上都有體現。例如開發工程師針對某一自己寫的功能,經常進行代碼移植,這種復制的“功能”,由于上一次經過調試,在新的地方往往不會認真調試,這些代碼往往會帶來共享變量沖突等許多種類型的缺陷。
定位效應體現在測試人員身上就是測試過的功能不再進行認真測試:在回歸測試時,之前由于進行過認真的測試,往往會認為某些功能是可靠,只要驗證一些以前發現的缺陷是否修改完成就可以了。這種現象在反復多次回歸時表現的更加突出,因為回歸測試中很多功能都會進行多次反復測試。眾所周知,開發人員在修改缺陷時往往會引入新的缺陷,測試人員的疏于防范就會把這些缺陷帶到用戶這里。
解決這種問題的方案一般有兩個:
(1)完整的執行測試用例:這種方法投入較大,但是在開發產品時最好在最后一次回歸測試時測試的執行一次全部的測試用例。
(2)交叉測試:測試人員交叉測試,就可以很大程度的避免定位效應。測試工程師在回歸測試時互相交換任務,反復測試某一功能的機會大大減少,從而也就不會“主觀的”人員某些功能沒有缺陷。
通常上面的兩個方法都是結合使用的,既要進行交叉測試,又要全面執行測試用例,測試覆
蓋面要盡可能的廣泛。
8、測試人員忽然辭職怎么辦?
目前IT行業人員流動較大已經成為一種不爭的事實,員工的辭職大多數都會給組織帶來一定的影響,而這種影響基本是不可能避免的。在測試領域,員工忽然辭職也會帶來很大的負面影響,尤其測試隊伍規模較小時。面對這種情況,我們所能做的,就是如何最大限度的降低這種影響。
根據作者的經驗,主要有兩種方法:第一種是在測試人員內部建立一個良好的學習環境,大家互相學習,這樣某些特有技術不會被某一個人所掌握,而互相學習和提高自身,也是大多數成員愿意做的;第二種就是在組織中進行知識管理,把技術作為知識沉淀下來,這樣新的員工在接手工作時容易上手,通過學習快速適應環境。
此外,日常還要注意工作規范化,例如形成盡可能多的文檔,都可以降低員工離職帶來的損失。
9、測試人員工作發生問題測試經理應該如何做?
測試人員工作發生問題是測試經理經常要面對的問題,作為測試部門的領導,首先要做的是指出測試人員所犯的錯誤,使其盡快改正錯誤。
唯一不能做的就是盯著下屬的錯誤不放??偠⒅聦俚氖д`,是一個領導者的最大失誤。英國行為學家波特說:當遭受許多批評時,下級往往只記住開頭的一些,其余就不聽了,因為他們忙于思索論據來反駁開頭的批評。身為測試經理要根據測試人員的心理來進行指導,最大限度的調動每個人員的積極性來參加工作。
10、不深入到具體測試工作時,測試經理如何考核員工?
這種現象在測試規模較大的組織中很常見。測試經理應該盡可能的安排每周與每個成員在不被打擾的環境下進行談話,這樣可以盡早發現和解決很多問題。
最為一個測試經理,主要工作之一就是定期的評定組織做了些什么并且是怎樣做的。同時還要為員工做一個報告——關于充分了解測試人員正在做什么和怎樣做的報告,以此來給測試人員做做工作成績考核。這份報告要了解到每個人的動態。
測試經理和每個員工重點是談談目前的工作,例如大家在工作中的問題或意見;是否需要幫助等。許多管理者經常抱怨沒有時間在一周會見每一個員工來談他們的工作。但是根據作者的經驗,如果不能安排時間和員工進行每周的談話,員工會來打擾測試經理的工作,因為員工很多問題還要要來找測試經理商議。
同時對待員工要用他們能接受的方式,而不是我們自己可以接受的方式?!凹褐挥瑁鹗┯谌恕保@條黃金法則可能會對許多生活中的純粹的社交因素有效,但是并不是總對工作有用。有效率的管理者知道應該逐漸了解每一個員工需要怎樣的對待方式。
總之,只有盡可能多的和員工接觸,才能更精確的進行考核。
11、測試經理如何面對加班問題?
大多數情況下,作者是不主張加班的。當員工每周工作超過40個小時的時候,他們開始在工作的時候關心自己的事。他們花錢,會給很久沒有聯系的人打電話,因為員工們一直都在工作。員工不能在太疲勞的狀態下完成工作,這是因為他們在工作時不能關心自己,這種情況下通常效率很低。
測試管理工作的重要任務之一就是要創造一個環境,讓員工在工作時間內完成工作,同時還要鼓勵他們每周不要超過40小時,甚至可以基于他們在40個小時能夠完成的工作量給他們酬勞。通常情況下這樣做能夠提升創造力,從而會逐漸提高效率。
測試工作本身的一個突出特點就是不斷重復枯燥、冗長的測試,如果在疲勞狀態下,很有可能精力不集中,略過一些重要的測試環節。而且有的時候測試需要編寫測試驅動程序,這種情況更需要較好的狀態來工作。
12、測試管理者如何面對自己的錯誤?
每個人都會犯錯。我們可能會因為忘記開會而使客戶發怒,承認自己犯錯是一件尷尬的事情,尤其是管理人員認為對自己負責的項目小組承認犯錯可能會失去尊嚴。如果我們不是經常犯錯,承認錯誤的時候其實能夠贏得尊敬。例如我們忘記一次會議,然后為此向同事或者客戶道歉,其他的人會理解我們的。
不管做了什么,不要否認或故意忽略自己的失誤。故意忽略不會讓錯誤消失,這只會讓錯誤成長為怪物。
13、為什么計劃定期的培訓?
測試工作和開發工作一樣,不但要面對日新月異的新技術,還要學習相關系統的領域知識。只有在不斷的學習中,才能做好工作,跟上行業的發展。如果測試管理者沒有基于不斷的變化而培訓員工,就會給組織帶來一定的損失。日常培訓可以是關于特定項目或者是技術,通常采用下面幾種方法:
(1)測試部門內自由交流方式的培訓。這種培訓的交流比較隨意,可以在周五的例會上進行交流,也可以大家一起坐在茶館里進行交流。方法可以采用“頭腦風暴法”,讓每個組員討論一個特定的領域,這種交流方法特別對同時要做很多不同項目的小組比較有益處。當每個人做不同的項目,這會有助于每個人了解你小組所有的工程。
(2)跨部門的互相學習。測試工作需要很多領域以及技術知識,這些知識單靠自學是遠遠不夠的。和其它部門的同事進行交流是一個相當好的辦法,大家在工作中可以在技術等各個方面互相得到提高。
(3)外部培訓。外部培訓盡管投入較高,但也是值得的。這些專家一般在自己的領域非常精通,可以快速提高整個測試團隊的水平。也可以通過測試小組介紹一些朋友來進行培訓,這種方式可以降低成本。
培訓是構造學習型組織的基本條件,也是提高員工水平的重要方法。經常的定期培訓,可以增強組織凝聚力,使員工更加愿意長期留在組織中發展。做為測試負責人,定期的進行培訓是十分必要的。
14、時間上不允許進行全部測試,測試負責人應該如何做?
這個問題也許十分可笑,可是現實中我們的測試經理們卻不得不面對這個問題。這里的全部測試不是指對軟件進行遍歷測試,而是指測試負責人制定的測試計劃包含的全部測試內容。通常,不管是開發產品還是做具體的項目,都會發生耽誤進度的情況。一旦整體進度不能向后延遲,項目相關人員習慣上的做法就是縮減測試時間。尤其在功能還沒有開發完成的情況
下,這種現象更為突出。
擔負著質量重任的測試經理,如何來解決這個問題呢?比較好的做法是按照下面的步驟逐步來完成和改進工作:
(1)按照測試任務的輕重緩急,盡最大努力完成測試任務。在時間不足的情況下,我們應該對測試任務按照優先級來劃分,重要緊急的任務先完成。這個時候的測試任務是一種輔助性工作,其目的就是盡最大努力來提高質量。因此,面對這種情況,測試負責人要做的就是帶領測試小組充分利用所有資源來保證質量。
(2)在實際工作中和開發人員共同配合,逐步改進工作。只有整個團隊的軟件開發能力提高了,才能從根源上解決問題。因此,測試負責人要帶領團隊和開發小組共同尋找適合自己的開發模式,從而使項目規劃的更加合理,進而按照預定計劃來開展測試工作。
總之,在任何情況下,測試負責人都不應該抱怨。只有積極的面對問題,才能更好的解決問題。
15、公司不重視測試,測試負責人如何開展測試工作?
目前國內的軟件公司不重視測試仍然是一種普遍現象。盡管很多公司在意識上已經開始重視測試,但是在具體工作中,往往由于追趕進度、節省資源等方面原因而忽略測試工作。在這種情況下,測試負責人仍要對軟件質量負主要責任。在這種環境下,測試負責人應該如何開展工作呢?
首先,要主動去配合開發人員完成工作。尤其是不能抱怨環境,在任何情況下抱怨是不能解決問題的,只能加重矛盾的激化。在此基礎上,逐漸顯出測試工作的重要性,然后再逐步健全測試體系。
其次,用實際行動來證明測試工作的重要性。只有測試工作的業績逐步表現出來,人們才會真正的注意到測試的重要性。因此,測試負責人從點滴開始做起,才能逐步做好測試工作。要想做好軟件,把開發的軟件產品形成商品,測試工作必須和開發一樣重視。否則,質量不好的產品,很快會被市場淘汰的?,F代的軟件規模越來越大,測試工作也會越來越重要,因此測試負責人只要堅持做好工作,可發揮作用的空間會越來越大。
最后要說的是,如果真的是在一個沒有希望的團隊里,測試負責人可以考慮辭職。辭職也是一個不錯的選擇,到新的環境去發揮自己的能力,要比長時間的懷著“郁悶”的心情去工作好的多。
16、測試管理者需要是技術專家嗎?
測試管理者在測試項目中的主要任務是制定測試策略,管理測試計劃的落實情況,并且還要為測試項目的進行創造良好的執行環境。同時還要調動員工的創造性,對員工的工作作出評估。這些工作不一定要求測試管理者達到專家的水平。
但是在實際工作中,由于測試人員的短缺,測試管理者常常做為測試員來執行具體的測試任務。尤其在規模較小的測試團隊,測試管理者的日常工作通常以具體的測試執行工作為主,這個時候更需要測試管理者有較好的背景知識。
總體說來,技術方面的背景知識對測試管理者是十分有益的。例如:分配工作任務、做進度預算,以及一些具體的執行工作,都需要一定的背景知識。當然,做為一個測試管理者,沒有必要精通所有的技術,那也是辦不到的。測試管理者做到正確的幫助員工最好地完成工作,并且提供最好的完成工作的環境就可以了。
第五篇:軟件測試復習資料
1. 黑盒測試法是通過分析程序的功能來設計測試用例的方法。
2. 黑盒測試除了測試程序外,它還適用于對需求分析階段的軟件文檔進行測試。3. 白盒測試除了測試程序外,它也適用于對軟件具體設計階段的軟件文檔進行測試。4. 單元測試一般以白盒測試法為主,測試的依據是模塊功能規格說明。5. 軟件測試中常用的靜態分析方法是引用分析和接口分析。
6. 測試人員的基本素質為計算機專業技能、測試專業技能、行業知識
7. 軟件危機的體現為:A、開發成本和進度估計不正確B、用戶對完成的軟件不滿足C、軟件經常不可維護;
8. 軟件測試按照開發階段劃分:A、單元測試
B、集成測試;系統測試C、確認測試;驗收測試
9. 軟件測試按照測試技術劃分:A、性能測試、負載測試、壓力測試B、恢復測試、安全測試、兼容測試
10. 軟件測試項目周期是指:A、需求階段、測試計劃B、階段測試、設計階段測試、執行階段 11. 軟件測試原則有:A、制定嚴格的測試計劃 B、保留所有的測試文檔C、功能測試中的缺陷確認 12. 制定測試計劃的步驟:確定測試范圍、確定測試策略、確定測試標準、確定測試構架、確定項目管理機制、預計測試工作量、測試計劃評審 13. 對于軟件的β測試,β測試就是在軟件公司外部展開的測試,由非專業的測試人員執行的測試。14. 正式的技術評審FTR(Formal Technical Review)是軟件質量保證活動,其相關的描述為: A.FTR是評審產品而不是評審生產者的能力B.FTR要有嚴格的評審計劃并遵守日程安排C.FTR限制參與者人數并要求評審會之前做好預備 15. 在進行單元測試時,常用的方法是采用白盒測試,輔之以黑盒測試
16. 側重于觀察資源耗盡情況下的軟件表現的系統測試被稱為壓力測試 17. 必須要求用戶參與的測試階段是驗收測試 18. 系統測試的目的是對最終軟件系統進行全面的測試,確保最終軟件系統滿足產品需求并且遵循系統設計。
19. 測試通??煞譃榘缀袦y試和黑盒測試。白盒測試是根據程序的內部邏輯來設計測試用例,黑盒測試是根據軟件的規格說明來設計測試用例。20. 一個程序中所含有的路徑數與程序的復雜程度有著直接的關系。
1. 測試階段的根本目標是盡可能多地發現并排除軟件中潛藏的錯誤,最終把一個高質量的軟件系統交給用戶使用。2. 功能測試時系統測試的主要內容,檢查系統的功能、性能是否與需求規格說明相同。3. 軟件測試主要分為單元測試、集成測試、確認測試和系統測試四類測試。4. 漸增方式把模塊結合到程序中去時,有自頂向下和自底向上兩種集成策略。5. 編寫測試用例的依據是單元測試計劃和詳細設計說明書。6. 系統測試時在集成測試完成后,確認測試之前進行的測試。
7. 設計系統測試計劃需要參考的項目文檔有軟件測試計劃、軟件需求工件、和迭代計劃。
8. 測試設計員的職責有設計測試用例、設計測試過程、腳本。
9. 軟件驗收測試包括正式驗收測試、alpha測試、beta測試三種類型。10. 軟件測試按照開發階段劃分單元測試、集成測試、系統測試、確認測試、驗收測試。11. 軟件測試按照測試技術劃分性能測試、負載測試、壓力測試、恢復測試、安全測試、兼容測試
12. 靜態測試基本特征是在對軟件進行分析、檢查和審閱,不實際運行被測試的軟件 13. 軟件測試項目周期是指需求階段、測試計劃、階段測試、設計階段測試、執行階段 14. 軟件測試的角色分析人員、設計人員、開發人員、執行人員 15. 軟件測試原則有制定嚴格的測試計劃、、保留所有的測試文檔、功能測試中的缺陷確認
16. 測試工作的文檔主要有:測試計劃、測試模型和用例設計或規格說明、測試分析報告等
17. 測試計劃的制定必須要注重測試策略、測試范圍、測試方法、測試安排、測試風險、測試治理
18. 缺陷的分類為:需求文檔的缺陷、軟件配置引起的缺陷、分析、設計的缺陷、靜態文檔的缺陷、軟件開發引起的缺陷、短視將來的缺陷 19. 測試用例工作主要是如何添加測試用例、如何編寫測試用例、將測試用例和需求關聯
20. 自動化測試工具有:ratinal Robot、winrunner、quicktest 21. 軟件性能測試工具有: loadRunner、Ratinaol Visual Qantify、PureLoad 22. BUG的種類有:需求階段的BUG、分析設計階段的BUG、實現階段的BUG、配置階段的BUG、靜態文檔的BUG。23. 測試項目主要包括以下幾個階段:計劃階段、初始階段、執行階段、總結評估階段、設計階段。
1. 缺陷報告
是描述軟件缺陷現象和重現步驟地集合。軟件缺陷報告Software Bug Report(SBR)或軟件問題報告Software Problem Report(SPR)
2. 回歸測試
是指重新執行已經做過的測試的某個子集,以保證修改變化沒有帶來非預期的副作用。
3. 動態測試 通過運行軟件來檢驗軟件的動態行為和運行結果的正確性。動態測試的兩個基本要素: 被測試程序、測試數據(測試用例)
4. 白盒測試又稱為結構測試和邏輯驅動測試,允許測試人員對程序內部邏輯結構及有關信息來設計和選擇測試用例,對程序的邏輯路徑進行測試。白盒測試是把測試對象看作一個打開的盒子,測試人員須了解程序的內部結構和處理過程,由于白盒測試是一種結構測試,所以被測對象基本上是源程序,以程序的內部邏輯和指定的覆蓋標準確定測試數據。
5. 黑盒測試又稱為功能測試或數據驅動測試,把系統看成一個黑盒子,不考慮程序的內在邏輯,只根據需求規格說明書的要求來檢查程序的功能是否符合它的功能說明。
6. 路徑覆蓋的含義是,選取足夠多的測試數據,使程序的每條可能路徑都至少執行一次(如果程序圖中有環,則要求每個環至少經過一次)。
7. 軟件測試 :在軟件投入運行前,對軟件需求分析、設計規格說明和編碼的最終復審,是軟件質量保證的關鍵步驟。8. 單元測試(模塊測試):針對每個模塊進行的測試,可從程序的內部結構出發設計測試用例,多個模塊可以平行地對立地測試。通常在編碼階段進行,必要的時候要制作驅動模塊和樁模塊。9. 集成測試:在單元測試的基礎上,將所有模塊按照設計要求組裝成為系統,應提交集成測試計劃、集成測試規格說明和集成測試分析報告。
10. 確認測試:驗證軟件的功能和性能及其它特性是否與用戶的要求一致。
11. 系統測試:將軟件放在整個計算機環境下,包括軟硬件平臺、某些支持軟件、數據和人員等,在實際運行環境下進行一系列的測試。
1. 測試過程中會產生哪些基本文檔?
(1)測試計劃(通常包括單元測試和集成測試):確定測試范圍、方法和需要的資源
(2)測試過程:詳細描述和每個測試方案有關的測試步驟和數據(包括測試數據及預期的結果);
(3)測試結果:把每次測試運行的結果歸入文檔,如果運行出錯,則應產生 問題報告,并且必須通過調試解決所發現的問題。
(4)
2.大型軟件系統的測試過程基本上由幾個步驟組成? 1).模塊測試
在設計得好的軟件系統中,每個模塊完成一個清晰定義的子功能,而且這個子功能和同級其他模塊的功能之間沒有相互依賴關系。因此,有可能把每個模塊作為一個單獨的實體來測試,而且通常比較容易設計檢驗模塊正確性的測試方案。模塊測試的目的是保證每個模塊作為一個單元能正確運行,所以模塊測試通常又稱為單元測試。在這個測試步驟中所發現的往往是編碼和詳細設計的錯誤。2).子系統測試
子系統測試是把經過單元測試的模塊放在一起形成一個子系統來測試。模塊相互間的協調和通信是這個測試過程中的主要問題,因此,這個步驟著重測試模塊的接口。3).系統測試
系統測試是把經過測試的子系統裝配成一個完整的系統來測試。在這個過程中不僅應該發現設計和編碼的錯誤,還應該驗證系統確實能提供需求說明書中指定的功能,而且系統的動態特性也符合預定要求。在這個測試步驟中發現的往往是軟件設計中的錯誤,也可能發現需求說明中的錯誤。不論是子系統測試還是系統測試,都兼有檢測和組裝兩重含義,通常稱為集成測試。4).驗收測試
驗收測試把軟件系統作為單一的實體進行測試,測試內容與系統測試基本類似,但是它是在用戶積極參與下進行的,而且可能主要使用實際數據(系統將來要處理的信息)進行測試。驗收測試的目的是驗證系統確實能夠滿足用戶的需要,在這個測試步驟中發現的往往是系統需求說明書中的錯誤。驗收測試也稱為確認測試。5).平行運行
關系重大的軟件產品在驗收之后往往并不立即投入生產性運行,而是要再經過一段平行運行時間的考驗。所謂平行運行就是同時運行新開發出來的系統和將被它取代的舊系統,以便比較新舊兩個系統的處理結果。這樣做的具體目的有如下幾點:(1)可以在準生產環境中運行新系統而又不冒風險;(2)用戶能有一段熟悉新系統的時間;
(3)可以驗證用戶指南和使用手冊之類的文檔;
(4)能夠以準生產模式對新系統進行全負荷測試,可以用測試結果驗證性能指標。3.一套完整的測試應該由哪些階段組成?分別闡述一下各個階段。
計劃階段、設計階段、白盒單元、白盒集成、黑盒單元、黑盒集成、系統測試、回歸測試、驗收測試一套完整的測試應該由五個階段組成:
1)測試計劃首先,根據用戶需求報告中關于功能要求和性能指標的規格說明書,定義相應的測試需求報告,即制訂黑盒測試的最高標準。以后所有的測試工作都將圍繞著測試需求來進行,符合測試需求的應用程序即是合格的,反之即是不合格的;同時,還要適當選擇測試內容,合理安排測試人員、測試時間及測試資源等。2)測試設計將測試計劃階段制訂的測試需求分解、細化為若干個可執行的測試過程,并為每個測試過程選擇適當的測試用例(測試用例選擇的好壞將直接影響測試結果的有效性)。
3)測試開發建立可重復使用的自動測試過程。
4)測試執行執行測試開發階段建立的自動測試過程,并對所發現的缺陷進行跟蹤管理,測試執行一般由單元測試、組合測試、集成測試、系統聯調及回歸測試等步驟組成,測試人員應本著科學負責的態度,一步一個腳印地進行測試。
5)測試評估結合量化的測試覆蓋域及缺陷跟蹤報告,對于應用軟件的質量和開發團隊的工作進度及工作效率進行綜合評價。4.軟件測試的流程
制訂測試計劃、設計測試用例、實施測試、提交缺陷報告、編寫測試總結。5.測試計劃的內容都包括什么?其中哪些是最重要的?
1)測試計劃的內容:測試目的和測試項目簡介、測試參考文檔和測試提交文檔、術語和定義、測試策略、確定測試內容、資源、測試進度、測試員的職責與任務分配、項目通過或失敗的標準、暫停和重新啟動測試的標準、風險和問題等。2)最重要的:測試策略、確定測試內容、資源、測試進度、測試員的職責與任務分配、項目通過或失敗的標準 6.測試計劃的目的是什么?
測試計劃的目的:編寫軟件測試計劃的目的是指導測試組成員進行工作和讓測試組以外的項目成員了解測試工作的。7.簡述靜態測試和動態測試的區別?
a)靜態測試: 基本特征是在對軟件進行分析、檢查和審閱,不實際運行被測試的軟件。靜態測試約可找出30~70%的邏輯設計錯誤。對需求規格說明書、軟件設計說明書、源程序做檢查和審閱。包括:是否符合標準和規范;通過結構分析、流圖分析、符號執行指出軟件缺陷。b)動態測試:通過運行軟件來檢驗軟件的動態行為和運行結果的正確性。動態測試的兩個基本要素:被測試程序和測試數據(測試用例)。動態測試方法:(1)選取定義域有效值,或定義域外無效值;(2)對已選取值決定預期的結果;(3)用選取值執行程序;(4)執行結果與預期的結果相比,不吻和程序有錯。8.白盒測試有哪幾種方法?
語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、多重條件覆蓋。9.壓力測試和性能測試的區別?
1)廣義上說壓力測試是包括在性能測試之中的,是性能測試項內的一種。
2)性能測試:顧名思義就是測試軟件的運行性能。驗證SRS中的性能需求,是否實現。
3)壓力測試:測試軟件在超負荷下的工作情況,也是一種軟件的性能。因此是屬于性能測試范圍的。
10.測試結束的標準是什么?
測試計劃中所有規定的測試內容和回歸測試都已經運行完成或根據上級主管對測試結果的意見,就可以結束本次測試。11.黑盒測試的測試用例設計方法包括哪些?:
a)等價類劃分:劃分等價類--確立測試用例--設計用例。b)邊界值分析:通過分析,考慮如何確立邊界情況 c)錯誤推測法:靠經驗和直覺來推測程序中可能存在的各種錯誤,從而有針對性地編寫用例。可以列舉出可能的錯誤和可能發生錯誤的地方,然后選擇用例。d)因果圖:通過畫因果圖,在圖上標明約束和限制,轉換成判定表,然后設計測試用例。這適合于檢查程序輸入條件的各種組合情況。
12.缺陷報告的作用
缺陷報告是軟件測試人員的工作成果之一,體現軟件測試的價值缺陷報告可以把軟件存在的缺陷準確的描述出來,便于開發人員修正缺陷報告可以反映項目、產品當前的質量狀態,便于項目整體進度和質量控制。軟件測試缺陷報告是軟件測試的輸出成果之一,可以衡量測試人員的工作能力。13.等價分類法的基本思想是什么?
根據程序的輸入特性,將程序的定義域劃分為有限個等價區段“等價類”,從等價類中選擇出的用例具有“代表性”,即測試某個等價類的代表值就等于對這一類其他值的測試。如果某個等價類的一個輸入數據(代表值)測試中查出了錯誤,說明該類中其他測試用例也會有錯誤。14.簡單闡述一下軟件測試的目標
(1)測試是為了發現程序中的錯誤而執行程序的過程;
(2)好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案;(3)成功的測試是發現了至今為止尚未發現的錯誤的測試。15.軟件測試準則有哪些?
(1)所有測試都應該能追溯到用戶需求。
(2)應當把“盡早地和不斷地進行軟件測試” 作為軟件開發者的座右銘。(3)pareto原則:測試發現的錯誤中的80%很可能是由程序中20%的模塊造成的。
(4)應該從“小規?!睖y試開始,并逐步進行“大規?!睖y試。
(5)測試用例應由輸入數據和預期的輸出結果兩部分組成,并兼顧合理的輸入和不合理的輸入數據
(6)窮舉測試是不可能的。
(7)為了達到最佳的測試效果,應該由獨立的第三方從事測試工作。
(8)程序修改后要回歸測試。
(9)應長期保留測試用例,直至系統廢棄。16.您認為做好測試用例設計工作的關鍵是什么?
1)白盒測試用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果
2)黑盒測試用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題
1. 根據下面給出的規格說明,利用等價類劃分的方法,給出足夠的測試用例。
“一個程序讀入三個整數。把此三個數值看成是一個三角形的三個邊。這個程序要打印出信息,說明這個三角形是三邊不等的、是等腰的、還是等邊的?!?/p>
2. 某報表處理系統要求用戶輸入處理報表的日期,日期限制在2003年1月至2008年12月,即系統只能對該段期間內的報表進行處理,如日期不在此范圍內,則顯示輸入錯誤信息。系統日期規定由年、月的6位數字字符組成,前四位代表年,后兩位代表月。請用等價類劃分法和邊界值劃分法設計測試用例來測試程序的日期檢查功能。
3. 設要對一個自動飲料售貨機軟件進行黑盒測試。該軟件的規格說明如下:
“有一個處理單價為1元5角錢的盒裝飲料的自動售貨機軟件。若投入1元5角硬幣,按下“可樂”、“雪碧”或“紅茶”按鈕,相應的飲料就送出來。若投入的是2元硬幣,在送出飲料的同時退還5角硬幣?!?/p>
利用等價類劃分的方法,設計測試該軟件的全部測試用例。