年薪百万?豪车洋房?自动化测试基础(一)

自动化测试基础1

一、软件测试分类

1、根据项目流程阶段划分

                          验收测试

需求分析--------系统测试

设        计--------集成测试

编        码--------单元测试

如上,是一个典型的“V"型模型软件开发模式

单元测试:或者说模块测试,是对程序中的最小子程序或者具有独立功能的代码模块进行测试的过程

集成测试:集成测试是在单元测试的基础上,将单元模块组成子系统或者系统进行测试,主要测试的是模块之间的接口是否正确

系统测试:是针对整个产品系统进行的测试,验证系统的功能和性能等是否满足需求

验收测试:部署软件前的最后一个操作。验收测试的目的是确保软件准备就绪,向客户展示系统满足用户的需求

2、根据测试过程中对代码的可见程度:黑盒测试、灰盒测试、白盒测试

黑盒测试:把被测的软件看做一个盒子,内部代码不可见,只关心输入数据和输出结果。

黑盒测试只关注程序外部结构,不考虑内部逻辑结构,主要针对软件界面和功能进行测试

白盒测试:关注内部代码逻辑和程序执行结果

按照内部的结构测试程序,检验程序中的每条路是否按照预定需求工作

灰盒测试:介于黑盒测试和白盒测试之间

灰盒测试关注输入和输出,同时也关注内部结构表现,会通过一些表征性的现象、事件和标识来判断内部运行状态。

灰盒测试的出现结合黑盒测试的白盒测试的优点,更优效率

3、功能测试和性能测试

功能测试:检查系统的功能是否满足用户的需求。

可以细分为:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试

性能测试:通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试

软件性能:主要包括时间性能和空间性能

时间性能:主要指软件的一个具体的响应时间。比如一个登陆的响应时间。一个交易所需要的时间。需要搭建一个具体且独立的测试环境

空间性能:主要指软件运行时所消耗的系统资源,比如硬件资源、CPU、内存、网络宽带消耗等

4、手工测试和自动化测试

手工测试:手动执行测试用例,查看返回结果是否符合预期

自动化测试:把以人为驱动的测试转变为机器执行的一种过程。在这一过程中,节省了人力、时间和硬件资源,提高了测试效率。

分类:功能自动化测试和性能自动化测试

功能自动化测试:通过一定的测试技术,以编码的方式通过一段程序来测试一个软件的功能,可以进行重复测试

性能自动化测试:通过工具模拟成千上万的用户向系统发送请求,用来验证系统的处理能力

5、冒烟测试、回归测试和随机测试

冒烟测试:指在对一个新版本进行大规模的测试之前,先验证主要功能是否实现,是否具备可测性,如果没有实现,打回重新开发。可以节省大量的人力和时间成本

回归测试:指在对旧代码进行修改之后,重新进行测试,确保修改代码后没有引入新的错误,或导致其他代码产生错误

回归测试是一个循环的过程,如果回归的问题不能通过,则需要开发修改后再次进行回归

随机测试:指测试中输入的数据都是随机产生的,为了模拟用户的真实操作,并发现一些边缘性的错误

缺点:测试不系统,无法统计代码覆盖率和需求覆盖率,发现的问题很难重现。一般放在测试的最后进行

6、探索性测试

可以说是一种测试思维技术,它没有很多的测试方法、技术和工具。强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题是改变策略

7、安全测试

安全测试是在IT产品的整个生命周期,特别是开发基本完成到发布的阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。尤其互联网产品更易遭受各种安全攻击

二、什么样的项目适合自动化测试

1、任务测试明确,不会频繁变动

2、每日构建后的测试验证

3、比较频繁的回归测试

4、软件系统界面稳定,变动少

5、需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重复任务

6、软甲维护周期长

7、项目进度压力不大

8、被测系统开发规范,可以保证系统的可测性

9、具备大量的自动化测试平台

10、测试人员具备较强的编程能力

一般满足三个条件就可以进行自动化测试

1、软件需求编程不频繁

2、项目周期长

3、自动化测试脚本可复用

是否可复用:1)所测项目之间差异是否很大(C/S和B/S的区别)

                        2)所选择的自动化测试工具是否适应这种差距

                        3)测试人员是否有能力开发出适应这种差距的自动化测试框架

三、自动化测试及工具简述

1、概念:广义——所有借助工具的软件测试

                  狭义——UI自动化

除此之外,还有基于代码编写阶段的单元自动化测试

基于集成测试阶段的接口自动化测试

2、自动化测试工具

QTP:HP Quick Test Professional software的简称,

是一种企业级的自动化测试工具,提供了强大易用的录制回放功能,支持B/S和C/S两种架构的软件测试

Robot Framework:是一款Python编写的功能自动化测试框架,具备良好的可扩展性,

支持关键字驱动,可以同时测试多种类型的客户端和接口,可以进行分布式测试执行

watir:Watir 全称是“Web Application Testing in Ruby”。它是一种基于Web 模式的自动化功能测试工具。

watir 是一个ruby 语言库,使用ruby 语言进行脚本开发。

selenium:也是一个用于Web 应用程序测试的工具,支持多平台、多浏览、多语言去实现自动化测试。目前在web 自动化领域应用越来越广泛。

此文参考《selenium 2 Python自动化测试实战》

如果大家对于学习Python有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,或者缺少系统学习资料的,我做这行年头比较久,自认为还是比较有经验的,可以帮助大家提出建设性建议,这是我的Python交流qun:785128166,有任何问题可以随时来咨询我。
 

猜你喜欢

转载自blog.csdn.net/PythonCS001/article/details/108448531