軟件測試人員最容易陷入的誤區,值得收藏
文章鏈接:https://mp.weixin.qq.com/s/gzGIN4tZGEOwQtZJUNcLcg
短期內通過增加軟件測試投入,迅速達到零bug
測試人員都應該知道一個原則,就是完全測試是不可能的,所謂的零BUG,就連阿里巴巴也做不到,并且軟件測試是貫穿整個項目生命周期的,需要盡早的介入測試,如果在項目后期加大測試力度,也并不能有效的提高測試質量。因為測試人員沒有時間理解軟件的業務流程和接口邏輯。
忽視需求階段的參與
軟件測試的開展一定是從需求階段展開的。沒有需求文檔就無法衡量測試周期和測試范圍,也就無法編寫測試計劃和測試用例,所以忽視需求階段的參與,對于項目質量來說是災難性的結果。
忽視用戶操作密集和核心功能的回歸測試
很多人認為用戶經常操作的地方就不會出現問題,但是一個項目更新后,很可能導致以前的核心功能受到了影響,新的代碼對老的業務造成了破壞,所以說,回歸測試一定不能忽視核心功能以及用戶密集操作的模塊。相反,應該重點回歸!
忽視軟件測試建檔
軟件測試建檔,指的是軟件的測試記錄是否有效的存儲,是否可查詢,如果測試不建檔,那么測試報告就無從考察,測試結果也有沒有了依據,所以測試建檔是必要環節,不可忽略。
軟件開發完成之后進行軟件測試
軟件測試是貫穿整個項目生命周期的,必須要在需求階段的時候介入,在單元測試完成后就進行集成測試也就是接口測試,這可以發現80%的軟件缺陷。如果開發完成才介入測試,那么項目發布上線的時間即將會大大延長。而且很多問題修復成本也將會大大增加。
軟件如果發現質量問題,都是測試人員的錯
很多人都覺得測試通過后,在用戶使用時發現bug一定是測試人員沒有測試到位而導致的,我曾經的工作中就經歷過多次這類問題,但是測試人員堅持認為該功能缺失測試過,并且沒有出現這類問題。后來經過本人的辯論終于找到了問題的原因,就是開發人員的疏忽導致封包封版時,沒有保存最新代碼導致問題出現。
首先,如果大家以后遇到這樣的情況出現,千萬不要心急如焚,手忙腳亂。要先確定該功能是否測試過,是否通過測試了。如果沒有測試,那么毫無疑問測試背鍋,如果測試通過還出現了問題,極有可能是開發人員封版時沒有保存最新的代碼而導致的。或者是開發人員在發布最終版本時擅自修改了部分代碼。
項目進度緊時少做些測試,時間富裕時多做測試
項目測試時間緊張的時候很容易出現測試不到位,測試不全面,導致發布后出現問題的情況,正常的處理辦法,應該是使用敏捷測試方法,測試范圍堅決不能縮水,測試用例可以忽略掉表單值域的用例,著重編寫流程性測試用例。并且開發完成了一個模塊,測試就測試一個模塊,這樣可以大大加快測試效率。本人很喜歡使用敏捷測試的方法,不僅可以減少測試時間,質量也不會打折扣。記住一點,敏捷測試一定要對人員進行明確的分工。避免重復性測試帶來的效率降低。
軟件測試工作沒有前途,程序員才是軟件高手
相信很多人都認為測試沒有開發人員厲害,這確實是市場現狀,很多測試技術確實不如開發強,但是論前途,我覺得測試比開發更有挖掘潛力,測試的發展是多樣化的,而且范圍很廣,薪資也完全不亞于開發人員。真正的全棧測試工程師,技術也絕不會輸給開發,甚至超越開發。小編在工作中,也經常會遇到開發人員前來向我請教性能技術和自動化技術。
軟件測試就是保證軟件無故障運行
軟件測試不僅要保證軟件無故障運行,更要保障軟件的易用性,健壯性,穩定性,安全性,兼容性,用戶體驗等一系列的因素,所以單純為了無故障則顯得有些膚淺了。
軟件測試的環境就選用戶的環境
軟件測試分為三個環境,分別是“測試環境”、“HA環境”(準線上環境)、“線上環境”,用戶環境指的是第三個“線上環境”,而測試的重點用該是在“測試環境”和“HA環境”中。用戶環境中并不能隨意提交數據進行測試,只能在最后beta驗收階段時才會采用這個環境的測試。
開發人員更適合做軟件測試
我們常常聽到這樣的問題:“為什么軟件的開發者們不適合測試他們自己開發的軟件?”事實上,軟件開發人員測試自己所開發軟件的行為就如同學生在完成考試試卷后再對自己的成績進行評估。這種做法毫無意義
(1)開發人員對其所寫代碼有主觀認同感
人們通常會對自己所犯錯誤視而不見或者拒絕承認。同樣的,在軟件開發領域,程序員們對待其開發的應用程序就像對待自己的孩子一樣,拒絕承認自己的孩子有什么不好的地方。這就是為什么軟件開發人員難于發現和改正自己的錯誤。
(2)開發人員對軟件過于樂觀的心態
開發人員進行開發的目標是將軟件所需的功能完美的展現出來。當程序的功能運轉正常的時候他們會自我感覺良好,因為他們的主要目標就是功能二字。而測試人員與他們想的卻不一樣。測試人員通常會從不同的角度切入進軟件內部,打破程序員們慣有的思維方式,通過各種不同的測試用例把軟件潛在的不足之處引發出來。
bug越多測試越有效
測試Bug的數量并不能說明測試的有效性,反倒能說明開發人員的技術水平。測試bug數量多則改的代碼就多,改的越多,越可能引發其他問題的出現,甚至到后期bug越來越多。原本沒有問題的模塊也開始出現問題。測試的有效性不能以發現bug的數量而決定,更應該根據問題的隱蔽性或嚴重性來決定。
關注測試的執行而忽略了測試的設計
執行測試一定是按照提前設計好的方法進行的,測試的方法就是測試用例,如果不進行測試用例的設計,直接進行測試執行階段,再強大的測試工程師也無法保證測試的全面性。相信大家都知道編寫測試用例的原則,是100%的覆蓋需求,可見測試設計階段的重要性。
測試是為了證明軟件的正確性
測試不僅要證明軟件的正確性,更應該證明軟件是錯的,測試人員不能只考慮正確的流程,往往出錯最多的是逆向思維測試,反邏輯測試,違背常規的測試是最有效的測試,所以說測試不是為了證明軟件的正確性,而是恰恰相反的證明軟件的錯誤性。
——內容引自微信公眾號《隔壁老王說測試》https://mp.weixin.qq.com/s/gzGIN4tZGEOwQtZJUNcLcg