随着软件业越来越发达,软件的功能和规模越来越大,软件测试的位置也会越来越重要,自动化测试的要求也会水涨船高,地位也会随着升高,但这并不代表手工测试就会消亡。
未来无限可能更加智能的自动化代替手工乃大势所趋,自动化的智能程度将无限发展,最终可能代替人去做任何工作,甚至代替人类。这种说法激起很多科技爱好者和科幻片爱好者,更是有力的支持了自动化测试终将取代手工测试这一观点。但是,在这种无限的可能下,我认为,人类也有可能进化到在不使用自动化的情况下,凭借大脑无穷的计算分析能力进行测试。何况自动化的发展本身就受人类进化的制约。所以未来的发展方向是不可预料的,在无限的可能下,任何事都有可能会发生,这样的讨论是没有意义和价值的。
这一问题的论点理应着力于目前的水平下,自动化测试与手工测试各自的优缺点以及各自的存在价值。手工测试是传统的测试方法,他的测试工作量、重复多,回归测试难以实现。自动化测试利用软件测试工具自动实现全部或者部分测试工作:管理、设计、执行和报告。自动化测试节约大量的测试开销,并能够完成一些手工测试无法完成的测试。
自动化测试是对手工测试的一种补充,自动化测试不可能完全替代手工测试,因为很多数据的正确性、界面是否美观、业务逻辑的满足程度等都离不开测试人员的人工判断。而仅仅依赖手工测试的话,则会让测试过于低效,尤其是回归测试的重复工作量会对测试人员造成巨大的压力。
手工测试的特点主要有:
(1 )测试人员要负责大量的文档、报表的制定和整理工作,会变得力不从心。
(2 )手软件发布日期。开发成本及人员、资源等诸多方面因素的限制,难以进行全面的测试。
(3 )如果修正缺陷所需要的时间稍长,那么想将手工测试应用于回归测试将变得异常困难。这是因为需要测试的测试用例太多。
(4 )对测试过程中发现的大量缺陷缺乏科学、有效的管理手段,责任变得含糊不清,没有人能向决策层提供精确的数据以度量当前的工作进度及工作效率。
(5 )反复测试带来的倦怠情绪及其他人为因素使得测试标准前后不一,测试花费的时间越长,测试的严格性也就越低。
(6 )难以对不可视对象或对象的不可视属性进行测试。
自动化测试具有的特点:
(1 )高效率的进行测试。
(2 )可以执行一些手工测试困难或者不可能做的测试。
(3 )测试的准确性得到提高,测试人员的技术要求可以降低。
(4 )资源利用率得到提高。
(5 )具有一致性和可重复性。
(6 )有利于进行回归测试。
(7 )测试具有移植性和可重复性。
(8 )缩短测试时间。
手工测试和自动化测试各自的适合场合:
1.测试很少执行的项目中。当测试用例执行额度太小时,我们可以直接使用手工测试。
2.软件运行仍然不稳定时,适合使用手工测试。
3.测试结果很容易通过人验证的测试项目适合手工测试。
4.测试项目中涉及物理交互比较多的时候适合手工测试。如需要经常查看打印机、绘图仪的输出时。
5.软件维护时使用的回归测试适合自动化测试。
6.执行压力测试时适合自动化测试。例如测试服务器的最大访问上限等。
7.配置和兼容性测试等项目适合自动化测试。
虽然很多现在已经是做自动化测试,但哪一个不是从手工测试,功能测试做起的,就算你的代码能力再强,你能脱立业务直接开发脚本么?
从行业发展来看:
自动化测试和手工测试,谁都不代替谁,哪一个测试类型随着公司的成长都会必备。
从薪酬来看:
目前行业里,有少部分的手工测试人员工资比自动化测试的高,从相同工作年限,相同行业来说,普遍现象自动化测试高于手工测试,这也是为什么越来越多的人想做自动化测试。
从职位发展来看:
自动化测试的发展并不一定就比手工测试的好。
如果做自动化测试你只具备了编写代码的能力,完全脱立了业务,那你写出来的脚本一定没手工测试测试出来的bug多。
所以软件测试人员一定要掌握业务,即需求,这是软件的命脉,也是测试人员的命脉。
现在测试人员都有极端的特点,要么业务能力很强,要么编码能力很强,那种业务能力和编码能力都强的却少之有少。
建议软件测试人员不要一味的提高自己的代码能力,在提高代码能力之前,要保证自己的测试思维是建立完全的,这也是王豆豆经常说不要忘记了测试理论。
真正的高手是那代码能力和业务能力完全兼顾的,有良好的测试思维,同时发散思维也很强大。
如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的,可以加入我的QQ群高级测试学习大家庭:313782132
网友评论