自动化测试终究会取代手工测试?(2008-11-03 )获奖名单已公布
背景描述:随着测试工具的逐步发展,我们越来越多的依赖于各种测试工具来完成我们的测试工作,那么未来还会有手工测试的天地么?奖项获奖名单奖励答案连接最佳话题PK手尛蟲蟲当当购物卡50元+最佳PK手勋章29# 万变不离其宗 无论自动化测试技术如何先进,始终不能超越人工测试。我觉得一个主要的原因在于目前的技术局限性。除非未来在AI方面有较大的提升,才可能模拟出人类的行为,但是仅仅限于模拟,很多人类行为是没有逻辑性的。 人家说的终究会取代,这是一定的,但取代的只会是人工执行测试用例这一部份,而对于设计方法部份很难取代,所以这就是我为什么在不会编程就做不好测试的PK问题中认为:不会编程也能做好测试的原因所在,当你用编程取代人工执行测试用例后,编程者的地位其实就是取代了执行用例者的地位,这也是测试的编程的价值所在,但是真正的核心价值在与设计与方法,所以自动化终究会取代测试执行的! 自动化测试在基于在程序相对稳定和回归测试上,对于一个程序不稳定的情况下去做自动化测试是比较难的。手工测试能用高智能方法去测。而自动化测试在低智能的情况下用,才能显示出它的好处。非要在高智能的情况下用也不是不可能,但是这个成本会好高。对企业不利。 自动化测试可以将繁琐的测试变得简单,但是只在一般不用太多逻辑思维的测试用例上,自动化测试根据给定的测试步骤或者测试方法来执行测试用例,不可能将所有的人思维方式程序化来测试软件。毕竟人类的思维不一样。 虽然自动测试工具有很多好处,但它不能解决所有测试工作中的问题,永远无法代替手工测试。应看做是对手工测试过程的一个补充。
★工具也是软件,只能按照指令执行,而人可以运用想象力和创造力采用不同的方式改进和完成测试。而且人工测试可以处理意外事件,如网络中断,必须重新建立连接,手工测试在测试期间就可以尽可能地解决问题。然而这样的意外事件却可以中止自动测试的执行。
★自动测试并不是对所有的程序都适用。如:确认打印输出的结果。测试人员为了验证结果,必须走到打印机前确认文档确实打印下来了,纸上打印的内容也必须要用眼睛来验证,这不可能用工具进行吧~~还有类似的:测试彩色模式的合适程度、屏幕轮廓的直观效果,或指定的屏幕对象是否能播放正确的声音等,用自动化测试都比较困难或者不可能
★如果软件版本不稳定时,用户界面和功能频繁变化,那么修改相应的自动化测试脚本的开销也会比较大
★测试工具本身也是复杂的应用程序,也需要提供补丁,也可能是不可预测的。如:数据库损坏,基线不能恢复,或工具行为本身并不总是与预期一致。定位问题或将损坏的库从备份中恢复也需要花费很多时间
★还有就是自动测试的费用和维护问题。自动测试的费用包括了工具购买费用,培训费用,自动测试脚本的开发和维护费用。维护自动测试脚本的工作量有时非常繁重
~~~~~随着测试工具的发展,越来越多的测试人员对自动化测试抱很高的期望,甚至认为自动测试能够完成从测试规划到测试执行期间的所有工作,不需要过多的人工干预。从技术角度上分析,这样的需求几乎是不可能实现的。
在一个项目中任何工具都不可能完全代替所有的手工测试!! 发错了,见正方观点,呵呵。。。
[ 本帖最后由 lantianwei 于 2008-11-4 11:16 编辑 ] 人有多大胆,地有多大产! :lol 因此自动化代替手工更不在话下,唯一的问题只是时间问题,可能这需要10年,几十年。。。
为何我会如此确定自动化必将替代手工?
1. 随着软硬件领域的更加规范标准,这将大大降低自动化替代手工的难度
2. 随着人工智能的不断发展,让机器也有思想将不是问题,而用人工智能正可以用到自动化替代手工上来
3. 人类总是很懒,因为懒的走路,发明了汽车;因为懒的做饭,发明了肯德基;因此,终将有一天人将懒的去手动测试!
4. 在速度,成本方面人跟机器没发比,而跟有思想的机器更加没法比,为了降低成本,提高效率,这也是将来企业的必然选择
5. 在一两百年前,让个破铜烂铁帮咱算题,整理文件,聊QQ是不可想象的,但我们现在做到了;而自动化现在已经有一部分替代了手工,那么他的完全替代更加不是梦!
当然,在现阶段自动化替代手工将只是一个梦,更有少数公司因为自动化的不成熟导致自动化的成本比手工还高,效率却低。因此我觉得手工测试在未来几年或更长点的时间还是非常有市场了,但自动化将是一个趋势,谁也无法改变这点!
我相信,在未来软件高度成熟时代,如果我们想开发一个软件产品只要需要输入这个软件产品的一些特性描述,包括软件产品的设计,开发,测试等一系列过程将会自动完成,然后我们就可以得到我们想要的软件产品。也许将来也会出现无错软件,那么测试就根本没有必要了。可能有很多人会反问,让软件无错怎么可能啊?当然可能按现在的软件,计算机模式,根本无法实现无错软件,但如果我们对计算机领域进行一个大的变革,包括计算机硬件,软件开发等 比如计算机的表示不在是1,0,而是更加复杂的字符。。。
人有多大胆,科技就有多牛!
呵呵。。。
[ 本帖最后由 lantianwei 于 2008-11-5 09:29 编辑 ] 自动化只是辅助手工测试的一种工具,但是它没有手工测试思维性。就像机器人只能为人类服务而无法代替人类一样。 自动化测试的目的是替代繁琐的手工测试,将测试人员从手工测试中解脱出来,将精力用在测试用例设计,挖掘更深入的bug.但也并非所有手工测试都需要自动化,这需要进行ROI的评估
而且,自动化测试主要是用在回归方面,保障之前的功能正确,发现bug极少.bug还是要通过手工测试来挖掘 无论自动化测试技术如何进步,有很多人工操作是取代不了的。测试脚本是没有思维的,在执行过程中是不能根据实际情况做适时反应的。 自动化测试是永远不可能取代手工测试的,试想一个用户量很大的网站经常要做一些活动,用了自动化需求一边叫本不能复用无论人力财力都是很大的消耗。 手工测试是软件测试过程中的基础,现有的自动化测试工具必须在系统软件各个方面都完善以后,才有可能比较完善的运用到系统测试中。
如果一个软件对于手工测试的操作都无法完成,更不用说自动化测试了。
自动化测试工具的优势在回归的过程中,才能够显示出来。 工具的思维始终不能代替人的思维,自动工具是为我们保证软件质量而服务的 手工测试永远是不可取代的。
自动测试应该说在特定的时候比手工测试要快速而且反应问题准确。但是不要忘记了,机器永远在执行固定的代码。
而一些BUG是需要一系列操作才能被发现的,那就带有很大的偶然性,机器里面没有偶然。
自动测试的BUG,手工一定可以,但是手工发现的BUG,可能机器可能永远也发现不了。
除非机器能和人脑一样工作。 虽然我一直做自动化测试,但是自动化测试真的是不可能取代手动测试的,自动化测试发现的BUG是有限di~
有梦想才能成真
只有敢于大胆的梦想,才会有发展的可能。而且任何事务的发展是建立在梦想的基础之上的,因为有梦想我们才会竭尽全力去想办法达到。明知不可为而为之,这才是突破。自动化测试终将与手工测试和谐共存!
俗语说的好“没有永久的敌人,只有永久的利益”,手工测试和自动化测试最终都是为了保障软件质量,在人力、时间、Money等等因素的约束下找到一个最佳的平衡点。1.初期单元测试前,代码走读的作用我想是任何自动化不能代替的,而且这对于发现初期隐藏的代码隐患,算法设计缺陷,以及公司的编程规范是不可或缺的。
2.中期软件GUI稳定前,功能测试还很依赖于手工,这将提供在此开发阶段产出的Build的在功能方面的稳定性。如果这时就用自动化,将会事倍功半。
3.后期回归测试中,虽主要依赖功能自动化测试工具,但在验证已修复的BUG及做一些复杂的Exploratory Testing(ET)任务时,手工仍然是最佳选择。
最后我衷心的祝福手工和自动化测试能够携手共创趋于无穷完美的软件,为人类的明天打造更美好的生活品质!
Vinly Zhao 原帖由 momoANDmonica 于 2008-11-3 17:43 发表 http://bbs.51testing.com/images/common/back.gif
虽然自动测试工具有很多好处,但它不能解决所有测试工作中的问题,永远无法代替手工测试。应看做是对手工测试过程的一个补充。
★工具也是软件,只能按照指令执行,而人可以运用想象力和创造力采用不同的方式改进 ...
支持momoANDmonica的观点。
1.自动化测试的适用范围是有限制的,例如小型的系统,完全采用自动化测试将是得不偿失的。但是像大型系统的性能,如通信、银行等则必须使用自动化测试进行。
2.自动化测试只有在版本稳定且功能实现的基础上进行,做回归测试的长处显而易见。
3.自动化测试也需要编写相应的测试工具或者测试代码,而只要是通过代码编辑出来的无论工具还是脚本,都可能存在自身的缺陷,而这有可能导致自动执行的误判;
4.再有就是成本问题,现在多数公司测试都采用人工测试和自动化测试结合的方式进行。这样一可以节省回归测试的人力,二可以复用已有的代码。但是如果自动化测试完全取代手工测试,那么成本开销将大于手工测试与自动化测试结合。
因此,自动化测试是测试的一个发展趋势,但是不可能完全取代手工测试。