参加Web测试自动化与TDD应用的沙龙心得笔记

7月24日参加了百度和InfoQ 组织的沙龙。(PS:我跟这两家没关系,毕竟觉得学到点东西就把他们名字写出来表示感谢,绝非广告或软文。)因为当时没带笔和纸,只凭记忆和一些资料写的。详细内容请去网站看,当然目前(7月27日,网站还没更新这部分内容)

沙龙分三部分,一是百度的测试经理讲Web测试自动化的经验和操作。二是ThoughtWorks的一位程序员通过代码演示如何进行TDD开发的,三是分组自由讨论。

一:Web测试自动化
Web测试自动化:通过Selenium (ThoughtWorks开发的)/WatiJ + JUnit/TestN 进行测试。
代码示例:
public void test1() {
//打开网站
selenium.open("http://xxx.xxx.xxx/yyy");
//通过Xpath 找到页面中的某个DOM对象
selenium.select("xpath=//SELECT[@name='SBBUSYO']", "index=1");
//模拟点击、输入等页面动作
selenium.click("xpath=//input[@type='button']");
//等待页面加载
selenium.waitForPageToLoad("2000");
//断言验证是否正确转向标题为“welcome”的页面
assertEquals(selenium.getTitle(), "Welcome");
}

代码会启动IE或者firefox执行,这样就将单元测试可以覆盖到了开发的全部环节。我们公司现在使用的LoadRunner是协议级的测试,通过对get\post协议的分析进行测试,
Selenium 是DOM级的测试,通过Xpath 寻找页面标签,验证是否实现了希望的功能。Selenium支持js,和多浏览器,所以还可以用于测试浏览器兼容性。
百度进行web自动化测试的一些相关经验:

1. 通过一些自己写好的框架,加载.xls 文件数据导入测试用例的数据。对于一些需要反复回归测试的测试用例,测试人员只需要用Excel填写测试数据就可以。
2. 测试人员更专注于业务、流程比较复杂的用例,简单的业务可以自动化测试。
3. Web自动化测试并不是为了找到bug,而是作为系统的一个安全网和防护栏,保证代码的变动不会造成基础和核心模块出现问题。
4. Web自动化测试只能应用适合的场景,很多页面还是需要人工测试。以百度目前的经验,大概也只有20-30%的web可以进行自动化测试。所以需要精心挑选和设计测试用例。
5. 测试人员最好也拥有编写代码的能力。

二:TDD 测试驱动开发

1. 测试驱动开发:写代码前先写测试。
2. 如何切入TDD?:从上到下写代码。即写Web测试(见上文)-》Jsp页面-》Action测试-》Action实现-》service测试-》service实现……
3. 通过测试和上层方法进行驱动开发。比如你写Action测试时发现需要跳转首页的方法,就驱动在Action建立toIndex()方法。在Action发现你需要Service ,就建立Service对象,利用IDE的辅助提示功能,快速的进行驱动开发。
4. 随时重构,包括Test的代码。如果感觉代码有bed smell就马上重构。
5. 对于暂时没有实现的或者无法实现的,通过Mock的方式实现。
6. Web测试可以先写空业务场景,暂不实现,因为Web测试需要完整功能开发完毕并进行部署和服务启动,并且耗时也比较长。
7. 测试用例是一种文档,测试方法名称以表达测试目的为第一目标。演示的时候讲师经常起了这样的方法名:
Public void testShowMoreDetailWhenFrendListOver5(){} //当好友列表大于5个时显示"show more"
8. TDD是一种思想和方法论,在具体的开发实践中灵活掌握。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值