`
sunway00
  • 浏览: 4401 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类

参加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是一种思想和方法论,在具体的开发实践中灵活掌握。
2
4
分享到:
评论
1 楼 fffy2366 2010-07-27  
沙发。。。

相关推荐

    Web接口开发与自动化测试-Python

    **Python在Web接口开发与自动化测试中的应用** Python是一种强大且灵活的编程语言,尤其在Web接口开发和自动化测试领域,它展现出了无与伦比的优势。本篇将深入探讨Python在这些领域的应用,以及如何利用Python进行...

    基于接口仿真的雷达软件测试自动化技术研究与应用.rar

    "基于接口仿真的雷达软件测试自动化技术研究与应用"这一主题深入探讨了如何利用接口仿真技术来提升雷达软件的测试效率和准确性。本文将从以下几个关键知识点展开讨论: 1. **接口仿真**:在雷达软件测试中,接口...

    web自动化测试

    在本讲座中,我们将深入探讨自动化测试的基础,特别是针对Web应用的自动化测试技术。 首先,自动化测试的核心在于编写测试脚本,这通常使用特定的测试框架如Selenium、Appium或Junit等完成。Selenium是最流行的Web...

    基于Selenium WebDriver的C#/.NET Web测试自动化全功能框架

    【标题】"基于Selenium WebDriver的C#/.NET Web测试自动化全功能框架"是指使用Selenium WebDriver库结合C#编程语言和.NET Framework或.NET Core构建的全面自动化测试解决方案。这样的框架旨在提高Web应用的测试效率...

    自动化平台测试开发-包含pdf文档.zip

    首先,自动化测试平台的选择至关重要,常见的有Selenium用于Web应用测试,Appium针对移动应用,JUnit和PyTest适用于单元测试,而Jenkins和GitLab CI/CD则在构建和部署自动化方面表现出色。选择合适的平台需要考虑...

    python自动化测试开发框架学习笔记

    自动化测试框架的选择通常取决于项目需求和团队技术栈,常见的有Selenium用于Web应用测试,unittest和pytest作为通用的单元测试框架,Robot Framework则是一个高级的通用测试框架。 在Python自动化测试中,unittest...

    单元测试与TDD实践

    单元测试与TDD实践 **一、单元测试之测试目的** 单元测试,作为软件开发过程中的重要环节,其核心目标在于确保代码的质量、可维护性和可扩展性。它通过独立测试软件中的最小可测试单元,如函数或方法,来验证其...

    EmbedC_TDD__1 Keil中搭建自动化单元测试框架Unity

    本主题将聚焦于如何在基于C语言的嵌入式环境,特别是在Keil IDE中,利用Unity这个轻量级的单元测试框架来搭建自动化测试流程。 Unity是一个专门为微控制器和嵌入式系统设计的开源单元测试框架。它的特点是小巧、...

    自动化软件测试书籍

    自动化系统测试通常使用工具如Selenium(Web应用测试)、Appium(移动应用测试)和JMeter(性能测试)等,它们可以模拟用户操作并验证系统行为。 4. 自动化测试框架:许多工具和框架支持自动化测试,如Python的...

    web接口自动化

    此外,为了提高测试效率,还需要了解测试框架的高级特性,如参数化测试(将不同输入数据应用于同一测试用例)、测试套件(组合多个测试用例)和测试驱动开发(TDD)。在实际项目中,还可能涉及持续集成工具,如...

    关于测试和TDD

    另一个标签“工具”则表明可能会讨论到各种用于测试的工具,如JUnit(Java语言的单元测试框架)、pytest(Python的测试框架)、Selenium(Web应用的自动化测试工具)等。这些工具能够帮助开发者编写、执行和管理测试...

    web 应用程序测试方法和测试技术详解.txt

    ### Web应用程序测试方法与技术详解 #### 一、Web应用程序测试的重要性 随着互联网技术的飞速发展,Web应用已经成为企业信息化的重要组成部分。由于其基于浏览器/服务器(B/S)模式的特点,Web应用在功能实现、...

    《.NET软件测试自动化之道》及配套源代码(自动化测试经典)

    书中可能讨论了如何配置自动化测试与CI/CD工具(如Jenkins、Azure DevOps或GitHub Actions)的集成,以确保每次代码提交时都能自动运行测试,并快速发现潜在的问题。 除此之外,书中可能还涵盖了测试的其他重要方面...

    企业级项目的Web自动化测试工程化实践.pdf

    Web 自动化测试是一种在无需人工干预的情况下执行预先定义的测试脚本,以验证Web应用程序的功能和行为的方法。它通过模拟用户操作来检查应用是否按照预期工作,旨在提高测试覆盖率,减少手动测试的工作量,以及确保...

    企业级项目的Web自动化测试工程化实践.zip

    在企业级Web应用开发中,手动测试往往耗时且易出错,而自动化测试则可以显著提高测试速度和准确性,尤其在进行回归测试时。此外,自动化测试还能确保在持续集成和持续部署(CI/CD)流程中快速发现并修复问题。 二、...

    软件测试资料--自动测试

    常见的自动化测试工具有Selenium用于Web应用测试,Appium用于移动应用测试,Junit和TestNG用于Java应用测试,Postman用于API测试,LoadRunner和JMeter用于性能测试等。 4. 自动化测试框架: 测试框架如JUnit、...

    测试驱动开发(TDD)入门讲解及代码实例

    虽然TDD光大于极限编程,但测试驱动开发完全可以单独应用。下面就从开发人员使用的角度进行介绍,使开发人员用最少的代价尽快理解、掌握、应用这种技术。下面分优势,原理,过程,原则,测试技术,Tips等方面进行...

    C简易自动化测试框架

    在IT行业中,自动化测试是软件开发过程中的重要环节,它能显著提高测试效率,减少人工错误,确保产品质量。本文将详细解析一个以C语言为基础的简易自动化测试框架,旨在帮助开发者理解和构建自己的测试解决方案。 ...

Global site tag (gtag.js) - Google Analytics