﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-paulwong-随笔分类-TESTIGN</title><link>http://www.blogjava.net/paulwong/category/50525.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 16 Jan 2022 12:01:39 GMT</lastBuildDate><pubDate>Sun, 16 Jan 2022 12:01:39 GMT</pubDate><ttl>60</ttl><item><title>我眼中的开发和测试</title><link>http://www.blogjava.net/paulwong/archive/2014/12/01/420891.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 01 Dec 2014 12:55:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2014/12/01/420891.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/420891.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2014/12/01/420891.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/420891.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/420891.html</trackback:ping><description><![CDATA[<div id="article_contents_inner_3721705710" dir="ltr" style="font-family: Arial, Helvetica, sans-serif; line-height: 1.5; max-width: 650px; padding-top: 10px; padding-bottom: 10px; padding-left: 12px; color: #2e415c;">摘要：在IT行业，开发和测试之间的关系一直是一个大家津津乐道的话题。那在周兆熊眼中，开发和测试是什么样的？他进行了细致的说明，并就两者的关系给出了一些建议。&nbsp;<br />在IT行业，开发和测试之间的关系一直是一个大家津津乐道的话题。在整个软件产品的生命周期中，开发和测试人员所做的工作分别对应不同的阶段，如图1所示。&nbsp;<br /><div><br /><div style="position: relative; display: inline-block; z-index: 21;"><div id="pc_56876"  pc_first"="" title="Pin this image to Pinterest. Right-click to turn-off this feature." style="position: absolute; top: 10px; left: 10px; padding-top: 5px; padding-right: 5px; padding-left: 5px; opacity: 0; border-radius: 25px; cursor: pointer; z-index: 22; -webkit-transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; background-color: #222222;"></div><img src="http://dl2.iteye.com/upload/attachment/0103/8196/af4cd819-e914-3df1-a17f-5d4d458c2d95.jpg" style="border: 0px none; outline: none; max-width: 850px; height: auto;"  alt="" /></div></div><br /><div>图1 开发和测试人员的分工</div><br /><span style="font-size: medium;"><strong>工作内容</strong></span>&nbsp;<br /><br />从图1可以看出，开发和测试是一个上下游的关系。&nbsp;<br /><br />具体而言，开发人员主要做这几件事情：&nbsp;<br /><br />第一，对软件需求说明书进行详细评审，弄清楚要开发一个什么样的软件。&nbsp;<br /><br />第二，编写软件详细设计、单元测试和集成测试规程文档。软件详细设计文档是最重要的文档，在里面，要写清楚自己程序的流程、函数设计、异常保护考虑等。在动手写程序之前，一定要将软件详细设计文档写好，等评审通过了再写代码。&nbsp;<br /><br />第三，编写代码，用程序实现软件的功能。很多人认为的软件开发就是写代码，其实这是一种很狭隘的理解，写代码在整个开发流程中，只占了很小的部分。&nbsp;<br /><br />第四，程序写好之后，开发人员要对它进行单元测试和集成测试也叫（自测），确保程序的正确性。这里就出现了&#8220;测试&#8221;二字，但与软件测试所做的&#8220;测试&#8221;是不同的，他们做的是&#8220;系统测试&#8221;。等自测通过之后，并且相关文档也写好之后，就可以提交程序版本，供测试人员进行测试了。&nbsp;<br /><br />相对开发，测试人员主要做这几件事情：&nbsp;<br /><br />第一，参与软件需求说明书的评审，对软件要实现的功能有一个大致的了解。&nbsp;<br /><br />第二，搭建测试环境。这个是很重要的，也是比较难的事情。什么是&#8220;测试环境&#8221;呢？就是说，不管什么软件，都有个运行的条件，如操作系统类型、参数设置及配套软硬件设施等，这些统称为&#8220;环境&#8221;。为了保证程序功能的正确性，要在软件发布之前，尽量模拟软件实际的运行环境，这就是搭建测试环境时要做的事情。很多软件在正式商用之后出问题，就是测试的时候没有还原现场环境所致。&nbsp;<br /><br />第三，对软件进行系统测试并输出测试报告。所谓系统测试，就是指将配套的所有软件都运行起来，看一下所有的功能是否正常。当出现问题的时候，要及时和开发人员联系，以修正软件缺陷。&nbsp;<br /><br />第四，指导现场人员安装软件程序，并在必要的时候亲自出差到现场去安装软件。因此，测试人员也可能会经常出差的。&nbsp;<br /><br /><span style="font-size: medium;"><strong>&#8220;三足鼎立&#8221;</strong></span>&nbsp;<br /><br />开发人员的主要任务是用程序完成软件需求，而测试人员的主要任务则是保证程序功能的正确性，他们做事的依据都是需求开发工程师编写的需求说明书。&nbsp;<br /><br />在实际的软件开发项目中，需求开发工程师、软件开发工程师和软件测试工程师之间的交流是很频繁的，如图2所示。&nbsp;<br /><div><br /><div style="position: relative; display: inline-block; z-index: 21;"><div id="pc_282375"  pc_first"="" title="Pin this image to Pinterest. Right-click to turn-off this feature." style="position: absolute; top: 10px; left: 10px; padding-top: 5px; padding-right: 5px; padding-left: 5px; opacity: 0; border-radius: 25px; cursor: pointer; z-index: 22; -webkit-transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; background-color: #222222;"></div><img src="http://dl2.iteye.com/upload/attachment/0103/8216/25615da5-1915-3ebe-8036-65bfde3226b7.jpg" style="border: 0px none; outline: none; max-width: 850px; height: auto;"  alt="" /></div></div><br /><div>图2 三类角色的&#8220;三足鼎立&#8221;</div><br />就像&#8220;三国时期&#8221;的魏蜀吴&#8220;三足鼎立&#8221;一样，需求开发工程师、软件开发工程师和软件测试工程师所站的立场不同，对软件的认识也不同。大家需要相互讨论、协商，挑选出一套最佳的软件实现方案。&nbsp;<br /><br /><span style="font-size: medium;"><strong>一些建议</strong></span>&nbsp;<br /><br />在完成软件研发的过程中，开发和测试之间的关系非常的&#8220;微妙&#8221;，时而合作如亲人，时而争论如敌人。我认为，为了做出高质量的软件产品来，开发和测试需要做到：&nbsp;<br /><br />第一，共同参与软件需求文档的评审，对程序要实现的功能有一个清晰的认识。如果对需求有疑问，一定要当面提出来。&nbsp;<br /><br />第二，在对需求达成共识之后，软件开发人员严格按照软件需求文档上的描述来编写程序，如果在程序实现上有困难，要提出来和大家讨论。软件测试人员严格按照需求的描述来验证程序的功能，如果发现程序实现与需求不符，要及时与软件开发人员联系，大家共同将程序问题解决掉。&nbsp;<br /><br />第三，如果开发时间紧张、人手不足，那么在开发人员编写程序的时候，测试人员可以帮忙把测试环境搭建好。等程序编写好之后，开发人员便可以立即进行单元测试和集成测试。&nbsp;<br /><br />第四，不管是需求有问题，还是程序有缺陷，大家都可以指出来。但注意要就事论事，不可将软件问题上升为对特定个人的人身攻击。&nbsp;<br /><br />第五，虽然是各司其职，也许还身处不同的部门，但大家的共同目标是一致的：做出让客户满意的、高质量的软件产品。开发和测试人员要为了这个目标，一起努力。&nbsp;<br /><br /><span style="font-size: medium;"><strong>结束语</strong></span>&nbsp;<br /><br />一个软件产品的成功需要从各个环节上去把握，因此用人的左手和右手的关系来比喻开发和测试之间的关系更为恰当。好的软件产品需要开发和测两手抓，两手都要硬。&nbsp;</div><img src ="http://www.blogjava.net/paulwong/aggbug/420891.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2014-12-01 20:55 <a href="http://www.blogjava.net/paulwong/archive/2014/12/01/420891.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单元测试、集成测试和系统测试的不同之处[转]</title><link>http://www.blogjava.net/paulwong/archive/2014/11/21/420382.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 21 Nov 2014 01:09:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2014/11/21/420382.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/420382.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2014/11/21/420382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/420382.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/420382.html</trackback:ping><description><![CDATA[<br /><br />首先，他们的测试方法不同：<br /><br />单元测试属于白盒测试；<br /><br />集成测试属于灰盒测试的范畴；<br /><br /><br />系统测试属于黑盒测试。<br /><br /><br /> <br /><br /><br />其次，他们的考察范围不同，也就是他们测试的重点不同：<br /><br />单元测试主要测试单元内部的数据结构、逻辑控制、异常处理等等；<br /><br />集成测试主要测试模块之间的接口和接口数据传递的关系，以及模块组合后的整体功能；<br /><br />系统测试主要测试整个系统相对于需求的符合度。 <br /><br /> <br /><br /><br />再次，他们的基准不同：<br /><br />单元测试评估的主要是逻辑覆盖率；<br /><br />集成测试评估的主要是接口覆盖率；<br /><br />系统测试评估的是测试用例对需求规格的覆盖率。<img src ="http://www.blogjava.net/paulwong/aggbug/420382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2014-11-21 09:09 <a href="http://www.blogjava.net/paulwong/archive/2014/11/21/420382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个使用MOCK的测试REST的基于SPRING的单元测试</title><link>http://www.blogjava.net/paulwong/archive/2014/10/25/419025.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 25 Oct 2014 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2014/10/25/419025.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/419025.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2014/10/25/419025.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/419025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/419025.html</trackback:ping><description><![CDATA[<a href="https://github.com/spring-projects/spring-sync-samples/tree/master/spring-rest-todos" target="_blank">https://github.com/spring-projects/spring-sync-samples/tree/master/spring-rest-todos<br /></a><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;todos;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;org.hamcrest.Matchers.*;<br /><span style="color: #0000FF; ">import</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;org.mockito.Mockito.*;<br /><span style="color: #0000FF; ">import</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;<br /><span style="color: #0000FF; ">import</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;java.util.Arrays;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;org.junit.Before;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.junit.Ignore;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.junit.Test;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.junit.runner.RunWith;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.mockito.InjectMocks;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.mockito.Mock;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.mockito.Mockito;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.mockito.MockitoAnnotations;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.beans.factory.annotation.Autowired;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.http.MediaType;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.test.context.ContextConfiguration;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.test.context.web.WebAppConfiguration;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.test.web.servlet.MockMvc;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.test.web.servlet.setup.MockMvcBuilders;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.context.WebApplicationContext;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;com.fasterxml.jackson.databind.ObjectMapper;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;</span><span style="color: #808080; ">@author</span><span style="color: #008000; ">&nbsp;Roy&nbsp;Clarkson<br />&nbsp;</span><span style="color: #008000; ">*/</span><br />@RunWith(SpringJUnit4ClassRunner.<span style="color: #0000FF; ">class</span>)<br />@WebAppConfiguration<br />@ContextConfiguration(classes&nbsp;=&nbsp;Application.<span style="color: #0000FF; ">class</span>)<br />@Ignore<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;MainControllerTest&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Autowired<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;WebApplicationContext&nbsp;context;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Mock<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;TodoRepository&nbsp;repository;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@InjectMocks<br />&nbsp;&nbsp;&nbsp;&nbsp;TodoController&nbsp;mainController;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;MockMvc&nbsp;mvc;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Before<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setUp()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MockitoAnnotations.initMocks(<span style="color: #0000FF; ">this</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mvc&nbsp;=&nbsp;MockMvcBuilders.standaloneSetup(mainController).build();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Test<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;testList()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Todo&nbsp;a&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Todo(1L,&nbsp;"a",&nbsp;<span style="color: #0000FF; ">false</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Todo&nbsp;b&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Todo(2L,&nbsp;"b",&nbsp;<span style="color: #0000FF; ">false</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Todo&nbsp;c&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Todo(3L,&nbsp;"c",&nbsp;<span style="color: #0000FF; ">false</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when(repository.findAll()).thenReturn(Arrays.asList(a,&nbsp;b,&nbsp;c));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mvc.perform(get("/todos")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.accept(MediaType.APPLICATION_JSON))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(status().isOk())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$",&nbsp;hasSize(3)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[0].id",&nbsp;is(1)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[0].description",&nbsp;is("a")))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[0].complete",&nbsp;is(<span style="color: #0000FF; ">false</span>)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[1].id",&nbsp;is(2)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[1].description",&nbsp;is("b")))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[1].complete",&nbsp;is(<span style="color: #0000FF; ">false</span>)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[2].id",&nbsp;is(3)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[2].description",&nbsp;is("c")))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$[2].complete",&nbsp;is(<span style="color: #0000FF; ">false</span>)));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verify(repository,&nbsp;times(1)).findAll();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verifyNoMoreInteractions(repository);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Ignore<br />&nbsp;&nbsp;&nbsp;&nbsp;@Test<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;testPatch()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Test<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;testCreate()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Todo&nbsp;todo&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Todo(1L,&nbsp;"a",&nbsp;<span style="color: #0000FF; ">false</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectMapper&nbsp;objectMapper&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;ObjectMapper();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;<span style="color: #0000FF; ">byte</span>[]&nbsp;bytes&nbsp;=&nbsp;objectMapper.writeValueAsBytes(todo);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when(repository.save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>))).thenReturn(todo);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mvc.perform(post("/todos")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.accept(MediaType.APPLICATION_JSON)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.contentType(MediaType.APPLICATION_JSON)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.content(bytes))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(status().isOk())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$.id",&nbsp;is(1)))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$.description",&nbsp;is("a")))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(jsonPath("$.complete",&nbsp;is(<span style="color: #0000FF; ">false</span>)));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verify(repository,&nbsp;times(1)).save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verifyNoMoreInteractions(repository);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Test<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;testUpdateSameIds()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Todo&nbsp;updatedTodo&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Todo(1L,&nbsp;"z",&nbsp;<span style="color: #0000FF; ">true</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectMapper&nbsp;objectMapper&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;ObjectMapper();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">byte</span>[]&nbsp;bytes&nbsp;=&nbsp;objectMapper.writeValueAsBytes(updatedTodo);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when(repository.save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>))).thenReturn(updatedTodo);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mvc.perform(put("/todos/{id}",&nbsp;1L)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.contentType(MediaType.APPLICATION_JSON)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.content(bytes))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(status().isNoContent());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verify(repository,&nbsp;times(0)).delete(1L);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verify(repository,&nbsp;times(1)).save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verifyNoMoreInteractions(repository);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Test<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;testUpdateDifferentIds()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Todo&nbsp;updatedTodo&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Todo(99L,&nbsp;"z",&nbsp;<span style="color: #0000FF; ">true</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectMapper&nbsp;objectMapper&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;ObjectMapper();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">byte</span>[]&nbsp;bytes&nbsp;=&nbsp;objectMapper.writeValueAsBytes(updatedTodo);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when(repository.save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>))).thenReturn(updatedTodo);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mvc.perform(put("/todos/{id}",&nbsp;1L)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.contentType(MediaType.APPLICATION_JSON)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.content(bytes))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(status().isNoContent());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verify(repository,&nbsp;times(1)).delete(1L);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verify(repository,&nbsp;times(1)).save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verifyNoMoreInteractions(repository);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Test<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;testDelete()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception&nbsp;{<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;is&nbsp;how&nbsp;to&nbsp;test&nbsp;a&nbsp;void&nbsp;method&nbsp;with&nbsp;Mockito<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doThrow(new&nbsp;IllegalArgumentException()).when(repository).delete(null);</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mvc.perform(delete("/todos/{id}",&nbsp;1L))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.andExpect(status().isNoContent());<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><img src ="http://www.blogjava.net/paulwong/aggbug/419025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2014-10-25 09:42 <a href="http://www.blogjava.net/paulwong/archive/2014/10/25/419025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>50道外企软件测试面试题</title><link>http://www.blogjava.net/paulwong/archive/2014/09/23/418182.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Tue, 23 Sep 2014 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2014/09/23/418182.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/418182.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2014/09/23/418182.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/418182.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/418182.html</trackback:ping><description><![CDATA[<ol><li>What types of documents would you need for QA， QC， and Testing?<br /></li><li>What did you include in a test plan?</li><li>Describe any bug you remember.</li><li>What is the purpose of the testing?</li><li>What do you like (not like) in this job?</li><li>What is quality assurance?</li><li>What is the difference between QA and testing?</li><li>How do you scope， organize， and execute a test project?</li><li>What is the role of QA in a development project?</li><li>What is the role of QA in a company that produces software?</li><li>Define quality for me as you understand it</li><li>Describe to me the difference between validation and verification.</li><li>Describe to me what you see as a process. Not a particular process， just the basics of having a process.</li><li>Describe to me when you would consider employing a failure mode and effect analysis.</li><li>Describe to me the Software Development Life Cycle as you would define it.</li><li>What are the properties of a good requirement?</li><li>How do you differentiate the roles of Quality Assurance Manager and Project Manager?</li><li>Tell me about any quality efforts you have overseen or implemented. Describe some of the challenges you faced and how you overcame them.</li><li>How do you deal with environments that are hostile to quality change efforts?</li><li>In general， how do you see automation fitting into the overall process of testing?<br />How do you promote the concept of phase containment and defect prevention?<br /></li><li>If you come onboard， give me a general idea of what your first overall tasks will be as far as starting a quality effort.</li><li>What kinds of testing have you done?</li><li>Have you ever created a test plan?</li><li>Have you ever written test cases or did you just execute those written by others?</li><li>What did your base your test cases?</li><li>How do you determine what to test?</li><li>How do you decide when you have &#8216;tested enough?&#8217;</li><li>How do you test if you have minimal or no documentation about the product?</li><li>Describe me to the basic elements you put in a defect report?</li><li>How do you perform regression testing?</li><li>At what stage of the life cycle does testing begin in your opinion?</li><li>How do you analyze your test results? What metrics do you try to provide?</li><li>Realising you won&#8217;t be able to test everything &#8211; how do you decide what to test first?</li><li>Where do you get your expected results?</li><li>If automating &#8211; what is your process for determining what to automate and in what order?</li><li>In the past， I have been asked to verbally start mapping out a test plan for a common situation， such as an ATM. The 36 interviewer might say， &#8220;Just thinking out loud， if you were tasked to test an ATM， what items might you test plan 37 include?&#8221; These type questions are not meant to be answered conclusively， but it is a good way for the interviewer to see 38 how you approach the task.</li><li>If you&#8217;re given a program that will average student grades， what kinds of inputs would you use?</li><li>Tell me about the best bug you ever found.</li><li>What made you pick testing over another career?</li><li>What is the exact difference between Integration &amp; System testing， give me examples with your project.</li><li>How did you go about testing a project?</li><li>When should testing start in a project? Why?</li><li>How do you go about testing a web application?</li><li>Difference between Black &amp; White box testing</li><li>What is Configuration management? Tools used?</li><li>What do you plan to become after say 2-5yrs (Ex: QA Manager， Why?)</li><li>Would you like to work in a team or alone， why?</li><li>Give me 5 strong &amp; weak points of yours.</li></ol><img src ="http://www.blogjava.net/paulwong/aggbug/418182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2014-09-23 10:37 <a href="http://www.blogjava.net/paulwong/archive/2014/09/23/418182.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>整合测试</title><link>http://www.blogjava.net/paulwong/archive/2014/04/20/412701.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 20 Apr 2014 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2014/04/20/412701.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/412701.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2014/04/20/412701.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/412701.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/412701.html</trackback:ping><description><![CDATA[<a href="http://arquillian.org/guides/getting_started_zh_cn/" target="_blank">http://arquillian.org/guides/getting_started_zh_cn/</a>
<img src ="http://www.blogjava.net/paulwong/aggbug/412701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2014-04-20 10:33 <a href="http://www.blogjava.net/paulwong/archive/2014/04/20/412701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试过程</title><link>http://www.blogjava.net/paulwong/archive/2012/06/01/379703.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Thu, 31 May 2012 16:07:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/06/01/379703.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/379703.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/06/01/379703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/379703.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/379703.html</trackback:ping><description><![CDATA[<ol><li>单元测试<br />有三个级别<br />逻辑单元测试：就是方法级别的测试，方法中依赖的其他层对象用MOCK模拟，通常只针对控制层<br />整合单元测试：联合几个层来测试，就是针对服务层，其依赖的持久不能模拟，数据库要打开，但可以用内存数据库<br />界面单元测试：为了保证界面不出错，还包括页面数据验证不通过时的测试</li><li>持续构建和代码质量测试<br />测试是否构建成功，代码质量和覆盖率是否达到标准</li><li>系统整合测试</li><li>功能测试<br />通过UI验证是否符合系统用例和业务规则，主要看输入和输出</li><li>系统质量测试<br />主要指性能测试是否符合非功能需求，并发用户和负载是否符合，及安全性和高可用性</li><li>用户接受测试<br />模拟真实环境，根据用户手册和操作流程操作，测试是否符合业务需求</li></ol><img src ="http://www.blogjava.net/paulwong/aggbug/379703.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-06-01 00:07 <a href="http://www.blogjava.net/paulwong/archive/2012/06/01/379703.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JMeter使用介绍</title><link>http://www.blogjava.net/paulwong/archive/2012/05/20/378601.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 20 May 2012 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/05/20/378601.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/378601.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/05/20/378601.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/378601.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/378601.html</trackback:ping><description><![CDATA[<a href="http://www.hitb.com.cn/web/guest/bbs/-/message_boards/message/13785#_19_message_13785" target="_blank">http://www.hitb.com.cn/web/guest/bbs/-/message_boards/message/13785#_19_message_13785</a> <br />
<br />
在录制过程中，如果想去掉讨厌的JS或CSS，可以在HTTP代理服务器的不包含样式中添加：<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">.*\.css<br />
.*\.js<br />
.*\.gif<br />
.*\.jpg</span></div>
<br />在MAVEN中运行JMETER：<br /><a href="https://bitbucket.org/hascode/jmeter-multiuser-profiling/src" target="_blank">https://bitbucket.org/hascode/jmeter-multiuser-profiling/src</a><img src ="http://www.blogjava.net/paulwong/aggbug/378601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-05-20 11:05 <a href="http://www.blogjava.net/paulwong/archive/2012/05/20/378601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Watij and Maven</title><link>http://www.blogjava.net/paulwong/archive/2012/01/03/367792.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Tue, 03 Jan 2012 14:08:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/01/03/367792.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/367792.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/01/03/367792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/367792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/367792.html</trackback:ping><description><![CDATA[By the way, I did this "by hand" and got it working. <br />
<p>First, download the waitj bundle and unzip it. <br />
<p>Then, use maven to manually install each dependency in the lib folder <br />like so: <br />mvn install:install-file -Dfile=webspec.jar -DartifactId=webspec - <br />DgroupId=watij -Dversion=1.3.1 -Dpackaging=jar <br />
<p>You can also do deploy:deploy-file if you want to put them into a <br />central maven repo. <br />
<p>Of course, you don't need to do this for log4j, junit, slf4j. I did <br />it for all the others for speed, registering them under "watij" and <br />version 1.3.1 <br />
<p>Got this working in Eclipse, a simple login test case, yipee! <br />
<p>Here is the POM snippet for my project: </p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependencies</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">junit</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">junit</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">4.8.2</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">scope</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">test</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">scope</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;WATIJ&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">webspec</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">engine-gecko</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">engine-ie</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">engine-webkit</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jniwrap-native</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jxbrowser</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">MozillaGlue</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">MozillaInterfaces</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">mshtml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">runtime</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">tuxpack</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">winpack</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">xulrunner-linux</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">xulrunner-linux64</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">xulrunner-mac</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">watij</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">xulrunner-windows</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.3.1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">log4j</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">log4j</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.2.15</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.slf4j</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">slf4j-api</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.5.8</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.slf4j</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">slf4j-log4j12</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1.5.8</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">version</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dependency</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span></div>
<p><br /></p><br /><img src ="http://www.blogjava.net/paulwong/aggbug/367792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-01-03 22:08 <a href="http://www.blogjava.net/paulwong/archive/2012/01/03/367792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Watij入门 </title><link>http://www.blogjava.net/paulwong/archive/2012/01/03/367791.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Tue, 03 Jan 2012 14:01:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/01/03/367791.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/367791.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/01/03/367791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/367791.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/367791.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Watij介绍Javadoc API for Watij：http://watij.sourceforge.net/docs/api/index.html?watij/IE.html第三章 Watij环境设置3.1 Watij环境要求l Watij 3.2.1l JDK 1.5l Java IDE（本文中使用Eclipse）3.2 Watij安装及设置l 下载软...&nbsp;&nbsp;<a href='http://www.blogjava.net/paulwong/archive/2012/01/03/367791.html'>阅读全文</a><img src ="http://www.blogjava.net/paulwong/aggbug/367791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-01-03 22:01 <a href="http://www.blogjava.net/paulwong/archive/2012/01/03/367791.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>