自动化测试优势&劣势

一、自动化测试概述

     软件自动化测试是相对手工测试而存在的,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,节省人力、时间或硬件资源,提高测试效率。

二、自动化测试优势&劣势

  • 优势:

  1. 提高测试执行效率,节约时间成本;
  2. 解放人力去做更重要的工作;
  3. 可重复利用,建设对人的依赖;
  4. 提升客户满意度;
  5. 提升测试团队的整体水平;
  6. 可大幅度减少兼容性测试的工作量;
  7. 有些测试工作必须依靠自动化实现来完成;
  • 劣势:

  1. 开发测试脚本需要花费较大的时间成本,拉长周期;
  2. 产品的快速迭代,自动化脚本也将不断迭代,时间成本很高;
  3. 不同的项目之间自动化脚本的复用度很低;
  4. 对短期型项目产品实现自动化价值不高;
  5. 自动化无法完全代替手工测试找到bug,实现100%覆盖;
  6. 自动化更多的适用于回归测试;
  7. 自动化开发过程对软件测试团队的技术有更高的要求;

三、自动化测试常用工具

  • 代码级别:

  1. XUnit:junit,cppunit,googleTest,NUnit,PyUni…
  2. XMock:JMock,GoogleMock,Nmock…
  3. Coverage:PureCoverage,Purify,EclEmma,DevPartner,ThreadingTest…

优缺点分析:

优点:易于实施和控制,容易快速看到效果,结合TDD将代码质量提高一个量级;
缺点:要求有较强的编码能力和对被测代码的理解,同事需要流程和团队的配合;需要开发大量的测试驱动程序和测试桩,让研发团队望而却步;
解决方案:多从灰盒测试角度实施(基于接口),而非纯代码测试角度(基于代码逻辑);

  • 接口/协议级别:

  1. LoadRunner:支持全协议,重点支持HTTP等
  2. SoapUI:支持WebService协议SOAP
  3. WebLoad:支持HTTP协议
  4. RPT:重点支持HTTP和TCP/UDP协议
  5. SilkPerformance:重点支持HTTP和TCP/UDP协议
  6. HTTPClient,JsOUP:HTTP协议和HTML元素处理
  7. JMeter:支持HTTP,JMS协议等

优缺点分析:

优点:适用于功能、性能、安全性、可靠性、可用性等测试类型;介于白盒和黑盒测试之间,是对白盒和黑盒测试的补充和增强
缺点:必须非常熟悉协议规则,特别是非开放式的自定义协议规则或者加密规则;
解决方案:根据测试类型和测试目的来决定是否选用此类技术,一定能找到解决方案;

  • 界面级别:

  1. QTP/UFT:支持Windows,web,java,.NET应用程序
  2. RFT:支持Windows,web,java,.NET应用程序等
  3. TestComplete:支持各类应用程序及第三方组件,对象识别能力强
  4. selenium/Watir:支持Web应用
  5. Safar,IE,Chrome,Firefox
  6. Sikuli IDE:基于图像识别自动化测试工具,支持所有应用
  7. Appium/MonkeyRunner:Android,IOS移动应用

优缺点分析:

优点:工具多,有成熟的解决方案,易于学习,短期效果明显;
缺点:容易出现无法识别和操作软件产品界面上的元素的情况,从而使测试失效;产品早期变化大,不适合界面自动化测试,否则维护成本较高;
解决方案:等待产品稳定后进行,主要用于验收测试和兼容性测试,不要指望找BUG;

猜你喜欢

转载自blog.csdn.net/weixin_42343424/article/details/81291722
今日推荐