Can Test Automation Tools Replace The Human Testers?
http://software-testing-zone.blogspot.com/2008/10/automation-tools-replace-manual-testers.html

Oct 22th, 2008
Posted by Debasis
Published in Software Testing Zone

Test Automation能取代human testers嗎? 這個問題是常常被提及, 也常常被誤解. 像之前聽到兩位PM在聊天, 談到某個team的QA有很多位, 接著其中一位就脫口而出, 他們是否沒有做automation. 好樣一付只要有做automation, 便可以省下大量的人力, 便可以測的比較快. 當時我聽了很沒力感, 又是一位白目的manager, 老是認為 automation是銀製子彈(silver bullet). 只要做了test automation, 測試就會沒有問題, 可以找到所有bug, 時程也可以快速縮短.

事實上任何方法, 都會有它的優點和缺點. 重點是在於你知不知道, 它的精神是什麼, 它適用的時機點是什麼. 只要你能掌握這些, 自然就能發揮其長處.

首先, 作者先列出manual testing 的長處
1. A human can think
2. A human tester can explore new applications using her intuition and self-learning abilities
3. A human tester can think out side of the pre decided test boundaries.
4. A human tester needs less spoon-feeding as compared to a tool.
5. Human testers rock when it comes to Usability testing where automation tools fail miserably
6. Human beings are good examples of being adaptable
- A tool cannot remember and learn from past experiences to adjust it accordingly. Human testers can.
7. Considering the huge cost of license fees of the so-called GUI automation tools, human testers  are still cheaper

作者也先表白, 他並不是test automation的反對者, 他十分熱愛像agile development這種需要大量test automation的環境. 不過他反對的是使用commerical tools來做GUI test automation, 一方面是commerical tools價格十分昂貴, 並且也無法完全符合你的需求. 若是使用in-house GUI tools這樣會比較符合效益.  作者最推薦的, 是使用unit level的test automation, 不但比較好implement, 效果也是最好最快.

還有些東西, 作者認為一定要automation才能測試 , 例如: stress testing, performance testing, penetration testing, API testing等等

接著他在列出test automation的強處
1. Computers work much faster than a human tester and  are less prone to get confused while doing multi-tasking.
2. Computers are great at mathematical calculations.
3. Computers never skip any hours of testing
- People get tired and distracted, but computers are great at repetitive tasks humans are not very good at.
4. Computer never complain about salary hikes, number of paid leaves, holidays.
5. At certain contexts, test automation can be cost effective than manual testing
- Paying for the development of a tool and a small group of testers to run it may be cheaper at contexts, as compared to maintaining a whole big group of testers testing everything manually
6. When it comes to load test, obviously automation is an absolute requirement
7. Going for test automation can be a good choice for regression  testing nightly build

比較完兩邊的長處之後, 接著他提出一些重要的觀點
1. 你無法automate人沒想到過的scenario
- Test scripts畢竟是要人先想出來, 目前的科技是無法程式自己寫程式
- Automation只處理你所設定的test data, 但是人可以無限增加test data
2. 你無法automate所有的scenarios
有時候是resource限制, 有時候是因為某些scenarios很難被automate
3. 對於執行失敗的case, 你還是需要人去看哪裡出錯
- 我想應該不會有automation這麼強, 可以自我檢查哪裡出錯吧!!
- Automation最多是加快執行速度, 但是是無法分析錯誤的cases

那manual test就一定是最好的方法嗎? 作者認為也不是這樣, 而是要能平衡兩邊的優點. 也就是不要落於manual 或automated那邊比較好的戰爭. 而是把兩邊的優點都加入使用, 這樣才是最好的結果. 以下是作者建議的方法:
1. Automate tests that involve repetitive, tedious and high level of computation work
2. let human testers do tasks that highly intellectual and need analysis
3. Use automation for areas that are least prone to change and yet require frequent testing. This way you can save some energy on tests that need to be tested periodically.
4. As much possible, let humans do UI testing.
5. Use automation for areas like regression, load, link(broken link testing), API testing, first level unit testing.
6. Don't automate if you know the UI is going to have a revamp.
- The slightest changes in UI can  cause automation to fail. When you know the UI has been settled down, excluding any fixes to bugs, that's probably the time to automate.
7. Realize the understand that not all tests can/should be automated.
- It will initially taker longer to develop effective automation scripts than to do manual testing.
- Knowing what and when to automate is critical
8. Test automation is a supplement to help/boost the overall testing. Automation can neither suffice on it's own nor it can replace other kinds of testing.
arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(2) 人氣()