自动化测试基础
自动化测试分类
界面测试,单元测试,安全测试,数据库测试,负载测试,压力测试,可靠性测试
1 界面测试
测试用户界面的功能模块是否合理,整体风格是否一致和各 个控件的放置位置是否符合客户使用习惯,更重要的是测试操作是否便捷,导航是否简单易懂,界面中的文字是否正确,命名是否统一,页面是否美观,文字、图片的组合是否完美等等。针对 web,界面测试工具有UFT(原先的 QTP),和 selenium 等。针对手机 App测试工具有 Appium 等
2 单元测试
单元测试是最低级别的测试活动,测试对象是软件设计的最小单位。例如,对结构化编程语言,比如C语言,单元测试的对象一般是函数或子过程。对面向对象语言,例如Python和 Java 等,单元测试的对象就是类、对象、类的成员函数。
最经典的单元测试工具是JUnit,针对Java 语言,开发者需要遵循JUnit 的框架编写测试代码。由于JUnit 相对独立于所编写的代码,测试代码可以先于实现代码编写,符合极限编程的测试优先设计的理念。C++语言的单元测试工具是 CPPTest,针对 Python语言的单元测试工具是 unittest
3 安全测试
安全测试是测试系统在应付非授权的内外部访问、非法侵人或故意损坏时的系统防护能力,检验系统有能力使可能存在的内外部伤害或损害的风险限制到可接受的水平内。可靠性通常包括安全性,但是软件的可靠性不能完全取代软件的安全性,安全性还涉及数据加密、保密、存取权限等多个方面。进行安全测试时,要设计一些测试用例,试图突破系统的安全保密措施,检验系统是否有安全保密漏洞,验证系统的保护机制是否能在实际中不受到非法的侵入。安性测试采用建立整休的威助模型,测试溢出漏洞、信息泄漏、错误处理、 sql注入,身份验证和授权错误、 xss攻击。在进行安全测武过程中,测试者扮演试图攻击系统的角色设计用例,例如,1尝试截取 破译 获取系统密码 2让系统失效 瘫痪 将系统制服,使他人无法访间,自己非法进人。
安全测试的软件工具有 NMAP 和 Acunetix。
4 数据库测试
数据库测试包括数据的一致性测试。例如,数据在数据库里的类型,长度,索引等是否设计合理。还包括数据库容量测试,即当处理大量数据时,测试是否达到了将使软件发生故障的极限,以及在给定时间内,持续处理的最大负载或工作量。
数据库测试的软件工具有 dbmonster。
5 负载测试
loading testing是通过测试系统在资源超负荷情況下的表现发现设计上的错误或验证系统的负载能力。在这种测试中,使测试对象承担不同的工作量,以评测和评估测测试对象不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目的是确定并确保系统在最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,如响应时间、事务处理速率和其他与时间相关的内容
负载测试是模拟实际软件系统所承受的负载系件的系统负荷,通过不断加载(如大量重复的行为、逐渐增加機拟用户的数量)或其他加载方式来观察不同负载下系统的响应时间和数据吞吐量,系统占用的资源(如 CPU、内存)等,以检验系统的行为和特性,发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试的加载方式通常有如下几种。1一次加载一次性加载某个数量的用户,在预定的时问段内持续运行。例如,早晨上班的时间,访问网站或登录网站的时间非常集中,,基本属于扁平负载模式。2.递增加有规律地逐渐增加用户,每几秒增加一些新用户,交错上升。借助这种负载方式的测试,容易发现性能的拐点,即性能瓶颈。
3.高低实变加载
某个时间用户数量很大,突然降到很低,过一段时间,又突然加到很高,反复几次。借
助这种负载方式的测试,容易发现资源释放、内存泄露等问题。
4. 随机加載方式
曲随机算法自动生成某个数量范围内变化的、动态的负载,这种方式可能是和实际情况最接近的
的一种负載方式。虽然不容易模拟系统运行出 现的瞬时高峰期,但可以模拟系
统长时间高位运行过程的状态。
6 压力测试
又称强度测试,是在异常数量、频率或资源的情况下重复执行测试,已检查程序对异常的抵抗能力,发现性能下降拐点,从而获得系统能提供的最大服务级别的测试
异常情况指峰值、极限值、大量数据的长时间处理等,包括:
(1)连接或模拟了最大(实际或实际允许)数量的客户机
(2)所有客户在长时间内执行相同的、性能可能最不稳定的重要业务功能
(3)已达到最大的数据库大小,而且同时执行多个查询或报表事务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构