jack 写道
不是工具的问题,是测试粒度大小的问题,还有怎么测试。
model的函数,要测试吗,controller用到了这个model的这个函数,要测试吗,view中呢,都要一层一层测试吗。 测试那一层才是最有必要的?
结合自己的一些体会有感而发:
在freewheel的UI(UI指Web界面,不是单纯的指html、css)组工作1年多,一个较大的体会是流程化、自动化的控制做的比较好。我们有程序员level的单元测试,有ci服务器,有专门的QA team(QA team vs DEV team接近1 : 1的人数)
为什么我们这么重视测试?
因为商业软件特别是ASP product很注重SLA,一个在线商业服务软件,即使是一个月出现5分钟的down time(在maintenance window外)也是不可容忍的,因为带给客户的损失可能是非常巨大的。
测试的目的?
测试的目的就是为了保证软件服务质量,没有经过严谨的测试的软件谁敢用?没有经过24小时摇晃实验的机械手表你敢买?没有经过C-NCAP碰撞测试的汽车你敢开?
测试的种类?
测试有很多形成体系的分类,从程序员的角度来看最关注的就是单元测试。从QA的角度来看最关注的则是集成测试、验收测试、黑盒测试
为什么程序员要关注单元测试?
因为QA在集成测试时发现软件有bug,这时就会过来找程序员的麻烦。所以,为了减少一来一回的改bug和沟通的成本,程序员有必要站在开发人员的角度保证软件的基本单元的质量,即单元测试。好比汽车零件生产商要保证每个汽车零件的质量,电脑零件生产商要保证电脑零件的质量,这样组装起来的汽车、电脑的整体质量才能过关。
有哪些单元测试?
具体化到Web UI的开发结合流行的MVC框架来看,程序员最需要保证的就是业务逻辑的正确性,而业务逻辑都在Model层面,所以Model层是最重要的也是最需要测试的地方。在这里一个Model方法的测试就是一个单元测试。Controller层也需要隔离测试,因为Controller层是Web程序的Work Flow,Controller不测试的话怎能保证一个URL的访问能得到预期的结果?View层也是需要测试的,因为View层包含了一些动态网页的页面逻辑,如果不测试怎能保证页面渲染正确?
MVC三层的测试是最基本的单元测试需要覆盖的地方,一旦程序员保证了这三部分,则QA在做集成测试、验收测试时会大大减少出现bug的几率,从而也让程序员的生活更舒适。
为何需要自动化?
我们有自己的ci服务器做持续集成,每批次svn commit都会触发ci跑集成测试,自动化的目的就是及时发现bug的回归、减少手工跑测试浪费的时间、清楚的了解项目目前的质量水平。
ci可以设计的比较灵活,针对不同的层面来跑不同的测试,比如集成测试和单元测试可以分为两个项目来跑。ci上报错可以给开发人员发email通知来及时fix bug/test,以免bug扩散。
一句话,有了良好的测试才能保证软件质量,所以我们要认真对待测试,提高对测试的认识。
分享到:
相关推荐
【Airtest Web自动化测试】 Airtest是一个由网易测试团队开发并开源的自动化测试框架,它降低了自动化测试的门槛,尤其适合游戏、App、Web和Windows应用的测试。Airtest Project的图形化识别功能使得测试效率得到了...
页面自动化处理主要涉及Web自动化测试工具和框架,如Selenium、Puppeteer等,它们能够模拟用户与网页的交互,实现自动化点击、填写表单、执行JavaScript等操作。在快手小店的自动化处理中,这类工具可能被用来批量...
在本项目中,FlaUI被巧妙地应用于微信的自动化,实现了诸如定时任务、自动回复以及群聊机器人的功能。 1. **定时任务**:定时任务是微信自动化的核心功能之一。通过FlaUI,我们可以模拟用户的行为,例如定时向指定...
"串口助手带自动回复功能 .rar"这个压缩包文件,显然包含了一个具备自动回复功能的串口助手软件,这对于需要连续、自动化测试或监控串口通信的场景非常实用。 串口助手的主要功能包括但不限于以下几点: 1. 数据...
在实际使用SmartTCP时,用户需要按照提供的文档或指南配置规则,连接到目标TCP服务器,并测试自动回复功能是否正常工作。 总的来说,SmartTCP是一款高效且灵活的TCP自动回复工具,特别适合需要快速响应和处理大量...
6. **数据安全与备份**:了解如何保护电子文档的安全,设置密码保护,以及定期备份数据,是确保办公自动化流程顺畅的重要环节。 7. **协作与共享**:在现代办公环境中,团队协作和文件共享是常事。学生应熟悉Office...
参考文献可以帮助理解OA领域的最新研究和发展趋势,例如《办公自动化系统设计与实现》、《企业信息化战略》等。 六、OA系统的效益 1. **效率提升**:通过自动化处理,减少重复劳动,提高工作效率。 2. **决策支持**...
- 功能自动化测试人员根据功能测试用例准备自动化测试脚本。 - 根据版本不同更新脚本,用于后续的回归测试。 **3. 性能测试** - 性能测试负责人编写性能测试计划和方案。 - 性能测试执行人员编写测试用例并执行。 -...
本文集中讨论了机器人流程自动化(RPA)和人工智能(AI)的结合,以及这种结合如何为金融服务公司带来多重收益。 RPA技术早已在金融服务行业中占据一席之地,尤其在处理大量重复性、标准化的任务时显示出显著的效率...
标题 "Python-当朋友给你发iMessage时自动回复有意思的消息" 暗示我们要讨论的是一个使用Python编程语言实现的项目,它能够自动化地对iMessage收到的信息进行回应。这个项目可能结合了自然语言处理(NLP)和网络通信...
### 微信自动回复代码详解 #### 一、概述 本文将详细介绍一个基于Python的微信自动回复程序。此程序能够实现简单的消息交互功能,当接收到消息时,它会调用图灵...希望读者能够通过本文对微信自动化有更深入的理解。
本项目"SpringBoot实现自动回复机器人.zip"显然是利用Spring Boot来创建一个能够自动响应消息的系统,这在很多场景下都非常有用,比如在线客服、智能助手或者自动化信息处理等。 首先,我们要理解Spring Boot的核心...
网页自动回复消息客服源码是一个基于HTML技术实现的客户服务系统,它允许网站为访客提供自动化的消息回复功能。在当今互联网环境中,这样的系统对于提高客户满意度和减轻客服团队的工作负担至关重要。通过这个源码,...
QQ自动回复机器人是一种智能化的工具,...总之,QQ自动回复机器人是通过集成各种技术和策略,实现与用户的自动化、智能化交流。随着AI技术的进步,这类机器人的表现将越来越接近人类,为日常生活和工作带来极大的便利。
标题 "电子-自动回复短信.zip" 暗示了这个压缩包内容可能涉及电子工程领域的一个项目,具体是关于自动回复短信的系统。这个系统很可能使用了微控制器,特别是STM32系列,这是一种广泛应用于嵌入式系统的微处理器。...
- **具体应用案例**:自动化测试取代手动测试,显著减少所需测试工程师的数量。 5. **增强效率**: - **预测性维护**:AI算法能够基于历史数据预测设备故障可能性,提前安排维护,避免突发故障导致的服务中断。 ...
这样的功能在日常办公、客服系统或自动化测试中非常实用。 1. **自动回复消息**: 在VBS中,自动回复消息通常涉及到读取和处理输入,然后生成相应的输出。这可能包括监听特定事件(如接收到邮件或聊天消息)、解析...
在Android平台上,实现来电自动挂断并回复短信的功能涉及到多个技术层面,主要涵盖电话管理和短信管理API的使用,以及系统权限的申请。以下是对这些知识点的详细解释: 1. **电话反射机制**: Android系统为了安全...
QQ机器人是一种基于QQ平台开发的自动化聊天工具,它能够实现与用户进行互动,根据接收到的消息内容自动回复,提供各种功能服务。这类机器人通常利用自然语言处理(NLP)技术来理解和解析用户输入,然后通过预设的...
通过对上述不同类型的测试方法的理解和应用,我们可以更全面地评估应用的功能性、稳定性和兼容性,从而提升用户的整体体验。在实际测试过程中,还需要根据具体的应用特点和业务需求来定制相应的测试计划,以确保覆盖...