自动化测试的分类
按照测试阶段分类
(1)单元自动化测试:单元自动化测试是指通过自动化手段对软件最小可测单元进行的测试。一个最小的可测单元通常为一个方法或函数,单元自动化测试常用的工具(框架)有JUnit、TestNG、JTest、unittest和pytest。
(2)集成自动化测试:集成自动化测试是指通过自动化手段把软件的模块组合起来测试。集成测试分为增量测试和非增量测试,这两种测试在手工或自动化的测试中都可以采用。(①增量测试:在增量测试中,如果增量方式是自定向下的,那么测试的过程需要桩;如果增量方式是自底向上的,那么测试的过程需要驱动。在实际项目中,经常涉及的“打桩”概念就来自于增量测试。②非增量测试:非增量测试不像增量测试那样有严格的增量顺序,因此在非增量测试过程中,可能同时需要桩和驱动,也可能只需要其中一个,或者两者都不需要。)集成自动化测试的主要表现之一为接口自动化测试,用于接口自动化测试的常用工具(框架)有JMeter、HttpClient、requests、SoapUI和Postman等。
(3)系统自动化测试:系统自动化测试是指通过自动化手段,将软件、硬件、操作人员当成一个整体进行测试。系统自动化测试又可分为功能化自动测试,性能自动化测试、安全(渗透)自动化测试和兼容性自动化测试等。系统自动化常用的工具(框架)有很多,比如Testin云测平台就提供了兼容性自动化测试功能,他可以测试App在各个手机上运行是否正常。
根据测试类型划分
(1)功能自动化测试
功能自动化测试是指通过自动化手段检查软件能否达到预期功能的测试。主要表现为Wev应用,移动应用和桌面应用等软件的界面测试。界面自动化测试的常用工具(框架有)Selenium、Appium、Robot Framework、UFT/QTP和AutoIt等。
(2)性能自动化测试
性能自动化测试是指通过自动化手段模拟各种正常、峰值和异常负载条件,从而对系统的各项性能指标进行测试。在性能自动测试中,JMeter和LoadRunner占据了绝对的统治地位。
(3)安全(渗透)自动化测试
安全(渗透)自动化测试可以理解为通过自动化手段检查软件是否有安全漏洞。安全(渗透)自动化测试包含前期交互、信息收集、威胁建模、漏洞分析、渗透攻击、后渗透攻击和测试报告7个阶段。安全(渗透)自动化测试常用工具(框架)有Metasploit、Burp Suite、Nessus、NMap、sqlmap、Synopsys Defensics和Peach Fuzzer等。
根据静态和动态划分
(1)静态自动化测试:静态自动化测试是指通过自动化手段不实际运行软件的测试,比如代码审查、文档测试等。根据编码语言不同,代码审查自动化测试工具(框架)的差异很大,对于Java而言,常用的有FindBugs、PWD等。
(2)动态自动化测试:动态自动化测试是指通过自动化手段实际原型软件的测试,即通常所说的“软件测试”。从狭义来讲自动化测试主要是指动态的功能自动化测试。