关闭

PHP覆盖率测试工具小结

发表于:2015-8-26 10:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Tim    来源:51Testing软件测试网采编

  JS是可能很现今世界上用的最多,同时也是最被误解编程语言了。虽然JS作为Web开发的工具已经存在了很久,许多开发者仍然不喜欢使用它,因为他们早就受够了浏览器兼容性问题,受够了用alert来作为调试工具。有一阵子,程序员们甚至退出了使用JS开发,而把这个难题丢给界面设计人员。直到有一天,Jesse James Garrett叫响了Ajax 这个词, 新一代的Web应用诞生了,程序员们对JS又重新燃起了热情。
  如果你最近刚刚回到JS开发领域的话,你可能会发现,JS开发工具的现状已经今非昔比了。JS开发再也不是只能用一个文本编辑的时代了。这边文章里,我们将会介绍现在流行的JS开发工具包,包括IDE,调试工具,编码和UI测试工具,以及其他有用的工具。
  IDE(集成开发环境)
  当我们还在用CRT显示器的时代(2000年前后),最简陋的文本编辑器就是我们开发JS脚本的IDE了。那时候程序员没有任何编辑工具能实现自动完成,代码重构这些工作,工作都要全部靠程序员手工完成。今天,情况已经大有改观了。有鉴于动态编程语言的在近些年的兴起,特别是Ajax得到广发运用,今天的IDE已经能够支持一些动态语言了。
  NetBeans , IntelliJ , 和 Eclipse 都已经支持JavaScript,而且不仅仅是支持语法高亮。而且还支持代码自动完成(如提示你一个类库中函数有那些参数),错误高亮,调试,有的甚至还包含了代码重构。
  图一 展示了NetBeans里的JS代码自动完成功能
  当然,由于JS语言的动态特性,在JS世界里今天IDE仍然无法做到像Java里那样完善的功能,不过我们也没必如此要苛求它们。
  Firebug
  Firebug 虽然只是一个工具,可它在JS世界里的影响力大到甚至有人用它的出现把Web开发的分为了BFB(Before FireBug出现之前的史前时代,那时候我们不得不无数次的使用alert来调试)和AFB (After FireBug)。 FireBug的出现使得Web开发效率得以大大提高。不使用FireBug来开发web应用就好像在VI里写java程序。不是不可能,只是太痛苦。
  Firebug 是一个免费开源的Firefox插件,包含了一系列非常好用的工具,例如DOM的浏览器,CSS编辑器,网络监控,还包括:
  一个互动JS命令行工具,你可以快速的尝试你的代码
  提供了记录日志和控制台
  具体的有用的错误信息(你再也不用为面对“Object not Found” 这样的毫无头绪的错误信息发愁了)
  完善的JS调试和调优工具
  图二,显示了Firebug的脚本页面
  有了Firebug,JS编程终于开始从痛苦变得有趣了。
  Firebug Lite
  Firebug虽好,可它终究是一个Firefox插件,它没法帮你解决其他浏览器里出现的问题。现在其他的浏览器里,还没有可以和Firebug媲美的工具。这时候你可以用Firebug Lite 来替代。它不仅提供了大多数的Firebug的日志功能,还提供了错误控制台(包含了JS命令行工具),HTML,CSS和DOM的查看器, 甚至还提供了一个很好用的XHR查看工具。
  虽然它不能完全达到和Firebug一模一样的功能,Firebug lite已经可以解决大多数问题了。你可以把它添加到任何你需要调试的网页上;它也可以作为一个书签被随时使用。
  YSlow
  你是不是常觉得自己开发的网页反应有点慢 ?YSlow 可以帮你解决这个问题。YSlow可以给你的页面打个分,根据是一系列Yahoo的性能团队制定的常见性能标准。它的性能报告还可以提供打印版(你可以拿去跟人家炫耀你写的页面在YSlow中得的A)
  图三显示了YSlow的示例页面性能测试报告
  除了可以图形化的展示你的页面性能指标,YSlow列出了页面上所有组件的“失效时间,大小,响应时间,是否被压缩(gzipped)。它还可以帮你更容易的使用JSLint(后面会提到),帮你的JS和CSS做一次精简和”美容”
  Hammerhead
  Ajax时代,随着页面当中JS代码的增加,性能问题就变得越来越重要。尽管浏览器都不断的刷新着他们的JS性能评分,你还是需要一个工具来告诉你你的页面的性能数据究竟是多少。Hammerhead 可以帮你反复的装入一个页面,并给你一个装载时间的读数,这个读数可以是基于有缓存或没有缓存的情形。你可以导出这些数据,作为不断改进页面性能的基准。在开发过程中就应该关注性能问题,否则等到产品最后发布前再去解决,性能问题就会编程一个大麻烦。
  测试你的JS代码
  可能有很多人还不相信,JS代码也是可以测试(单元测试)的。实际上,现在你有许多可以选用的工具来测试你的JS代码,不管你是想用测试驱动的开发模型,还是行为驱动的开发模型BDD. 我们先看一些常见的JS单元测试,然后再看UI测试怎么做。
  JsUnit
  代码测试已经变成了编程的一项基本专业素养。今天的程序员早就熟练掌握了各种编程语言中的xUnit框架。JsUnit 就是JS语言中的JUnit,允许你在浏览器里测试你的JS代码。类似在JUnit中创建一个TestClass,你需要创建一个Test HTML页面,并在其中引入JsUnit的核心库。
  接下来你就写一系列的测试方法:使用JsUnit的断言,true,false,null,equals 等等。类似的,JsUnit也提供了测试前的准备setup和结束后的清理(tear-down)等概念,特别的它还有页面级的setup。它也允许你把一组相关的测试页面一起执行,作为一组测试套件(test suite)
  JsUnit提供了一个有界面的测试执行引擎,用传统的绿色和红色的横条来展现测试结果。 如下图所示
  图4 JSUnit的测试执行界面
  有了界面的测试执行引擎,那如何对JsUnit的单元测试做持续集成呢(CI)?你需要使用JsUnit服务器端,它有三个功能:
  1. 运行结果的记录
  2. 从ant或Junit来执行JsUnit测试
  3. 在多台机器上执行JsUnit(可以是不同的操作系统和浏览器)
  JsUnit的服务器端使用一个标准的ant build文件来进行配置,你可以设定需要使用的浏览器,指向你的测试套件的URL,以及那些需要运行测试的远程机器。配置好后,执行这些测试就只需要直接调用这个Ant任务就可以了。
  JSSpec
  JSSpec 把行为驱动的开发模式引入了JS编程。跟使用传统的断言进行测试不同,在BDD中你需要先创建一些“行为说明”,使用“应该”这样的词来描述代码的行为。例如,以前你需要使用assertEquals地方,你就需要写“应该是” JSSpec使用了诸如before_each 和 an after_each的段落来存放一些常用的代码段,它也有一次性的测试环境setup和销毁teardown的概念。如果你的代码针对不同浏览器设计了分支,你的测试也可以根据不同的执行引擎来进行条件执行。
  图5 显示JSSpec的执行界面
  
  JSSpec不仅可以在浏览器中运行,它也可以命令行(无界面)的执行。这要归功于John Resig的和Relevance公司的一些开发者的工作。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号