軟件測試的基本問題
發(fā)布時間:2021-04-15 11:30:06
軟件測試的基本問題
眾所周知,軟件質(zhì)量好壞是軟件成功的必要條件,一款漏洞百出的軟件,是不可能獲得成功的,沒有任何人會喜歡這樣的軟件。
在軟件的開發(fā)過程中,有兩類人是決定軟件開發(fā)質(zhì)量的,這兩類人是開發(fā)人員和測試人員。這兩類人必須緊密配合,充分合作,才能一起開發(fā)出完美的軟件。兩者之間在一個軟件開發(fā)過程中,按照如下的關(guān)系緊密結(jié)合在一起:
上面這個過程,從某種意義上也可以這么理解:
創(chuàng)造BUG發(fā)現(xiàn)BUG→ 解決BUG。
從上面的流程可以看到,任何BUG都是因?yàn)殚_發(fā)人員代碼有缺陷造成的。只有沒找到重現(xiàn)方法的BUG,絕對沒有所謂的“靈異”BUG。開發(fā)人員代碼質(zhì)量越高,BUG就會越少,即使有BUG也容易找到;反之代碼質(zhì)量越低,BUG就會越多,也會越“靈異”。因此當(dāng)發(fā)現(xiàn)一個所謂的“靈異”BUG的時候,測試人員可以要求開發(fā)人員仔細(xì)檢查自己的代碼是否有缺陷;當(dāng)然開發(fā)人員也應(yīng)該主動去看自己的代碼是否有缺陷。
測試人員的職責(zé),不但要發(fā)現(xiàn)BUG,更重要的發(fā)現(xiàn)這個BUG的重現(xiàn)方法,不能重現(xiàn)的BUG,對開發(fā)人員來說價值是不大的。事實(shí)證明,絕大多數(shù)所謂的“靈異”BUG,最終都能找到重現(xiàn)的方法。對于一個BUG來說,只要找到重現(xiàn)的方法,意味著這個BUG已經(jīng)得到解決了。
發(fā)現(xiàn)一個“靈異”BUG,并找到可重現(xiàn)的路徑,是一件極具挑戰(zhàn)的工作,也是一件相當(dāng)有技術(shù)含量的事。
你沒有看錯,是相當(dāng)?shù)挠屑夹g(shù)含量,甚至比做開發(fā)更需要專業(yè)知識和技巧。從某些角度看,測試的工作和破案有點(diǎn)類似,都是在蛛絲馬跡中找到某些必然的因素,然后讓看似雜亂無章的東西變得清晰、有序,最終找到解決辦法。然而目前的現(xiàn)狀是,整個行業(yè)中大多數(shù)的軟件企業(yè),并沒有意識到這一點(diǎn),項(xiàng)目的負(fù)責(zé)人乃至測試工程師自己都往往認(rèn)為測試是一件體力活,他們認(rèn)為只要時間、人手投入進(jìn)去,就一定能達(dá)到預(yù)期效果,其實(shí)不然。沒有正確的價值觀引導(dǎo)和測試方法的提升,本來有技術(shù)含量的測試工作就會做成體力活,吃力不討好。
在一個項(xiàng)目過程中,測試人員相當(dāng)于一款產(chǎn)品最后把關(guān)的人員,是非常重要的。因此一個好的測試人員,一定要自信,要據(jù)理力爭。
BUG雖然靈異,但找BUG的過程仍然有一些規(guī)律可循,總有一些方法可以借鑒,因此本文將討論一下測試的方法論。
正如一個優(yōu)秀的開發(fā)人員,應(yīng)該具備一些測試方面的知識和能力;一個優(yōu)秀的測試人員,同樣需要了解一些開發(fā)方面的知識。
沒有測試方面知識和能力的開發(fā)人員,開發(fā)出來的軟件一定會有比較多的BUG,甚至?xí)泻車?yán)重的BUG,這些BUG可能需要很長時間才能修復(fù);反之有一定測試知識和能力的開發(fā)人員,開發(fā)出來的軟件就不會有很多BUG,更不會有嚴(yán)重的BUG,即使有了BUG也一定能很快地修復(fù)掉。
沒有開發(fā)方面知識的測試人員,在測試的時候同樣不能找出太多的BUG,即使找到BUG也往往無法重現(xiàn);反之有一定開發(fā)能力的測試人員,在測試過程中就能找到比較多的BUG,而且能找到BUG的重現(xiàn)方法。
開發(fā)人員在學(xué)習(xí)測試知識,提升測試能力的時候,同時開發(fā)能力也一起得到提升;測試人員在學(xué)習(xí)開發(fā)知識,提升開發(fā)能力的時候,同樣測試能力也會得到提高。開發(fā)人員和測試人員應(yīng)該經(jīng)常在一起溝通,互相學(xué)習(xí),一起提高。
前文說過,找BUG是有規(guī)律可循的,掌握了正確的方法,就能比較容易地找到BUG和BUG產(chǎn)生的原因。
測試從方法論上講,最根本的就是兩個方法:暴露問題;分析問題。用在測試上,可以理解為通過各種各樣的操作、猜測,使軟件的各種缺陷暴露出來;通過歸納總結(jié),發(fā)現(xiàn)BUG的規(guī)律,找到BUG產(chǎn)生的明確原因,當(dāng)一個BUG產(chǎn)生的明確原因找到了,BUG也就能解決了。
- 上一篇:為什么要學(xué)C語言
- 下一篇:軟件測試的基本問題