自动化测试的优势
1)代替大量的手工机械重复性操作。 2)大幅提升回归测试的效率。 3)实现某些手工测试无法完成的测试类型如7*24小时持续运行的系统稳定性测试和高并发场景的压力测试。
自动化测试劣势
1)不能取代手工测试。 2)比手工测试脆弱,测试用例维护成本高 3)开发工作量大 4)需要编程能力。
什么项目适合自动化测试?
1)需求稳定,不会频繁变更。 2)研发和维护周期长,需要频繁执行回归测试。 短期项目建议手工探索式测试。
中长期项目-对比较稳定的软件功能进行自动化测试,对变动较大或需求暂时不明确的功能进行手工测试。
用20%的精力去覆盖80%的回归测试。 3)需要在多平台上重复运行相同测试的场景。 4)某些测试手工无法实现如性能和压力测试。 5)被测软件测开发较为规范,能保证系统的可测试性 6)测试人员有一定的编程能力。
软件开发不同阶段的自动化
单元测试自动化
单元测试本身就是自动化的,因为它根据软件详细设计采用等价类划分和边界值分析方法设计测试用例,在测试代码实现后再以自动化的方式统一执行。这个观点非常正确,但这仅仅是一部分,并没有完整地描述单元测试“自动化”的内涵。
从广义上讲,单元测试阶段的“自动化”内涵不仅仅指测试用例执行的自动化,还应该包含以下五个方面:
用例框架代码生成的自动化;(TestNG 框架代码应该由自动化工具生成 框架代码都可以自动生成)
部分测试输入数据的自动化生成;
自动桩代码的生成;(自动桩代码的生成是指自动化工具可以对被测试代码进行扫描分析,自动为被测函数内部调用的其他函数生成可编程的桩代码,并提供基于测试用例的桩代码管理机制 比如什么工具?)
被测代码的自动化静态分析;(比较常用的代码静态分析工具有 Sonar 和 Coverity)
测试覆盖率的自动统计与分析。(代码行覆盖率、分支覆盖率、MC/DC 覆盖率)
代码级集成测试的自动化技术
现在的开发理念追求的是系统复杂性的解耦,会去尽量避免“大单体”应用,采用 Web Service 或者 RPC 调用的方式来协作完成各个软件功能。所以现在的软件企业,尤其是互联网企业,基本不会去做代码级集成测试,在这里也就不再进一步展开了。
Web Service 测试的自动化技术
Web Service 测试,主要是指 SOAP API 和 REST API 这两类 API 测试,最典型的是采用 SoapUI 或 Postman 等类似的工具。但这类测试工具基本都是界面操作手动发起 Request 并验证 Response,所以难以和 CI/CD 集成,于是就出现了 API 自动化测试框架。如API 自动测试框架是 REST Assured
GUI 测试的自动化技术
基于页面元素识别技术,对页面元素进行自动化操作,以模拟实际终端用户的行为并验证软件功能的正确性。
对于传统 Web 浏览器的 GUI 自动化测试,业内主流的开源方案采用 Selenium,商业方案采用 Micro Focus 的 UFT(前身是 HP 的 QTP);对于移动端原生应用,通常采用主流的 Appium,它对 iOS 环境集成了 XCUITest,对 Android 环境集成了 UIAutomator 和 Espresso
commit之后通常会自动触发静态代码扫描和单元测试, 如果两个都通过后、通常会执行自动部署,然后还会自动执行smoke和e2e测试,这些都是自动化的范畴。
建议有最基本的GUI测试当作smoke来用,保证产品基本功能的可用性 Rest-assured是一个非常适合,非常好用的API开源测试框架,基于java。 到底什么是CICD? robot framework+requestslibrary的方式来做API自动化测试 jmeter接口自动化 试过用jmeter+ant+Jenkins的接口自动化测试 自动化测试框架robot pytest+requests+allure
|