軟件測試(Software testing)是軟件生存期(Software life cycle)中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟。通俗地講,軟件測試就是在軟件投入運行前,對軟件需求分析、設計規格說(shuō)明和編碼進(jìn)行最終復審的活動(dòng)。1983年IEEE提出的軟件工程術(shù)語(yǔ)中給軟件測試下的定義是:“使用人工或自動(dòng)的手段來(lái)運行或測定某個(gè)軟件系統的過(guò)程,其目的在于檢驗它是否滿(mǎn)足規定的需求或弄清預期結果與實(shí)際結果之間的差別”。這個(gè)定義明確指出:軟件測試的目的是為了檢驗軟件系統是否滿(mǎn)足需求。
從用戶(hù)的角度來(lái)看,普遍希望通過(guò)軟件測試暴露軟件中隱藏的錯誤和缺陷,所以軟件測試應該是“為了發(fā)現錯誤而執行程序的過(guò)程”;蛘哒f(shuō),軟件測試應該根據軟件開(kāi)發(fā)各階段的規格說(shuō)明和程序的內部結構而精心設計一批測試用例(即輸入數據及其預期的輸出結果),并利用這些測試用例去運行程序,以發(fā)現程序錯誤或缺陷。
二.軟件測試的生命周期
測試主要依據是被試系統的研制任務(wù)書(shū)和技術(shù)規格書(shū),是對軟件整體功能和性能的綜合測試與評估。測試原理是軟件測試活動(dòng)的理論基礎,測試方法是測試原理的實(shí)際應用和獲得測試數據的手段;谲浖墓残,對于軟件的測試要遵循一般軟件的測試原理和方法。同時(shí),針對軟件的特性,必須找到合適的測試方法。測試用例的合理性對于軟件的測試與評估具有關(guān)鍵作用,而如何使設計的用例合情、合理并且典型有效并不容易。所以應該與軟件的研制人員以及最終用戶(hù)一起,有針對性地研究實(shí)際操作環(huán)境并加以描述,形成合理的測試用例集。另一方面,軟件運行環(huán)境的復雜程度對軟件評估具有重要作用,所以應產(chǎn)生盡量逼真的運行背景以便于研究。軟件測試的周期如圖1所示。
實(shí)踐證明,盡管人們在開(kāi)發(fā)軟件的過(guò)程中使用了許多保證軟件質(zhì)量的方法和技術(shù),但開(kāi)發(fā)出的軟件中還會(huì )隱藏許多錯誤和缺陷。這對于規模大、復雜性高的軟件更是如此。所以,嚴格的軟件測試對于保證軟件質(zhì)量具有重要作用。
軟件測試在軟件生存期中橫跨兩個(gè)階段。在軟件編碼階段,當編寫(xiě)出一個(gè)模塊后,通常要對它進(jìn)行必要的測試(稱(chēng)為單元測試),這時(shí)測試與編碼屬于同一個(gè)階段。在編碼階段結束后,對軟件系統還要進(jìn)行各種綜合測試(集成測試與系統測試),這是一個(gè)獨立階段,即軟件測試階段。在這個(gè)測試階段又有兩種性質(zhì)不同的測試:研制單位內部進(jìn)行的集成測試和系統測試與用戶(hù)(或第三方)進(jìn)行的驗收性測試。
在軟件測試生命周期內,錯誤在軟件開(kāi)發(fā)的每個(gè)階段都可能被帶入。在軟件測試中,某些錯誤被發(fā)現、分類(lèi)、隔離,最終被糾正。由于軟件不斷被修改,所以這個(gè)過(guò)程是一個(gè)反復進(jìn)行的過(guò)程。
三.測試方法和流程
軟件測試方法主要有黑箱測試方法與白箱測試兩類(lèi)。黑箱測試又稱(chēng)功能測試、數據驅動(dòng)測試或基于規格說(shuō)明的測試,是在完全不考慮程序內部結構和內部特性的情況下,檢查輸入與輸出之間關(guān)系是否符合要求。白箱測試又稱(chēng)結構測試、邏輯驅動(dòng)測試或基于程序的測試,是在已知程序內部結構的情況下設計測試用例的測試方法。顯然,白箱測試適合在單元測試中運用,而在獨立測試階段多采用黑箱測試方法。
測試用例(Test case)實(shí)際上是對軟件運行過(guò)程中所有可能存在的目標、運動(dòng)、行動(dòng)、環(huán)境和結果的描述,是對客觀(guān)世界的一種抽象。設計測試用例即設計針對特定功能或組合功能的測試方案,并編寫(xiě)成文檔。測試用例應該體現軟件工程的思想和原則。測試用例的選擇既要有一般情況,也應有極限情況以及最大和最小的邊界值情況。因為測試的目的是暴露應用軟件中隱藏的缺陷,所以在設計選取測試用例和數據時(shí)要考慮那些易于發(fā)現缺陷的測試用例和數據,結合復雜的運行環(huán)境,在所有可能的輸入條件和輸出條件中確定測試數據,來(lái)檢查應用軟件是否都能產(chǎn)生正確的輸出。
軟件測試所得到的數據經(jīng)過(guò)處理以后,可以用來(lái)作為評估軟件系統是否滿(mǎn)足用戶(hù)需求的依據。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/