軟件測試人員不僅要掌握軟件測試技術相關知識,對產品相關的業務知識也要學習。這很好理解,如果從事財務軟件的測試工作,一定要學習財務知識;如果從事通訊產品測試工作,那么相關的通訊理論知識也是必須的;如果從事銀行軟件的測試,銀行的業務流程也是不可或缺的知識點。
因此,在學習軟件測試技術的同時,千萬不要忽略產品相關業務知識的學習。如果你是一個軟件測試技術專家,但是對產品業務知識一無所知,那么也只能測試出來純粹的軟件缺陷,而面對眼前出現的產品業務相關的缺陷,很可能是視而不見,如此這般,軟件測試的效果會大打折扣。
7、識別測試需求
識別測試需求是軟件測試的第一步。如果開發人員能夠提供完整的需求文檔和接口文檔,那固然好?梢愿鶕枨笪臋n中描述的每個功能項目的輸入、處理過程和輸出,來設計測試用例。如果開發人員沒有提供軟件需求文檔,那該如何是好?下面給出幾個有效的方法:
8、主動獲取需求
開發人員通常不會更好地考慮軟件測試,如果沒有開發流程的強制規定,他們通常是不愿意提供任何開發文檔,即便有強制規定,需求文檔也未必能夠真正指導軟件系統測試工作。因此,需要測試人員發揮主觀能動性,與相關的軟件開發項目經理和軟件開發人員保持溝通,了解軟件實現的主要功能是什么,并記錄得收集到的信息。一般來說,開發人員即便沒有提供相關需求文檔,也會保存一些簡單的過程文檔,主動向開發人員索要這些文檔,可以作為測試的參考。此外,可以與公司的技術支持人員交流,技術支持人員是最貼近用戶的人,因此,通過交流可以獲取第一手的用戶使用感受,在測試的過程中會更加貼近用戶。
當拿到相關的資料后,從哪些方面分析需求?如何與開發人員交流需求?其實,只要把握需求分析的幾個關鍵的點就可以解決問題:輸入、處理過程、輸出、性能要求、運行環境,下面針對每一個項目逐一分析:
軟件輸入: 與該需求相關的一切可能輸入,可以從這幾方面考慮,輸入來源、輸入參數的數量、輸入參數的度量單位、輸入參數的時間要求、輸入參數的精度和輸入參數的有效輸入范圍。在測試用例設計中,這部分內容作為測試用例輸入的依據。
處理過程: 描述對輸入數據所執行的所有操作和如何獲得輸出的過程。測試人員了解處理過程即可,在測試過程中發現 BUG 時候,如果對處理過程了解的深入,對定位問題根源有很大的幫助。
軟件輸出: 描述每個需求的輸出結果,包括輸出的位置(如計算機顯示器、打印機,文件),輸出參數的數量、輸出參數的度量單位、輸出參數的時序、輸出參數精確度、輸出參數的有效輸出范圍、錯誤消息。在測試用例設計中,這部分內容作為測試用例的預期輸出。
性能要求: 與該需求相關的性能要求,比如 “ 插入 ATM 取款卡后, 3 秒鐘內彈出提示用戶取款的圖形界面 ” 。 3 秒鐘這一限制,就是對需求的基本性能要求。
運行環境: 軟件的運行所需的環境,包括硬件平臺的要求、操作系統的要求、數據庫的要求,以及其它相關支撐軟件的要求。
9、確認需求的優先級
確認需求的優先級是很必要的,如果在產品進度比較緊的情況下,測試人員可以考慮優先測試優先級高的需求項,如果進度允許,那么在測試優先級低的需求項,如果進度不允許,那么就放棄測試優先級低的需求項。如果軟件公司有規范的流程支撐,開發人員在提供軟件需求文檔的時候,應該在文檔中確定需求的優先級。但是,如果開發人員連基本的軟件需求文檔都沒有提供,又怎能指望他們確定軟件需求的優先級?如果是這樣,需求的優先級只能由測試人員完成了。
10、加入開發小組的郵件群組
測試人員需要通曉被測試產品,但是,產品在開發的過程中往往是不斷變化的。如果軟件開發團隊有一套變更控制流程,測試人員會對產品的變更了如指掌。如果沒有變更控制,那就要采用其他的土方法了。如果公司里面有自動化辦公系統,也許采用的是 Lotus Notes 系統,也許使用的是 E-mail 系統,測試人員應該加入到開發人員的郵件群組中。當開發人員通過郵件討論問題、通知召開技術會議的時候,測試人員可以及時知曉,如果必要,可以參加開發人員的技術會議。即便公司里面有了軟件變更控制流程,加入到開發郵件群組也是一個很好的習慣。
11、與開發人員為鄰
建議測試人員與開發人員為鄰。我所在的測試組曾經與開發組是在相鄰的寫字間里,開發人員與測試人員的關系非常融洽,拋去同事關系,大家還是不錯的朋友。不管開發人員有什么樣的活動,測試人員都能第一時間獲得信息。無論從事軟件測試工作,還是從事其它的工作,與工作中上下游環節的同事保持良好的個人關系對工作有很大便利。一般的公司內部都存在部門墻,良好的人際關系是打通部門墻的手段之一。向領導建議測試人員與開發人員為鄰,這很必要。
文章來源于領測軟件測試網 http://www.k11sc111.com/