前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇軟件測試范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
乙方(供測方):_________
甲乙雙方經(jīng)過平等協(xié)商,在誠信友好,充分地表達各自意愿的基礎(chǔ)上,根據(jù)《中華人民共和國合同法》的規(guī)定,達成如下協(xié)議,雙方共同遵守。
第一條 合同性質(zhì)
本合同屬于軟件測試合同。
第二條 合同內(nèi)容
乙方為甲方提供《_________軟件》的測試。
以下的測試款項,甲方在購買正式的軟件時,可作為正式購買軟件預付款的一部分抵扣,同時,測試期結(jié)束,此合同失效。
第三條 測試方式,費用及支付方式
測試方式為:賬號的測試;_________提供測試服務器測試;客戶出服務器,_________提供測試軟件。
支付方式:a.賬號的測試:合同簽訂后,乙方提供2個帶有_________的賬號(每個賬號有30分鐘的話費)話機或網(wǎng)關(guān),提交甲方測試,測試的費用只收硬件的押金即可。測試結(jié)束,乙方按硬件的借側(cè)合同執(zhí)行。b._________提供測試服務器測試:由乙方提供整套的已裝有_________軟件帶有公網(wǎng)ip地址的服務器,其管理權(quán)由甲方控制,測試期為一個月,測試費用:_________元,合同簽訂后一次付清,即可將服務器的地址與密碼交予甲方。測試結(jié)束后全部收回。c.客戶出服務器,_________提供測試軟件:客戶按照乙方的要求將服務器,中繼網(wǎng)關(guān)配好后,提交乙方安裝_________軟件,具體的條款見本合同的第四、五、六、七條。測試期為_________個月,費用為_________元人民幣,合同簽訂后一次性付清。
第四條 合同執(zhí)行期限
交貨:甲方將所需要的全部硬件設(shè)備配好后(硬件設(shè)備配置必須符合乙方系統(tǒng)的要求);乙方應于甲方通知乙方安裝系統(tǒng)之日起_________個工作日內(nèi)完成軟件系統(tǒng)的安裝和調(diào)試。
第五條 驗收標準及時間
乙方安裝和調(diào)試竣工資料(包括用戶手冊和/或維護手冊等)。
甲方接到乙方驗收通知后在現(xiàn)場安排驗收,驗收合格后,甲方以書面方式簽收。
第六條 系統(tǒng)培訓
甲方參加系統(tǒng)培訓的人員的基本的要求:熟悉并具有電信操作及運營經(jīng)驗,熟悉英特網(wǎng)及寬帶網(wǎng)的協(xié)議及設(shè)計,能熟練操作msie6.0linux9.0cis,熟悉計算機及服務器系統(tǒng)的維護及簡單維修。
第七條 軟件服務內(nèi)容
7.1 在_________網(wǎng)關(guān)及_________接通并通過_________驗收后,_________在_________個工作日內(nèi)完成遠程_________網(wǎng)關(guān)軟件安裝及調(diào)試工作。
7.2 在服務器及完整的linux9.0操作系統(tǒng)安裝完畢并通過_________驗收后,_________在_________個工作日內(nèi)完成遠程軟件安裝及調(diào)試工作。
7.3 在以上兩項工作完成之后,_________科技在5個工作日內(nèi)完成遠程綜合調(diào)試工作并提交綜合測試報告。
7.4 售后服務條例:對于使用_________系統(tǒng)服務平臺的運營商,乙方提供許可軟件的售后服務支持
7.5 售后服務指標體系:乙方在接到甲方反映的技術(shù)問題30分鐘內(nèi)電話聯(lián)系一級技術(shù)支持并開始工作。經(jīng)常性問題在60分鐘內(nèi)解決,為解決的問題提供120分鐘進展報告。有難度問題(在24小時內(nèi)不能解決的問題),提供每12小時進展報告。
7.6 系統(tǒng)的安裝,調(diào)試及維護原則上由乙方負責。
7.7 乙方提供的技術(shù)支持為_________。
第八條 不可抗力
甲乙雙方的任何一方由于不可抗力的原因不能履行合同時,應及時向?qū)Ψ酵▓蟛荒苈男谢虿荒芡耆男械睦碛?,在取得有關(guān)主管機關(guān)證明以后,允許延期履行,部分履行或者不履行合同,并根據(jù)情況可部分或全部免予承擔違約責任。
第九條 爭議解決方式
在合同履行過程中發(fā)生爭議,雙方應當協(xié)商解決。協(xié)商解決不成,雙方商定,采用向合同簽訂地仲裁委員會仲裁。
第十條 合同生效
本合同正本一式二份,甲乙雙方各執(zhí)一份,經(jīng)雙方簽字蓋章后生效。
甲方(蓋章):_________乙方(蓋章):_________
授權(quán)代表(簽字):_________授權(quán)代表(簽字):_________
關(guān)鍵詞:軟件測試;方法;技術(shù)
試
白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試。它是按照程序內(nèi)部的邏輯結(jié)構(gòu)測試程序,主要關(guān)注代碼是否能夠正確執(zhí)行。通過白盒測試可以檢測出產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常工作,并檢驗程序中的每條通路是否都能按預定要求正確工作。白盒測試是把測試對象看作一個透明的盒子,軟件測試人員能夠依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)等相關(guān)信息,設(shè)計或選擇測試用例,對程序進行測試。通過在不同的節(jié)點檢查程序的狀態(tài),以保證實際的狀態(tài)和預期的狀態(tài)一致。
3.灰盒測試
灰盒測試,是介于白盒測試與黑盒測試之間的。可以這樣理解,灰盒測試關(guān)注輸出對于輸入的正確性,同時也關(guān)注內(nèi)部表現(xiàn),但這種關(guān)注不像白那樣詳細、完整,只是通過一些表征性的現(xiàn)象、事件、標志來判斷內(nèi)部的運行狀態(tài),有時候輸出是正確的,但內(nèi)部其實已經(jīng)錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要采取這樣的一種灰盒的方法。
二、 軟件測試技術(shù)的策略
軟件測試并不單是軟件開發(fā)完成后的一個獨立的過程,而是貫穿于整個軟件開發(fā)的過程,根據(jù)軟件開發(fā)的周期不同,可以將軟件測試分為:單元測試、集成測試、確認測試、系統(tǒng)測試和驗收測試。
1.單元測試(Unit Testing)
單元測試是在軟件開發(fā)過程中能夠進行的最基礎(chǔ)的測試活動,在單元測試活動中,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。單元測試不僅僅是作為無錯編碼一種輔助手段在一次性的開發(fā)過程中使用,單元測試必須是可重復的,無論是在軟件修改,或是移植到新的運行環(huán)境的過程中。因此,所有的測試都必須在整個軟件系統(tǒng)的生命周期中進行維護。
2.集成測試(Integrated Testing)
集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求(如根據(jù)結(jié)構(gòu)圖)組裝成為子系統(tǒng)或系統(tǒng),進行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現(xiàn)。因此,單元測試后,有必要進行集成測試,發(fā)現(xiàn)并排除在模塊連接中可能發(fā)生的問題,最終構(gòu)成要求的軟件子系統(tǒng)或系統(tǒng)。對子系統(tǒng),集成測試也叫部件測試。
3.確認測試(Validation Testing)
確認測試又稱有效性測試。有效性測試是在模擬的環(huán)境下,運用黑盒測試的方法,驗證被測軟件是否能夠按照需求規(guī)格說明書中所要求的工作。任務是驗證軟件的功能和性能及其他特性是否與用戶的要求一致。對軟件的功能和性能要求在軟件需求規(guī)格說明書中已經(jīng)明確規(guī)定,它包含的信息就是軟件確認測試的基礎(chǔ)。確認測試的目的是向未來的用戶表明系統(tǒng)能夠像預定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計把所有的模塊組裝成一個完整的軟件系統(tǒng),接口錯誤也已經(jīng)基本排除了,接著就應該進一步驗證軟件的有效性,這就是確認測試的任務,即軟件的功能和性能如同用戶所合理期待的那樣。
4.系統(tǒng)測試(System Testing)
系統(tǒng)測試的任務是盡可能徹底地檢查出程序中的錯誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗系統(tǒng)“做得怎樣”。這階段又可分為三個步驟:模塊測試,測試每個模塊的程序是否有錯誤;組裝測試,測試模塊之間的接口是否正確;確認測試,測試整個軟件系統(tǒng)是否滿足用戶功能和性能的要求。該階段結(jié)束應交付測試報告,說明測試數(shù)據(jù)的選擇,測試用例以及測試結(jié)果是否符合預期結(jié)果。
三、軟件測試未來發(fā)展方向
目前,軟件測試存在4個發(fā)展方向。
1.驗證技術(shù)
驗證的目的在于證明在軟件生命期各個階段,以及階段間的邏輯協(xié)調(diào)性和正確性。驗證技術(shù)目前僅適用于特殊用途的小程序。
2.靜態(tài)測試
正逐步地從代碼的靜態(tài)測試往高層開發(fā)產(chǎn)品的靜態(tài)測試發(fā)展。
3.測試用例的選擇
什么樣的測試用例是好的測試用例?可以從4個特性描述測試用例的質(zhì)量,即有效性、仿效性、經(jīng)濟性和修改性。
4.測試技術(shù)的自動化
這是一個最新的發(fā)展方向。自動測試也是一門技術(shù),但與測試技術(shù)存在很大的區(qū)別。
參考文獻:
關(guān)鍵詞:軟件測試;集成測試;調(diào)用圖;MM-路徑
中圖分類號:TP317文獻標識碼:A文章編號:1007-9599 (2012) 03-0000-02
Analysis of Integration Testing of Software Testing
Hou Yanfang,Chu Shulai
(Zhoukou Vocational and Technical College,Zhoukou466001,China)
Abstract:The integration testing plays a very important role in software testing,the concept of integration testing,integration testing strategy and the main types of integration testing (phase) briefly discusses the analysis of several key integration testing.
Keywords:Software testing;Integration testing;Call graph;MM-path
軟件測試作為軟件質(zhì)量保證的關(guān)鍵技術(shù)之一,其目的就是能夠有效地發(fā)現(xiàn)軟件中的錯誤或缺陷。集成測試是軟件測試中處于組件測試和系統(tǒng)測試之間一個非常重要的環(huán)節(jié),這是因為所有組件都經(jīng)過測試并能正常運行并不意味著這些組件放到一起經(jīng)過集成后還能正常運行,正是基于這一點,很多大的軟件公司成立了專門關(guān)注集成測試的測試團隊,如能恰當實施,集成測試能大大減少一些在系統(tǒng)測試階段才會發(fā)現(xiàn)的缺陷。
一、集成測試的概念
(一)集成測試的定義
集成測試是構(gòu)造軟件體系結(jié)構(gòu)的系統(tǒng)化技術(shù),同時也是進行一些旨在發(fā)現(xiàn)與接口相關(guān)的錯誤的測試。其目標是利用已通過單元測試的構(gòu)件建立設(shè)計中描述的程序結(jié)構(gòu)。
(二)集成測試遵循的原則
集成測試遵循的原則主要包括:所有公共接口都要被測試到;關(guān)鍵模塊必須進行充分的測試;集成測試應當按一定的層次進行;集成測試的策略選擇應當綜合考慮質(zhì)量、成本和進度之間的關(guān)系;集成測試應當盡早開始,并已總體設(shè)計為基礎(chǔ);在模塊與接口的劃分上,測試人員應當和開發(fā)人員進行充分的溝通;當接口發(fā)生修改時,涉及的相關(guān)接口必須進行再測試;測試執(zhí)行結(jié)果應當如實的記錄;集成測試應根據(jù)集成測試計劃和方案進行,不能隨意測試;項目管理者應保證審核測試用例。
(三)集成測試的任務
集成測試的主要任務包括:將各模塊連接起來,檢查模塊相互調(diào)用時,數(shù)據(jù)經(jīng)過接口是否丟失;將各個子功能組合起來,檢查能否達到預期要求的各項功能;一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響;全局數(shù)據(jù)結(jié)構(gòu)是否有問題,會不會被異常修改;單個模塊的誤差積累起來,是否被放大,從而達到不可接受的程度。
(四)集成測試的文檔
軟件集成的總體計劃和特定的測試描述應該在測試規(guī)約中文檔化。這個文檔包含測試計劃和測試規(guī)程,它是軟件過程的工作產(chǎn)品,也是軟件配置的一部分。
下列準則和相應的測試可應用于所有的測試階段:接口一致性。當每個模塊(或簇)引入程序結(jié)構(gòu)中時,要對其內(nèi)部和外部接口進行測試;功能有效性。執(zhí)行的測試旨在發(fā)現(xiàn)功能錯誤;信息內(nèi)容。執(zhí)行的測試旨在發(fā)現(xiàn)與局部或全局數(shù)據(jù)結(jié)構(gòu)相關(guān)的錯誤;性能。執(zhí)行的測試旨在驗證軟件設(shè)計期間建立的性能邊界。
測試計劃主要包括:集成測試的進度,確定每個階段的開始和結(jié)束時間;附加軟件(樁模塊及驅(qū)動模塊)的簡要描述側(cè)重于專門進行的工作的特征;描述測試環(huán)境和資源;特殊的硬件配置、特殊的仿真器和專門的測試工具或技術(shù)也是需要討論的問題;詳細測試規(guī)程。
測試規(guī)約:集成策略(包含在測試計劃中)和測試細節(jié)(在測試規(guī)程中描述)是最基本的成分,因此必須要有。
二、集成測試的策略
驅(qū)動模塊(Driver):用來模擬待測模塊的上級模塊。驅(qū)動模塊在集成測試中接受測試數(shù)據(jù),將相關(guān)的數(shù)據(jù)傳送給待測模塊,啟動待測模塊,并打印出相應的結(jié)果。樁模塊(Stub):也稱為存根程序,用以模擬待測模塊工作過程中所調(diào)用的模塊。樁模塊由待測模塊調(diào)用,它們一般只進行很少的數(shù)據(jù)處理,例如打印入口和返回,以便于檢驗待測模塊與下級模塊的接口。
一般可分為非增量集成和增量式集成,其中增量集成指的是程序以小增量的方式逐步進行構(gòu)造和測試,這樣錯誤易于分離和糾正,更易于對接口進行徹底測試,而且可以運用系統(tǒng)化的測試方法,傳統(tǒng)的將增量測試策略分為自頂向下集成、自底向上集成以及三明治集成。
三、集成測試的主要類型(階段)
(一)基于功能分解的集成
在討論集成測試時,測試方法都基于采用樹或文字形式來表示的功能分解。這類討論不可避免地要深入到將要集成的模塊的順序。
1.自頂向下集成(從樹頂開始向下)。深度優(yōu)先集成是首先集成結(jié)構(gòu)中主控路徑下的所有模塊。
2.自底向上集成(從樹底開始向上)。自底向上集成是自頂向下順序的“鏡像”,不同的是,樁由模擬功能分解樹上一層單元的驅(qū)動模塊替代。在自底向上集成中,首先從分解樹的葉子開始,并用特別編寫的驅(qū)動模塊進行測試。驅(qū)動模塊中的一次性代碼比樁中的少。大多數(shù)系統(tǒng)在接近葉子節(jié)點時都有相當高的扇出數(shù),因此在自底向上集成順序中,不需要同樣數(shù)量的驅(qū)動模塊,不過代價是驅(qū)動模塊都比較復雜。
3.三明治集成(前兩種方法的某種組合)。三明治集成測試是將自頂向下測試與自底向上測試兩種模式有機結(jié)合起來,采用并行的自頂向下、自底向上集成方式,形成的方法。三明治集成測試更重要的是采取持續(xù)集成的策略。樁和驅(qū)動的開發(fā)工作都比較小,不過代價是作為大爆炸集成的后果,在一定程度上增加了定位缺陷的難度。
(二)基于功能分解方法的優(yōu)缺點
1.自頂向下集成,其優(yōu)點:在于它可以自然地做到逐步求精,一開始就能讓測試者看到系統(tǒng)的框架。缺點:需要提供樁模塊,樁模塊是對被調(diào)用子模塊的模擬,可能不能反映真實情況,因此測試有可能不充分。
由于被調(diào)用模擬子模塊不能模擬數(shù)據(jù),如果模塊間的數(shù)據(jù)流不能構(gòu)成有向無環(huán)圖,一些模塊的測試數(shù)據(jù)便難以生成。同時,觀察和解釋測試輸出往往也是困難的。
2.自底向上集成,其優(yōu)點:由于驅(qū)動模塊模擬了所有調(diào)用參數(shù),即便數(shù)據(jù)流并未構(gòu)成有向無環(huán)圖,生成測試數(shù)據(jù)也沒有困難。如果關(guān)鍵的模塊是在結(jié)構(gòu)圖的底部,那么自底向上測試是有優(yōu)越性的。缺點:直到最后一個模塊被加入進去之后才能看到整個程序(系統(tǒng))的框架。
3.三明治集成測試采用自頂向下、自底向上集成相結(jié)合的方式,并采取持續(xù)集成的策略,有助于盡早發(fā)現(xiàn)缺陷,也有利于提高工作效率。
4.功能分解缺點。為了滿足項目管理的需要,而不是為了滿足軟件開發(fā)人員的需要。樁或驅(qū)動的開發(fā)工作量,此外還有重新測試所需工作量的問題。對于自頂向下集成,需要開發(fā)(節(jié)點-1個)樁模塊;對于自底向上集成,需要開發(fā)(節(jié)點-葉子)個驅(qū)動模塊。
(三)基于調(diào)用圖的集成
基于調(diào)用圖的集成一般分為成對集成和相鄰集成?;谡{(diào)用圖方法的優(yōu)點:偏離了純結(jié)構(gòu)基礎(chǔ),轉(zhuǎn)向行為基礎(chǔ),因此底層假設(shè)是一種改進;這些技術(shù)還免除了樁/驅(qū)動器開發(fā)工作量;與以構(gòu)建和合成為特征的開發(fā)匹配得很好。缺點:缺陷隔離問題,尤其是對有大量鄰居的情況;清除缺陷后,意味著以前測試過的包含已變更代碼的鄰居,都需要重新進行測試。
(四)基于路徑的集成
將集成測試的側(cè)重點由測試單獨開發(fā)并通過測試的單元之間的接口,轉(zhuǎn)移到這些單元的交互上,即它們的“協(xié)同功能”上。接口是結(jié)構(gòu)性的,而交互是功能性的。
MM-路徑是功能性測試和結(jié)構(gòu)性測試的一種混合,其優(yōu)點:它與實際系統(tǒng)行為結(jié)合緊密,而不依賴于基于分解和調(diào)用圖集成的結(jié)構(gòu)性推動?;诼窂郊蓽y試也適用于面向?qū)ο蟮能浖y試。缺點:需要更多的工作量標識MM-路徑。這種工作量可能會與樁和驅(qū)動的開發(fā)所需工作量有偏差。
(五)面向?qū)ο蟓h(huán)境中的集成測試
兩種不同的策略:
1.基于線程的測試(thread-based testing)。
2.基于使用的測試(use-based testing)。
驅(qū)動程序和樁程序:驅(qū)動程序可用于測試低層中的操作和整組類的測試。驅(qū)動程序也可用于代替用戶界面以便在界面實現(xiàn)之前就可以進行系統(tǒng)功能的測試。樁程序可用于在需要類間的協(xié)作但其中的一個或多個協(xié)作類仍未完全實現(xiàn)的情況下。
四、結(jié)語
集成測試既是一種測試類型也是一個測試階段,因為集成定義為一組交互,因此組件之間的所有已定義的交互都需要測試,體系結(jié)構(gòu)和設(shè)計可以提供系統(tǒng)內(nèi)部的交互細節(jié),但是測試一個系統(tǒng)與另一個系統(tǒng)之間的交互要求對這些系統(tǒng)一起工作的方式有深刻理解,此時的集成測試是一個階段。由于集成測試的目標是模塊之間的交互,這種測試就像白盒、黑盒及其它類型的測試一樣,也有一套技術(shù)和方法,因此集成測試也被看作是一種測試類型。
參考文獻:
[1]周燕,宋敬華.面向?qū)ο蟮募蓽y試順序的研究[J].計算機測量與控制,2010,9
[2]張云崗,劉春茂.軟件測試技術(shù)淺析[J].技術(shù)與市場,2011,2
[3]朱家云.淺析軟件測試[J].信息系統(tǒng)工程,2011,4
[4王麗達.論軟件系統(tǒng)的測試[J].經(jīng)濟研究導刊,2011,14
[5]劉欣.軟件測試方法分析與實踐[D].北京郵電大學,2009
[6]趙,孫寧.軟件測試技術(shù):基于案例的測試[M].北京:機械工業(yè)出版社,2011
1.1軟件測試的含義
軟件測試根據(jù)用戶的使用目的,將成功開發(fā)的軟件進行相應的糾錯動作,從而披露該軟件的各種問題及缺失因素,促進研發(fā)人員進行相應的改進,從而達到完善軟件的目的。
1.2軟件測試的關(guān)鍵性階段
主要有以下兩個關(guān)鍵性的檢測階段。第一階段是軟件開發(fā)過程中各主要單元模塊完成后進行測試。這一階段測試可以將缺陷控制在最小單元模塊內(nèi),給研發(fā)人員最快的測試反饋,促使其完善單元模塊的功能,達到用戶的使用要求;第二階段測試是軟件系統(tǒng)全部完成后,進行全方位的綜合測試,查找系統(tǒng)在使用過程中可能存在的問題。此時,需要根據(jù)系統(tǒng)要實現(xiàn)的功能進行多種測試工具的應用,以其找到系統(tǒng)不符合要求的功能或性能瑕疵。
1.3軟件工程中軟件測試的方法
對軟件工程進行軟件測試時,不同軟件可以運用不同的測試方法?,F(xiàn)階段,主要以軟件測試在測試過程中是否需要將程序進行完全運行來判斷測試方法,不需要系統(tǒng)程序運行就能完成測試的方法稱為靜態(tài)方法;需要系統(tǒng)時時傳送相應數(shù)據(jù),并通過相應程序檢測系統(tǒng)是否達到用戶的期望值,是否存在運行邏輯上的問題和算法上的缺陷等的測試方法稱為動態(tài)方法。目前,靜態(tài)測試方法應用較廣的有靜態(tài)排演法、軟件檢查法和軟件審查法。隨著軟件測試方法的不斷創(chuàng)新和完善,新興的測試方法如靜態(tài)自動分析、分析模型等方法不斷得到應用;動態(tài)測試方法隨著精細化測試進程的深入逐漸細分為單元測試方法、集成測試方法、系統(tǒng)測試方法。這些測試方法相較于靜態(tài)測試方法,具有范圍廣、測試成功率高、內(nèi)容覆蓋面大、應用程度高等特點。如白盒測試、代碼覆蓋測試等。
2軟件測試在軟件工程中的作用分析
2.1軟件工程項目需要軟件測試進行全方位的輔助管理
所謂軟件工程項目就是將用戶的要求進行立項管理,通過建立項目組、研究用戶的使用目標來確立項目目標,對目標現(xiàn)狀進行系統(tǒng)研究與分析、總體目標細分階段性目標以及規(guī)劃項目總體方案等,將軟件開發(fā)過程建立在項目管理過程中。在這一過程中,各階段性成果都需要軟件測試來校驗其可行性,從而輔助軟件工程項目步入更完善的項目管理中。首先,軟件工程項目需要精細化項目管理和集中項目管理兩者協(xié)調(diào)統(tǒng)一。因此,需要設(shè)立軟件測試機構(gòu),能夠?qū)椖考毞值母麟A段、各模塊進行軟件測試。其次,項目組人員組成和責任落實要依照規(guī)章制度實施。要體現(xiàn)軟件測試的重要性和實際意義,測試機構(gòu)負責人為項目組組長的最佳人選。其組員為各項目負責人和其他測試人員組成。軟件測試結(jié)果必須立即反饋到軟件研發(fā)人員、程序員及系統(tǒng)分析人員等相關(guān)人員手中,以期促進其團結(jié)協(xié)作,將軟件各部分呈現(xiàn)出的問題解決。最終滿足用戶的使用要求,實現(xiàn)軟件設(shè)計的目標。可見,軟件測試的輔助作用,對于軟件工程項目的精細化管理、軟件相關(guān)技術(shù)的綜合管理等至關(guān)重要。
2.2軟件工程項目實施反促軟件測試發(fā)展
研發(fā)一個新的軟件系統(tǒng)時,其核心內(nèi)容包括目標確定、框架設(shè)計、分支設(shè)計和編碼應用等,這些核心內(nèi)容均需要軟件測試來實現(xiàn)其統(tǒng)一性和兼容性。系統(tǒng)目標是軟件測試的最終目的,軟件測試需要圍繞系統(tǒng)目標進行缺陷的發(fā)現(xiàn)和反饋,從而實現(xiàn)各階段測試的統(tǒng)一性和完整性,從而促進系統(tǒng)的協(xié)調(diào)和完善。經(jīng)過軟件測試的系統(tǒng),必須保證達到項目目標,且在長時間運行下無重大bug。從這一過程來看,軟件測試是在軟件工程項目實施中得以發(fā)展的。軟件測試機構(gòu)并不是真正意義上的獨立,其“獨立”僅是功能上的獨立。實際上,在進行軟件工程項目實施的整個過程中,無論是整體設(shè)計還是精細化管理,都需要軟件測試參與其中,以測試角度對軟件工程項目的設(shè)計和實施進行指導和輔助,從而糾正一些設(shè)計上的錯誤和細節(jié)上的缺陷。這種參與的直接性促進軟件測試必須緊跟項目研發(fā)現(xiàn)狀,才能提出及時有效的參考意見,促進項目順利開發(fā)。軟件編碼規(guī)范是軟件研發(fā)團隊必須規(guī)范執(zhí)行的,而這種規(guī)范的編碼剛是軟件測試機構(gòu)的首要任務,制定規(guī)范要嚴肅,執(zhí)行規(guī)范要嚴格,才能給用戶呈現(xiàn)出高質(zhì)量的軟件產(chǎn)品。
2.3軟件測試原則
軟件測試的原則是在其測試的基本目的和要求下產(chǎn)生的,因此,在進行軟件測試時,必須注意其原則性。(1)堅持用戶使用目的,堅持項目總體目標和階段性目標的實現(xiàn)原則;(2)測試“精細化”即細分分支、單元模塊、階段性成果、系統(tǒng)全面測試等隨時進行;(3)測試時間要越早越好,頻率越高越好;(4)測試中邏輯性檢測和算法檢測要注重;(5)測試要結(jié)合數(shù)據(jù)檢測進行;(6)保證測試的嚴肅性;(7)測試堅持第三方進行原則;(8)不合理條件值都要進行測試;(9)測試過程、方法、用便、結(jié)果、完善等都要記錄在案,便于故障定位和日常維護。
3自動化軟件測試技術(shù)分析
隨著智能化技術(shù)和自動化技術(shù)的不斷深入應用,在軟件測試中,自動化軟件測試技術(shù)得到創(chuàng)新和發(fā)展,并在軟件開發(fā)中應用得越來越廣泛。所以,人們將各種自動測試的效果進行評估,將成功案例進行相似引用,來判斷檢測的可行性。最初的自動化測試具有較嚴格的針對性,運用特定的測試原則和測試方法,將統(tǒng)計指標運用其中,從而得到測試結(jié)果,并對其進行全面評估,從而得出自動化測試的嚴密性。隨著自動化測試的不斷深入推進和創(chuàng)新,其測試準則和自動測試技術(shù)越來越成熟,逐漸過渡到自動測試模型化階段。逐漸形成自動測試的等級制度,使得自動軟件測試技術(shù)成為測試控制能力高低優(yōu)劣的一個重要判斷依據(jù)。
4結(jié)語
軟件工程目前一直缺少一個明確的定義,但是目前業(yè)內(nèi)專家都一致認為軟件工程一般分為需求分析、設(shè)計、編碼及測試4個環(huán)節(jié)。其中前面3個環(huán)節(jié)是整個軟件的編寫,而最后1個環(huán)節(jié)的軟件測試,則是通過各種專業(yè)測試方法來測試軟件是否滿足軟件工程下的10種特性:可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性。
2當前軟件測試的現(xiàn)狀
從對軟件工程的分析來看,軟件測試是保證軟件最終健壯性的最后一個工序。但是,當前很多軟件設(shè)計公司,在軟件測試方面投入的人力物力都非常低,甚至沒有專門的軟件測試部門,而是由一些軟件設(shè)計人員兼職。雖然這樣也有了所謂的軟件測試這道工序,顯然因為軟件設(shè)計人員本身的先入為主,所以在軟件測試的過程中,往往不容易發(fā)現(xiàn)潛在的問題。另外有的軟件測試人員僅僅把軟件推到市場上,部分使用人員來進行測試,雖然這也是一種測試方法,但是這種由用戶測試的軟件測試環(huán)節(jié),更多的是在軟件的操作體驗的測試,并不能夠發(fā)現(xiàn)軟件潛在的bug,正確的軟件測試流程,應該設(shè)計專業(yè)的測試軟件,通過白盒測試的方法來針對軟件代碼進行測試。而上述的僅僅測試界面和操作,那只是軟件測試中的黑盒測試法,只有綜合白盒和黑盒,才可能獲得更好的軟件測試效果。但是,目前能夠綜合這2種測試方法的專業(yè)軟件測試部門,還是非常稀缺的。這自然導致了國內(nèi)整個軟件行業(yè)的軟件健壯性存在缺陷的主要原因之一。
3軟件測試重要性分析
3.1軟件危機下凸顯軟件測試的重要性
軟件危機一直是IT行業(yè)的最重要的話題,其實在軟件危機這個名詞出來之前,軟件工程就已經(jīng)初步有了核心流程,不過正是因為很多專家有著自己的理論,所以讓軟件工程這門技術(shù)的解釋出現(xiàn)了很多不同的版本,不過在眾多版本中,軟件測試始終占據(jù)一個重要的模塊。軟件危機常見的表現(xiàn)就是因為軟件在開發(fā)的過程中,成本失控、時間跳水、穩(wěn)定性和兼容性欠缺等諸多問題,而不得不一而再再而三的重新開發(fā),特別是軟件在設(shè)計的過程中,對于可維護性、可修復性不重視,導致維護的成本占據(jù)了整個軟件生存周期的90%以上,這很明顯是不正常的。通常而言,軟件維護的成本應該是軟件生存周期的70%以下,超過70%,這個軟件最終的結(jié)局一定會失敗。軟件測試的過程,除了針對軟件的運行是否穩(wěn)定,同樣也會對軟件的可維護性進行有效的判斷,盡可能的避免軟件危機的產(chǎn)生,所以從軟件危機的角度上來看,軟件測試在軟件工程中的地位無疑是非常重要的。
3.2軟件測試的必要性
(1)是交流的問題,容易導致軟件接口處的錯誤?,F(xiàn)代軟件設(shè)計已經(jīng)不是單人作戰(zhàn)的模式,已經(jīng)上升到團隊甚至全球軟件工程師通過互聯(lián)網(wǎng)這個大平臺進行合作,這種方式顯然對軟件工程規(guī)范要求更高。其中交流往往就成了一個很重要的問題,很多軟件工程師在設(shè)計的過程中,盡可能的將自己負責的模塊做到完美,甚至也能夠考慮到模塊間的借口問題。但是因為交流上的不便,或者忽視交流,往往會產(chǎn)生2個模塊接口不兼容,甚至還會發(fā)生軟件需要重新改寫的問題。
(2)軟件結(jié)構(gòu)有越來越復雜的趨勢。雖然軟件開始實施模塊化設(shè)計方式,將一個軟件整體拆解成無數(shù)個小的系統(tǒng)模塊進行設(shè)計,然后將設(shè)計好的模塊進行統(tǒng)一封裝。這種化整為零的軟件設(shè)計方式的確有效的改善了軟件復雜性的問題,但是同樣也面臨著模塊間的兼容問題,不同設(shè)計師的設(shè)計風格可能會導致軟件可維護性降低及可移植性降低,特別是一些軟件開發(fā)公司,根本就沒有軟件工程的概念,其研發(fā)的軟件產(chǎn)品,更是漏洞百出,自然很難保證軟件產(chǎn)品的健壯性。
(3)程序代碼的設(shè)計問題。目前一個軟件的誕生,往往會有好幾千萬行的代碼,而且在軟件正式代碼編寫之前,還需要撰寫概要設(shè)計代碼和詳細設(shè)計代碼,這些往往都給錯誤埋下伏筆。如果程序設(shè)計代碼撰寫不規(guī)范,沒有相應的注釋,沒有相應的模塊設(shè)計,往往計算式發(fā)現(xiàn)了軟件的錯誤,最終維護起來,也很難讓維護工程師定位,甚至連測試工程師也很難找到錯誤的地方。
(4)設(shè)計文檔的組成非常少。一個軟件產(chǎn)品的誕生,除了優(yōu)秀的代碼設(shè)計之外,還要一份完善的代碼文檔,包括軟件的可行性研究、需求分析、詳細設(shè)計、代碼編寫,以及軟件測試等工作流程中所需要的一切的代碼文檔。如果代碼文檔貧乏,甚至沒有,那么一旦在軟件測試環(huán)節(jié),或者在軟件使用環(huán)節(jié),出現(xiàn)錯誤時,那就很難進行維護調(diào)試了。這時候的維護成本往往會比重新編寫一款軟件的成本還要低,可見設(shè)計文檔的錯誤撰寫給軟件健壯性的影響。
(5)一些軟件測試工具和開發(fā)工具本身的問題,往往導致軟件出現(xiàn)嚴重的bug。而且在設(shè)計階段,還很難發(fā)現(xiàn),因為是本身軟件測試工具和軟件開發(fā)工具引起的,因為軟件測試工具和開發(fā)工具實際上也是一種軟件,如果這些軟件的健壯性有問題,自然也會導致測試結(jié)果出現(xiàn)偏差,最終影響到軟件的健壯性。
3.3軟件測試成本過半證明了軟件測試的重要性
軟件工程雖然在很多專家和權(quán)威機構(gòu)的定義有所偏差,但是無一例外,對于軟件成本構(gòu)成的分析上,軟件測試的成本一直占據(jù)了主要部分,最低的認為,軟件測試成本要占據(jù)30%,最高的則認為占據(jù)到50%。如果將后期維護成本也放在軟件測試板塊中,那么這個測試成本就會變得更高。因為軟件進入維護期時,一旦出現(xiàn)軟件需要進行調(diào)試,那么修復后的軟件依然要進行軟件測試,否則很難保證調(diào)試后軟件依然能夠保證健壯性。作為一個軟件系統(tǒng)的所有代碼,都是牽一發(fā)而動全身,修改了某處代碼,可能會影響到另外一個模塊的功能,所以在維護期內(nèi),對軟件的任何變動,都需要進行軟件測試,才能夠保證軟件接下來的健壯性。但很明顯,如果將軟件測試工作放在軟件推出市場之前,就來進行有效的測試,那么對于軟件整個生命周期的成本,將能夠得到有效的降低。軟件測試的成本的高低,往往和軟件的質(zhì)量成正比,而軟件質(zhì)量提升了,后期的維護成本就能夠有效的降低,所以綜合起來,軟件測試這部分的成本支出是非常有必要的。
4軟件測試流程分析
(1)建立獨立的軟件測試部門,測試部門領(lǐng)導應該對這個專業(yè)非常精通,而不是簡單的由開發(fā)人員兼職,這個測試部門需要從可行性研究開始就應該著手對軟件研發(fā)進行測試,可行性研究的最終確認應該也有軟件測試主管部門的簽字確認才能夠進行下一步的工作。
(2)軟件測試工作不是等到軟件全部開發(fā)完畢才來進行測試,而是跟隨軟件設(shè)計的整改生命周期,針對每一個環(huán)節(jié)進行測試,軟件測試部門應該擁有獨立的物理部門和獨立于開放環(huán)境的測試環(huán)境,這樣才能夠提供更加完善的軟件測試,盡可能的將軟件bug扼殺在搖籃里。
(3)軟件模塊測試,因為現(xiàn)在軟件設(shè)計都已經(jīng)進入模塊化設(shè)計標準,比如一個完整的軟件是S,它有A、B、C、D等模塊構(gòu)成,那么對于A模塊的軟件設(shè)計過程中,就應該有獨立的軟件測試人員進行跟蹤,直到A模塊被測試證明沒有隱患。以此類推,分別對B、C、D等模塊分別進行測試,合格以后,組裝后的軟件依然進行測試,這樣才能夠最終提升軟件健壯性。在軟件設(shè)計的過程中,其實測試人員是和軟件開發(fā)人員并行工作的,而不是等到軟件設(shè)計完畢之后,再來對模塊進行測試,這種方法才能夠提升軟件測試的效果。
5結(jié)語
軟件技術(shù)方案 軟件考察報告 軟件管理論文 軟件管理 軟件項目總結(jié) 軟件專業(yè)論文 軟件工程 軟件畢業(yè)論文 軟件開發(fā)論文 軟件項目管理 法制博覽論文 年終項目總結(jié) 舞蹈??普撐?/a> 預算會計論文