1. 项目如何让自动化测试工具(AutoRunner)来做软件测试呢这个工具是怎么用的
AutoRunner 是自动化的功能测试工具。功能测试的目标是根据 GUI 的界面或者报表来检查软件的实际功能是否和需求定义的功能相一致。
autoRunner使用方法 :
1.新建项目
a) 在项目管理器空白区域,右键鼠标,选择新建项目。
b) 输入项目名后,点击[确定],在初次打开autoRunner时选择的用于存放测试文件的文件夹里会有一个以项目名称为名的文件夹,各种测试脚本,参数表都存放在这里。
2.新建脚本
a) 在项目名上右键鼠标,选择新建脚本 。
b) 输入脚本名(最好是英文和数字),点击[确定]后,在右边脚本编辑区域,会打开脚本页 。
3.录制脚本
a) 点击工具栏 ,或者点击菜单栏 。
b) 点击开始录制后, 会弹出对话框 。
根据自己需要,选择是否记录击键和记录时间间隔,选好后点击[确定]。
c) 点击[确定]后,开始录制测试过程,autoRunner会自动最小化,在屏幕右下打开录制过程记录窗口,此时,开始测试操作.
4.编辑测试脚本
a) 录制完成后,在脚本编辑区域会生成本次操作的脚本;
b) 如果需要在脚本中增加循环或者对当前步骤的某个对象的属性值进行验证,可以在脚本编辑区域,右键鼠标。
c) 增加验证 ,在脚本编辑区域空白处右键鼠标,选择注意光标位置,会在光标处插入代码。
5.查看对象库
1) 在工具栏点击 ,打开对象库。
2) 这里需要查看,脚本中用到的对象,在对象库中是否都有,如果缺少,运行脚本时会出错.对象不足时,可以点击对象库左下的[增加对象]按钮,会像录制时一样,此时选择需要的对象,录制好以后停止录制。
6.编辑参数
a) 在控制台标签页上点击[参数表],打开参数表 。
b) 对参数表进行设置。
7.执行脚本
a) 点击工具栏,或者点击 菜单栏,开始执行脚本。
b) 执行开始后,autoRunner会自动最小化,程序会完整重复录制的过程。
运行结束后,在autoRunner控制台会打印出本次脚本执行情况。
2. 软件测试方法的自动化
自动化测试,英文是Automated Testing。
使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试和功能测试中用得较多。通过录制测试脚本,然后执行这个测试脚本来实现测试过程的自动化。国内领先的自动化测试服务提供商是泽众软件。自动化测试工具有QTP、Testcomplete、AutoRunner和TAR等。 回归测试,英文是Regression testing。
回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。
根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。通常确定所需的再测试的范围时是比较困难的,特别当临近产品发布日期时。因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化测试。 验收测试,英文是Acceptance testing。
验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。
验收测试一般有三种策略:正式验收、非正式验收或Alpha 测试、Beta 测试。
3. 测试中如何使用自动化脚本
从毕业到现在,经历了软件开发,
软件测试,
1)QTP工具。QTP是一个快速测试专业工具。它的优点是可以快速建立企业自动化框架,但不是一个全能的工具,因为利用QTP并不能帮助用户找出更多的 BUG,只能提高执行测试用例的效率。 QTP的价格也较贵。 QTP主要应用于较稳定的测试项目的回归测试,UI的变化不明显,功能较稳定的项目。它可以节省回归测试的成本,但相对手工测试来说,QTP对测试人员的要求较高,比如要掌握VB脚本,掌握函数调用等技术;另外,建立QTP框架前期需要投入较大的人力写测试用例,加上调试的时间,是一笔不小的开销,所以企业在选用QTP测试工具时一定要三思而后行。
2)Loadrunner是一个企业级性能测试工具,应用十分广泛。对于WEB应用,Loadrunner的优势十分明显。但与QTP一样,lr的 License十分昂贵,所以很多企业都使用破解版。并且真正掌握LR精髓的人员并不多,很多人都会使用这个工具,但能用这个工具找出系统瓶颈的人并不多,所以,会使用Loadrunner和会性能测试是两码事。懂脚本语言的性能测试人员当然最好。
3)Python和Tcl/tk脚本语言。在我之前的经验中,我用到过PYTHON和TCL。他们都是脚本语言,不需要编译。两种语言的特点如下:Python开发JAVA方面的http接口比较方便;tcl/tk开发C++方面的接口更容易一些。PYTHON写的程序可读性强,TCL写的程序的可读性不好。
4)在需要产生一些大批量数据时,如一个表需要插入100万条数据,然后这100万条数据属于100个不同的类别,如果是手工输入的话,估计10个人一个月都输不完,但如果利用脚本,如PB,VB或者Tcl/tk,可以通过产生批量SQL脚本的方式,来产生SQL脚本,这样不到半小时就可以搞定全部的数据。看来脚本的威力不小!
5)另外,就是Linuxshell脚本了,我们通常说“事半功倍”,shell脚本的确可以帮助你实现这个目的。我们平时在LINUX部署一个应用会用到很多的命令如 Checkout,ps,vi,kill等等,如果能把这个操作流程写成一个SHELL脚本让机器自动执行,那该是省了多少事?另外,作为 UNIX/LINUX管理员,平时可以要监控较多的PC终端,他完全可以在UNIX/LINUX上定制各种任务(如备份,删除临时文件,检查磁盘空间等等),所以,掌握Shell脚本(如Sed,awk,grep等)对一个测试人员来讲是十分必要的!
6)另外一个就SQL脚本了,要能写存储过程(SP)和触发器(Trigger),还有游标(Cursor)的使用,掌握这些的话对于测试数据库方面的用例是相当有帮助的。SQL脚本对系统性能和功能都起着十分重要的作用。
作为一名有6年测试经验的工程师,我坚定地认为脚本测试技术是以后的发展方向,包括白盒测试,也是将来的一个发展方向,对于测试人员来讲,核心竞争力是能完整的测试开发人员的程序,尽可能找出更多的BUG。黑盒测试只能从系统的角度去完成功能测试,但作为软件本身,应该作更深层次的测试。
4. Python做软件自动化测试的入门提问
同在软件测试岗位。由于同样初学python,所以没有太多的实践经验。
使用python的单元测试框架,可以建立测试类,构造测试集。
测试类中包含了common的测试方法定义,包括测试开始前建立测试环境的setUp方法和测试完成后清理还原环境的tearDown方法,最好按照约定规则(以test开头)来命名所有的测试方法。
测试集允许你根据测试策略组合不同的测试用例并实施。
下面两篇文章推荐看看:
http://www.ibm.com/developerworks/cn/linux/l-pyunit/
http://www.cnblogs.com/coderzh/archive/2010/08/23/custom-python-unittestoutput-as-gtest.html
有一个问题我还没找到答案,就是如何让单元测试框架的log输出到文件(默认输出到控制台)。
5. 自动化测试是软件测试的重要手段,自动化测试有什么优势和手工测试有什么不同
自动化测试相对于手工测试优点如下:
1、可以模拟人工测试,减少重复机械的测试工作量,大量用于回归测试;
2、可以提高测试精度,例如进行大数据量的正确性校验;
3、进行人工难以执行的测试,例如单元测试、统计测试覆盖率等等;
4、用于模拟多线程的并发;
5、更好地利用资源。将繁琐的任务自动化。
6、测试具有一致性和可重复性。
7、测试的复用性。由于自动测试通常采用脚本技术,领测认为这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。
8、增加软件信任度。
6. 软件自动化测试是干嘛的
恩,现在很流行的,但是大部分都是跟风而已,工作中有迷茫是好事,说明你在思考,不妨就那么放着,做好眼前的事,随着工作的深入,会找到适合自己的结论。
首先,什么适合做自动化测试
重复性高的测试用例,比如版本更新很快,基本功能验证的用例,回归测试等
人力不可达或者极其费力的,比如10000次注册,点击,等
自动化测试的方法论
1.测试自动化类似于软件开发的过程
录制/回放脚本的开发方式是不可能应付所有自动化测试的需求的,因此,需要测试人员掌握必要的开发知识和编码知识。
2.测试自动化是一个长期的过程
首先,不能期望自动化测试在短期内找到很多Bug,自动化测试只有在长期的多次运行后磁能体现它的价值。其次,不要认为只要购买了工具,录制一些脚本,然后就可以安枕无忧的看着自动化测试实现想要的效果,需要考虑自动化测试脚本维护成本,随着被测试应用程序功能的增加和修改,测试脚本的维护工具量会急剧的增加。
3.确保测试自动化的资源,包括人员和技能
最好有专门的自动化测试工程师来保证测试自动化持续,顺利的进行下去,自动化测试工程师需要对项目测试自动化负责,设计测试框架和脚本结构,解决各种测试脚本的开发问题,确保自动化测试得以计划,设计和有序的开发,维护。
4.循序渐进的开展自动化测试
不要一开始就把自动化设想的很大,这往往是不可实现的,应该从小开始,先熟悉工具和自动化测试的基本技能,然后,整合资源开始实现一些基本的自动化测试用例,例如:冒烟测试类型的自动化测试脚本,先实现那些容易实现的,且相对稳定的功能模块的自动化测试,然后再考虑逐步扩展和补充其他相对难实现,或者是比较不稳定的功能模块。
5.确保测试过程的成熟度
如果软件企业的测试过程和项目管理过程的能力成熟度比较低,则实现自动化测试的成功率也比较低,在开展自动化测试之前,先考察一下软件企业各方面的管理能力,;例如:测试是否独立进行?有无配置管理?进度控制能力如何?如果各方面的能力成熟度都比较差的话,则不要盲目的引入测试自动化。
自动化的目标:
自动化测试应该是这样的:
自动化应该是一种Service(Automation As A Service),所有的测试人员和开发人员都应该可以自己很方便的去跑自动化
自动化测试的运行结果应该是可以自动分析的,占用很少的时间
自动化测试的成功率应该是要很高的(比如95%以上)
自动化应该是写一次,运行很多次