51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3492|回复: 9
打印 上一主题 下一主题

[原创] 测试集成与自动化

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-8 10:39:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(一)、自动化测试的好处
1、 对新版本执行回归测试--测试每个特征
对于产品型的软件,每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试, 从而可以让测试达到测试每个特征的目的。
2、 更多更频繁的测试--沉闷、耗时
我们的产品向市场的发布周期是3个月,也就是我们的开发周期只有短短的3个月,而在测试期间是每天/每2天都要发布一个版本供测试人员测试,一个系统的功能点有几千个上万个,人工测试是非常的耗时和繁琐,这样必然会使测试效率低下。
3、替代手工测试的困难--300个用户有些非功能性方面的测试:压力测试、并发测试、大数据量测试、崩溃性测试,用人来测试是不可能达到的。 在没有引入自动化测试工具之前,为了测试并发,研发中心的一、两百号人在研发经理的口令:1-、2-、3!, 大家同时按下同一个按钮。回想起这中情景也蛮有意思的。
4、具有一致性和可重复性
由于每次自动化测试运行的脚本是相同的, 所以每次执行的测试具有一致性, 人是很难做到的. 由于自动化测试的一致性,很容易发现被测软件的任何改变。
5、更好的利用资源--周未/晚上
理想的自动化测试能够按计划完全自动的运行, 在开发人员和测试人员不可能实行三班倒的情况下, 自动化测试可以胜任这个任务, 完全可以在周末和晚上执行测试. 这样充分的利用了公司的资源,也避免了开发和测试之间的等待.
6、解决测试与开发之间的矛盾
通常在开发的末期,进入集成测试阶段, 由于每发布一个版本的初期,测试系统的错误比较少,这时开发人员有等待测试人员测试出错误的时间. 事实上在叠代周期很短的开发模式中,存在更多的矛盾, 但自动化测试可以解决其中的主要矛盾。
7、增加软件信任度
总之,自动化测试的好处和收益是很明显的,但也只有顺利事实了自动化测试才能从中获得它的益处。
(二)、 自动化测试-- 误区、限制自动化化测试好处很多,但也有很多的局限,也正因为很多老板对自动化测试的期望太高,所以有很多执行自动化测试失败的例子。
1、 期望自动化测试能取代手工测试
不能期望自动化测试来取代手工测试, 测试主要还是要靠人工的。
2、期望自动测试发现大量新缺陷
同样不能期望自动化测试去发现更多新的缺陷, 事实证明新缺陷越多,自动化测试失败的几率就越大。发现更多的新缺陷应该是手工测试的主要目的。测试专家James Bach总结得 85%的缺陷靠手工发现,而自动化测试只能发现15%的缺陷。
其实我认为自动化测试能够很好的发现老缺陷。
3、工具本身不具有想象力
工具毕竟是工具,出现一些需要思考、体验、界面美观方面的测试,自动化测试工具无能为力。
4、技术问题、组织问题、脚本维护
自动化测试的推行,有很多阻力,比如组织是否重视, 是否成立这样的测试团队,是否有这样的技术水平,对于测试脚本的维护工作量也挺大的,是否值得维护等等问题都必须考虑。
(三)、 不适合自动化测试情况
自动化测试不是适合所有的公司、所有的项目。
1、定制型项目(一次性的)
为客户定制的项目,维护期由客户方承担的,甚至采用的开发语言、运行环境也是客户特别要求的,即公司在这方面的测试积累就少,这样的项目不适合作自动化化测试。
2、项目周期很短的项目
项目周期很短,测试周期很短,就不值得花精力去投资自动化测试,好不容易建立起的测试脚本,不能得到重复的利用是不现实的。
3、业务规则复杂的对象
业务规则复杂的对象,有很多的逻辑关系、运算关系,工具就很难测试。
4、美观、声音、易用性测试
人的感观方面的:界面的美观、声音的体验、易用性的测试,也只有人来测试
5、测试很少运行:一个月只运行一次
测试很少运行,对自动化测试就是一种浪费。自动化测试就是让它不厌其烦的、反反复复的运行才有效率。
6、软件不稳定
软件不稳定,则会由于这些不稳定因素导致自动化测试失败。只有当软件达到相对的稳定,没有界面性严重错误和中断错误才能开始自动化测试。
7、涉及物理交互
工具很难完成与物理设备的交互,比如刷卡的测试等。
(四)、什么样的情况适合自动化测试自动化测试之所以能在很多大公司实施起来,就是有它适合自动化测试的特点和高的投资回报率。
1、产品型项目
产品型的项目,每个项目只改进少量的功能,但每个项目必须反反复复的测试那些没有改动过的功能。这部分测试完全可以让自动化测试来承担, 同时可以把新加入的功能的测试也慢慢地加入到自动化测试当中。
2、增量式开发、持续集成项目
由于这种开发模式是频繁的发布新版本进行测试,也就需要自动化测试来频繁的测试,以便把人从中解脱出来测试新的功能。
3、能够自动编译、自动发布的系统
要能够完全实现自动化测试,必须能够具有自动化编译,自动化发布系统进行测试的功能。 当然,不能达到这个要求也可以在手工干预下进行自动化测试。
4、回归测试
回归测试试自动化测试的强项,它能够很好的确保你是否引入了新的缺陷,老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。
5、多次重复、机械性动作
自动化测试最喜欢测试:多次重复、机械性动作,这样的测试对它来说从不会失败。比如要向系统输入大量的相似数据来测试压力和报表。
6、需要频繁运行测试
在一个项目中需要频繁的运行测试,测试周期按天算,就能最大限度的利用测试脚本,提高工作效率。
7、将烦琐的任务转化为自动化测试
三、持续集成及其自动化编译
"持续集成(Continuous Integration)"的概念来自于XP(极限编程)的一个实践, 我们的开发模式是建立在CMM的基础之上,引入了某些XP的概念,所以我们的思想是取各方面的精华来适合自己。
持续集成是指能够自动的集成已经提交(Check-in)的代码,直至发布到测试服务器供测试的整个过程。
1、实现自动化日构建需要做以下几部分的工作:
2、将所有的源代码保存在单一的开发服务器,让所有人都能从这里获取最新的源代码(需要用配置管理工具存放源代码: 如VSS/CVS/ClearCase)。
3、使创建过程完全自动化,让任何人都可以只输入一条命令就完成系统的创建。
4、使测试完全自动化,让任何人都可以只输入一条命令就运行一套完整的系统测试。
5、确保所有人都可以得到最新、最好的可执行文件。
6、自动化编译: 为了能够提供自动化测试,所以所有的代码必须能够实现自动化编译。其实很多在做持续集成的公司都实现了改功能:如java程序可以采用在Ant + Junit 的基础之上添加自己的功能既可以实现持续集成―――我们把这个工具叫:日构建
但很多公司并没有实现对JSP的自动编译,对于采用jsp编写的web页面,它是编译执行语言,由于第一次执行要先编译,即第一次的速度稍慢,如果要采用自动化测试工具winrunner进行功能测试时,则会失败。因为自动化测试工具最基本的要求是:进入条件和出口条件必须在录制与回放时完全相同。 2、持续集成最的好处:
完全可以取代人工的发布, 在J2EE中有个角色叫deployer., 它的主要工作就是经常发布新的系统供开发、测试,一般每发布一次至少要一个小时,如遇到一些问题一个上午就耗费掉了, 但使用“日构建”后就可以完全实现自动化,时间几乎只等于编译时间。
它完全避免了开发者们的"除虫会议"--以前开发者们经常需要开这样的会,因为某个人在工作的时候踩进了别人的领域、影响了别人的代码,而被影响的人还不知道发生了什么,于是bug就出现了。
这样的bug绝大多数都可以在引入的同一天就被发现。由于一天之中发生变动的部分并不多,所以可以很快找到出错的位置。
持续集成可以把发现的错误根据源代码的作者,以邮件和日志的方式分发给作者,第二天一上班的第一件事就是先修改错误。
持续集成可以减少集成阶段"捉虫"消耗的时间、 频繁发布新版本的时间,从而最终提高生产力和软件质量。
3、理想的持续集成的实现方法:
A)、同一个软件产品要有集中的同一台开发服务器,即所有人的最新的、各自编译通过的源代码都在配置管理工具如VSS中。
B)、有一台运行主创建的机器,有计划的运行日构建, 日构建中有一个创建进程,该创建进程是在一个随时保持运行的Java类中进行的,如果没有创建任务,创建进程就一直循环等待。
C)、守护进程将全部代码(包括原程序和配置文件,数据库脚本等)提取到创建机器的一个目录中。提取完成之后,守护进程就会在这个目录里调用Ant脚本。
D)、Ant会接管整个创建过程,对所有源代码做一次完整的创建。Ant脚本会负责整个编译过程,并把得到的class文件放进六个jar包里,发布到EJB服务器上。
创建结束之后,创建守护进程会给所有向最新一次创建归还了代码的开发者发一个e-mail,汇报创建的情况。
E)、当Ant完成了编译和发布的工作之后,创建守护进程就会在EJB服务器上开始运行新的jar,同时开始运行BVT测试套件:即利用Junit进行单元测试。
单元测试完成后,日构建会把单元测试报告发给有错误的开发人员。
F)、为了利用自动化工具(WINRUNNER)进行功能测试,必须对JSP编译,利用jspc命令进行包装一层,就可以自动的对所有的jsp文件进行编译, 但由于编译jsp的时间非常长(越比编译java代码时间长),所以一般利用单独的编译服务器进行编译。 发布编译好的jsp文件进行自动化测试的成功率高(因为第一次运行jsp文件非常慢,而自动化测试最忌讳运行时和录制时等待得时间不一样)。 而功能性自动化测试也需要按计划有顺序的执行,这需要TestDirector测试管理系统来调度Winrunner进行测试。
让所有的重复的繁琐的事情都完全自动化,并且要经常进行集成,让重复的测试自动化。
四、测试套件实现测试流程.
当具备持续集成和测试自动化的能力后,需要一套测试体系来支持和维护您的测试流程,确保测试过程是符合流程、标准,而且是持续改进的。
(一)、为什么需要一个流程?很多公司投入了大量的测试经费,然而还是没有收到预期的收益。这可能是因为:缺乏足够的测试计划、缺乏测试的优先次序、工作的重复、没有利用工具来配合人工测试、没有利用测试自动化工具、测试自动化运用不够或者运用的不恰当等等。所以需要有测试套件的实施流程。
(二)、 为什么需要工具?
工具能够加快测试的进度,可以把控制和管理引入整个测试过程,比如MI公司的TestDirector就是一个很好使用的测试管理系统,而且是web版的。测试管理系统有很多的作用:
测试管理和报告:测试管理系统能够保证系统开发和测试流程你不的问题尽快得到解决。
审核跟踪的凭据:TestDirector存贮了所有的测试结果,全部修改被写进一个审核跟踪器里,如:时间、日期、修改人、错误授权,能够很清晰的看到把错误当皮球踢不负责人的整个过程。
提高测试覆盖率:通过自动化测试工具的数据驱动来测试功能,可以提高测试覆盖率。
(四)、测试套件--测试体系的主要目标(5W3H)
测试体系的建立是为了确保软件测试的全部活动按计划、按标准的进行,是测试人员的行动纲领和职责指导。也就是有这样的一个体系、流程来指导他们的工作,培养了他们的主人翁责任感。让测试工作开展得有条不紊。
主要的内容有:测试流程,测试方针、测试规程、文档模版、质量标准、测试工具、测试技术和方法等内容。
测试体系的主要目标(5W3H):目的是告诉与测试活动相关的人员在什么样的时间,什么样的地点,由谁来做,做什么样的事情,为什么做,如何做,怎么样才算完成,缺陷任何分析和预防等。可以简称:5W3H.
1、为什么要测试系统(Why) ?
测试新功能:每发布一个新的版本,首先要去测试它的新功能。创建回归测试的测试套件验证缺陷修改:在这个测试周期中要验证上个测试周期的缺陷修改情况。验证系统性能检测新硬件
2、如何测试系统(How)? 系统测试:检查系统总体功能
压力测试:在反复相同的操作下、或其他压力条件下,比如:低内存空间/低磁盘空间等,检测软件的反应。
安装测试:检验系统安装得是否正确,而且与已安装的软件不发生冲突。
安全测试:测试系统存取权限和授权的级别
边界测试:利用数据边界和系统边界检验程序
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-8-8 11:52:44 | 只看该作者
楼主的资料感觉不完整,能不能把完整的资料贴出来。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-8-9 19:08:30 | 只看该作者

???

???sdlkfj2
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-8-9 19:08:40 | 只看该作者

wait...

wait...
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-8-9 19:09:04 | 只看该作者

急!!!

sdlkfj9
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-9-3 18:44:33 | 只看该作者
请继续!!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-9-4 11:35:06 | 只看该作者
楼主继续阿
很好的文章怎么能不继续呢
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-9-12 12:21:48 | 只看该作者
我想一想
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-9-12 13:53:27 | 只看该作者
好难看啊,字体好小。不过说的很好哟
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-7-18 10:05:01 | 只看该作者
支持一下。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 18:26 , Processed in 0.072121 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表