打破软件自动化测试的格局
自动化测试的误区
自动化测试仅仅被认为是替代人工,所以我们看到很多企业实施自动化测试仅仅是将现有的 Test Case 转换成自动化脚本。
这样做既没有提高测试整体水平,也没有改善测试结果。结果是通过手工能测试出来的问题自动化测试可以测试出来,手工测试不出来的问题自动化测试也没有测试出来。
因为测试的观念仍停留在已有 Test Case 阶段,而 Test Case 停留在业务流程测试的阶段。
最终自动化测试仅仅是按照测试用例走一边业务流程,完成业务流程的检验。
分层与部署带来的问题
随着技术发展,软件的多样性,测试已经不局限于基于CS结构的GUI测试, 基于BS浏览器WEB UI测试。例如目前的安卓系统,苹果IOS系统,微软的 Windows Mobile 系统等等也加入到自动化测试领域。
应用软件也越来越复杂,例如:
-
分层的变化:界面层,接口层,业务逻辑层,实体模型层
-
部署的变化:从单机运行到双机热备份再到负载均衡,最近进化到分布式系统。
-
存储的变化:关系型数据库,非关系型数据库,缓存数据库,搜索引擎数据库
从下面的金字塔架构可以看出软件展示给用户的只有UI界面层
/\
/ \
/ UI \
/------\
/ API \
/----------\
/ Service \
/--------------\
/ Component \
/------------------\
/ Database \
/______________________\
上面是软件的分层,一个软件经过部署后结构将会更复杂。
/\
/ \
/CDN \
/------\
/ WEB SER\
/----------\
/ APP Server \
/--------------\
/ Message Queue \
/------------------\
/ Cache|SearchEngine \
/ Database| NoSQL \
/________________________\
就WEB应用测试而言,涉及的内容就太广泛了,从浏览器->WEB服务器->APP服务器->缓存->数据库,中间会经过各种代理,负载均衡,分布式文件系统等等。
我们测试要涵盖:
-
CDN测试,域名解析测试,
-
WEB UI测试,包括HTML,Ajax
-
API 服务器测试,api 是非人机交互界面,它是通过特定协议与API服务器交互通信。
-
代码单元测试
-
配置测试,配置管理过程中配置变更后的测试,含系统与应用
-
安全测试,接口安全,认证,权限
-
注入测试,JS注入,SQL 注入,Shell 注入
-
缓存测试,命中率测试,包括CDN,WEB服务器,缓存服务器,搜索引擎
-
压力测试,健壮性测试
-
扩展性测试,水平扩展测试,垂直扩展测试
-
高可用测试,集群测试
压力测试存在的问题
请参考我的另一篇文章《压力测试中存在的问题》
这里我要再单独强调压力测试,很多人的测试方法是有问题的。
压力测试不是准备一台机器安装压力测试软件就可以开始测试的。 压力测试的环境非常重要,很多工作多年的测试人员都没有意识到这个问题。
压力测试有两个重点,一是压力测试环境的建设,二是压力测试顺序。
压力测试环境
压力测试无论是单机还是网络,都需要一个好的压力测试环境,例如网络好比高速公路,如果公路成为瓶颈,你能测试出准确的数据吗?
首先准备测试环境,如单机测试要考虑CPU速度,磁盘IO速度,RAID卡的速度,RAID卡缓存大小,内存速度,PCI—E总线速度,甚至会涉及多对称CPU相关配置,内存与CPU通道的问题......等等
如果是测试分布式系统,除了上述单节点的注意事项,还要考虑到路由器/防火墙的包转发与连接数限制,交换机的背板带宽以及吞吐能力,负载均衡器的转发能力。
测试顺序
压力测试顺序的切入点非常重要,测试顺序上多数人是从UI(人机界面)切入,即由UI驱动业务逻辑,这种测试顺序是错误的,例如用户->浏览器->WEB服务器->APP服务器->缓存->数据库等等,这就带来很多问题。
\------------------/
\ Web server /
\ App Server /
\ Cache / MQ /
\ Database /
\ Disk IO/
\ /
软件的性能瓶颈通常是沙漏型的,最大的瓶颈莫过于数据库,其他服务器的瓶颈我们都能从架构的角度去解决性能问题。
所有我们应该先从数据库测试,首先确认数据库的配置优化是否能达到我们预期值。然后是缓存,消息队列,搜索引擎等等.....
至此我们已经知道数据库,缓存,消息队列,搜索引擎不会成为我们压力测试中的瓶颈。接下就可以测试应用服务器和应用软件了。
如果你的测试格局能够放大一点要考虑的远不止上述那些。 你还需考虑硬件,网络,操作内核参数优化,TCP/IP栈优化,验证运维配置是否能满足我们需求等等.....。
瓶颈分析
我们需要有一套监控解决方案,能够监控到硬件的性能,软件的性能。
测试目的不是为了得出一个结果,告诉开发人员你的软件能支撑XXX并发,而是在我们测试中监控每项操作,计算出每个功能所用的时间,分析出性能的瓶颈,指导开发人员改进软件。
监控分为外部监控与内部监控。
外部监控是最容易实现的,有成熟的工具以及解决方案,CPU,内存,磁盘IO,网络流量等等。
内部监控是指软件运行加载到内存中之后的变化状态,例如内存地址,变量,函数调用,动态链接库载入,打开文件句柄,Socket地址和数据包等等。
指导开发
通过数据,图表,快速定位软件存在的问题点,指导开发完成软件的改进
持续集成形同虚设
持续集成,自动化构建几乎是个测试团队都会实施,但实际境况并不理想,仅仅停留在工具配置的阶段。几乎没有人在生产环境上使用自动化构建。
为什么持续集成无法应用到生产环境?
(待续,敬请关注作者微信公众号,现在已经是早上6点中了,要去睡觉了)
测试的终极目标
我认为测试不仅仅是完成按照测试用例完成软件验收,如果仅仅测试用户可见的UI(人机接口)是不能满足现代软件的测试需求的。
测试者应该站在更高的角度看问题,测试者是有能力指导开发人员,改善软件的性能,健壮性,安全性,以及影响软件架构的设计。 测试者需要有广泛的跨界知识支撑,要不断学习提高,打破现有格局。
2016-12-03 06:30 AM
相关推荐
总结来说,开放自动化之路与IEC 61499标准的结合,正在重塑工业自动化领域的格局。施耐德电气的EcoStruxure平台作为这一变革的引领者,不仅提供了更高效的设计工具,还通过标准化和可移植性打破了传统的自动化壁垒,...
统软件的开发与部署,可服务于基于MBSE的正向设计流程,实现自动化测试、半实物仿真、系统集成验证等功能。ETest系列产品作为凯云率先在行业内推出的国 产自主可控半实物仿真测试开发平台,有效打破了国内该领域长期...
总结来说,《工业软件之CAD行业报告:从海外工业软件巨头到中望软件》揭示了CAD行业的全球化竞争格局,以及中国企业在其中的崛起之路。面对未来,CAD软件将持续创新,推动制造业向更高层次发展,为全球范围内的设计...
LZPro的出现打破了传统PLC编程软件的格局,其自主开发的特性意味着它具有独特的设计理念和定制化能力。对于STC8G2K64S4这一高性能单片机,LZPro提供了直观且高效的编程环境,使得开发者可以像操作三菱PLC一样,运用...
统软件的开发与部署,可服务于基于MBSE的正向设计流程,实现自动化测试、半实物仿真、系统集成验证等功能。ETest系列产品作为凯云率先在行业内推出的国 产自主可控半实物仿真测试开发平台,有效打破了国内该领域长期...
统软件的开发与部署,可服务于基于MBSE的正向设计流程,实现自动化测试、半实物仿真、系统集成验证等功能。ETest系列产品作为凯云率先在行业内推出的国 产自主可控半实物仿真测试开发平台,有效打破了国内该领域长期...
统软件的开发与部署,可服务于基于MBSE的正向设计流程,实现自动化测试、半实物仿真、系统集成验证等功能。ETest系列产品作为凯云率先在行业内推出的国 产自主可控半实物仿真测试开发平台,有效打破了国内该领域长期...
持续集成/持续部署(CI/CD)流程是云原生中的关键实践,它强调代码的频繁集成和自动化部署,从而加速软件交付周期,减少错误,并确保软件质量。通过结合DevOps文化,开发者和运维人员能够更紧密地协作,实现快速迭代...
设备由料仓、搬盘、前后龙门、交换台、测试机架、外罩等8个部分组成,采用伺服电机+同步带、步进电机+同步带、步进电机+T型丝杠、气缸等多种机械结构,组成多达21个轴的精密系统,通过程序控制实现自动化测试和分选...
它包括自动化、信息技术、材料科学、系统工程等多个领域的集成,旨在打破传统制造业的局限,实现制造业的升级转型。 **二、先进制造技术的核心特征** 1. **自动化与智能化**:AMT强调机器与设备的自动化,通过集成...
总结来说,汽车芯片MCU是汽车电子化和智能化的核心部件,其设计和应用涉及到多方面的专业知识和技术挑战。从工作环境的严苛要求到性能的不断提升,再到全球产业的竞争格局和行业壁垒,每一个环节都体现了这一领域...
同时,自动化和智能化测试技术的发展也降低了人力成本。 三、企业市场突围战略 1. 战略突破理念:企业应积极拥抱变化,通过技术创新和商业模式创新,打破现有的市场格局,提升核心竞争力。 2. 市场定位:明确目标...
SaaS打破了传统软件市场的格局,鼓励创新和个性化服务,吸引了全球各地的软件开发者参与。 2. 云平台(Platform as a Service, PaaS):这一层为开发者提供了一个开发、测试和部署应用程序的平台,通常包括操作系统...
2. **自动化控制**:自动化控制能够精确计量和减少误差,增强了电气系统的控制精度,确保数据判断的可靠性,使系统运行更加安全。 3. **故障诊断与处理**:智能系统能快速分析并定位故障原因,及时处理问题,增强了...
中国风音乐推介网站的兴起打破了音乐界格局,也突破了原有分类唱法发展中的瓶颈,为声乐艺术的发展开辟了新篇章。这种新兴的演唱风格是声乐艺术家们对原有演唱方法的秉承及对独特的演唱风格不间断的追求和创新,满足...
PCB加工检测设备行业是电子制造领域中不可或缺的一部分,涉及多个子领域的分类,比如自动化检测设备、光学检测设备等。该行业为PCB精密加工生产过程提供了必需的检测手段,对于提升电路板的可靠性与质量起着至关重要...
- **自动化程度提升**:随着机器学习模型的不断进步,文本校对和编辑的自动化水平将持续提高,使得编辑人员可以将更多精力投入到更具创造性的任务中去。 2. **文本生成与增强**: - **内容丰富与无误**:机器学习...
新能源汽车行业的发展正呈现出智能化和自动化的趋势,其中悬挂系统的智能化技术是推动该行业进步的关键一环。报告《新能源汽车行业-寻找Alpha之前瞻研究系列(三):悬挂智能化趋势加速,龙头公司步入收获期》深入分析...
总的来说,这款基于AI平台的红外热成像夜视ADAS系统集成了先进的技术与专业的团队,不仅在技术指标上表现出色,而且在市场推广上具备有利条件,有望打破现有市场格局,推动热成像夜视技术在自动驾驶和车载安全领域的...
这款采集卡具备高性能、高性价比,并且在质量和功能上与国际大厂相媲美,为客户提供机器视觉自动化解决方案。 该图像采集卡基于PCI Express® x4接口,能够适应不同需求,支持Camera Link®规范中的三种配置架构:...