什么是回歸測試?
回歸測試就是當開發人員對軟件產品的基線版本做出任何改變時,測試人員針對這些改變進行的有針對性的測試活動。
以上所說的對軟件產品做出的改變包括:
·開發人員為了修復一個軟件缺陷而對軟件產品進行的修改。
·開發人員在需求變更時,為滿足新的需求而對軟件產品做出的修改。·在穩定的軟件產品中加入(集成)一個新的模塊。
回歸測試與軟件產品的基線版本有着很大的聯系,因為回歸測試就是針對於軟件產品的基線版本的改變所做的測試。
面試試題1
什么是軟件的基線版本( baseline) ?
解答
軟件產品的基線版本就是軟件在開發的過程中某一時刻的快照( snapshot)。在這一時刻的軟件產品的版本一定是一個穩定的版本,一定可以作為繼續在其上做開發的依據。
此后開發人員要繼續開發就必須在基線版本中拉出一條分支( branch)。待新的功能開發完成並經過測試穩定之后,再經過項目管理人員、開發團隊負責人、測試團隊負責人、軟件配置管理人員(SCM)檢視通過之后形成新的基線版本。需要注意的是,新的基線版本同樣必須是穩定的。
如果新的基線版本在后續的開發及測試中發現有不穩定的現象甚至是影響軟件功能或項目進度的嚴重的設計缺陷或軟件缺陷,則此時新的基線版本可能就會被拋棄。而產品將會會滾( rollback)到之前的那個穩定的基線版本。當然,這種現象不是經常發生的,也是項目相關人員最不願意看到的。
基線版本的來源:有些軟件項目是從零開始做起的,其軟件產品通過逐步的集成會形成--個包含主要模塊並且逐步趨於穩定的版本。當其版本足夠穩定時,軟件配置管理人員會將其編譯為基線版本,並通知項目中的其他角色項目的基線版本已經產生。此后的開發都基於此版本。
有些軟件項目是基於以前較成功的產品進行開發的,在這種情況下可以挑選以前產品中較穩定並兼具擴展性的版本作為新產品的基線版本。此后的開發都基於此版本。
面試試題2
為什么要做回歸測試?
解答
因為回歸測試就是針對於軟件產品的基線版本的改變所做的測試,因此通過對產品進行回歸測試可以。
驗證開發人員所承諾修復的軟件缺陷是否已被正確修復。
驗證新的軟件修改是否影響了原有的穩定模塊的正確性和穩定性。驗證新的軟件修改是否引入了新的缺陷。
·驗證新的軟件版本是否穩定,從而成為新的基線版本,以備后續開發使用。
面試試題3
什么時候開始做回歸測試?
解答
從回歸測試的定義(回歸測試就是當開發人員對軟件產品的基線版本做出任何改變時,測試人員針對這些改變進行的有針對性的測試活動)可以看出,首先正在開發的軟件產品必須形成了基線版本。當然,這個基線版本可以是某一個模塊的基線版本(即產品的某一個模塊的版本趨於穩定,此后在這個模塊上的開發都基於該版本),也可以是整個項目的基線版本。
另外,還必須要有對基線版本的修改。此時軟件配置管理人員(SCM)會將修改后的代碼編譯成新的版本,然后分發給測試部門進行回歸測試。
面試試題4
怎么做回歸測試?
解答
我們不難看出回歸測試是貫穿於集成測試、系統測試和用戶體驗測試等測試階段的一種測試行為。它的目的是為了評估在以上階段中修復軟件缺陷、引入新的模塊等行為對整個基線版本的質量產生的影響以及新的修改自身的質量。
下面以系統測試階段的回歸測試活動為例來講述怎么做回歸測試。
正在開發的軟件產品進入系統測試階段之后,軟件配置管理人員(SCM)就會為這個可以進行系統測試的版本打上系統測試階段的基線版本標簽(Label),而系統測試部門就可以開展系統測試了。
此時測試人員按照事先開發完成的測試用例及測試腳本對此基線版本進行測試。測試人員發現疑似軟件缺陷后對其進行復查並確認,如果是軟件缺陷,就將其記錄在缺陷跟蹤管理系統中以備跟蹤。這時測試人員、開發人員、項目管理人員和軟件質量管理人員就會對缺陷的嚴重性和修復的優先級進行定級。在這一輪(cycle)的系統測試結束之后,以上人員將對在缺陷跟蹤管理系統中的所有在這個基線版本上發現的缺陷進行討論,以確定所有缺陷的修改進入到軟件新版本的日程。
同時,需求人員、測試人員和開發人員等還有可能提出新的軟件功能的需求。這些新的功能擴展的描述也將被記錄在一個跟蹤系統中(有時和缺陷跟蹤管理系統是同一系統)。這時該需求將被需求人員、測試人員、開發人員、項目管理人員和軟件質量管理人員進行討論並評估其風險(該風險包括計划進度的風險及引入新功能對原有功能模塊的影響)。如果討論和評估通過,則開發人員就可以開始對新的功能進行開發。待新的功能模塊經過測試並且穩定之后就可以在某個時刻集成入原有的軟件系統中。
當以上兩者情況的修改都確定要進入新的軟件版本時,測試人員就需要對這些修改設計新的回歸測試計划。
設計回歸測試計划的策略。
·在設計新的回歸測試計划時,可以將用於覆蓋上一基線版本的所有測試用例加入到新的回歸測試計划中。之后,還必須加入針對新功能模塊開發的新測試用例。這種策略的優點是測試用例覆蓋率最高,缺點是執行回歸測試計划人員的工作量巨大。
·另一種策略是在新的回歸測試計划中只包括對所有軟件缺陷修復的驗證及對新加入功能的系統級的驗證。這種策略的優點是執行回歸測試計划人員的工作量最小,缺點是測試用例覆蓋率最低。
·最后一種策略是在新的回歸測試計划中包括對所有因軟件缺陷修復而產生的修改的覆蓋。這就意味着除了驗證軟件缺陷的修復還必須評估這些修復對原有的穩定的模塊的影響。
因此,還必須加入一些用於驗證與被修復的缺陷有密切關系的模塊穩定性的一些測試用例。這些測試用例可以是原有的測試用例,也可以是測試人員新開發的用例。同理,對於新加入的功能,除了驗證其本身還要對可能被其影響到的模塊進行再一次的驗證。這種策略的優點是執行回歸測試計划人員的工作量較小,測試用例覆蓋率較高。缺點是新的回歸測試計划的質量和測試覆蓋率受開發該計划的人員的經驗、能力的影響較大,此外開發新的回歸測試計划所需的工作量也較大。
此后測試人員又回到了測試的執行階段。待測試完成之后,測試負責人給出測試報告以反映軟件的質量。當軟件的質量還不夠穩定時,就將進入下一輪的缺陷修復與回歸測試。如果軟件的質量趨於穩定時就可對其進行檢視以確定軟件是否符合系統測試的出口要求以進入軟件測試的下一階段。
如果對軟件測試有興趣,想了解更多的測試知識,解決測試問題,以及入門指導,幫你解決測試中遇到的困惑,我們這里有技術高手。如果你正在找工作或者剛剛學校出來,又或者已經工作但是經常覺得難點很多,覺得自己測試方面學的不夠精想要繼續學習的,想轉行怕學不會的, 都可以加入我們1079636098,群內可領取最新軟件測試大廠面試資料和Python自動化、接口、框架搭建學習資料!

我們不難看出對軟件進行持續的回歸測試是使軟件質量趨於穩定的一個重要手段。在一輪又一輪的回歸測試中軟件的缺陷數量應該是一個逐漸收斂的趨勢(在不加入新的功能並不引入大量新缺陷的情況下)。當缺陷數量或比例到達某一個預先設定的值時,我們就認為該軟件的質量已經滿足這一測試階段的出口要求了。此時,有的公司還會對產品軟件產品進行一次全回歸測試(FullRegression Test)。只有當全回歸測試計划中包括能夠覆蓋整個軟件產品的所有測試用例時,這個全回歸測試的測試報告才能被用來作為認定該軟件的質量是否已經滿足這一測試階段的出口要求的依據。