<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Liuzhe</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Liuzhe"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/Liuzhe"/>
	<updated>2026-07-31T14:02:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Quality_Assurance&amp;diff=207367</id>
		<title>Quality Assurance</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Quality_Assurance&amp;diff=207367"/>
		<updated>2012-10-11T08:54:09Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Helpful links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General Information==&lt;br /&gt;
&amp;lt;b&amp;gt;Quality Assurance (QA) is more than testing!&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can find some interesting articles about [http://en.wikipedia.org/wiki/Software_quality Software Quality] and [http://en.wikipedia.org/wiki/Software_testing Software Testing] at [http://en.wikipedia.org/wiki/Main_Page WikiPedia].&lt;br /&gt;
&lt;br /&gt;
The Apache OpenOffice community community members working on quality assurance [http://en.wikipedia.org/wiki/Software_quality_assurance (QA)] functions perform important actions for the group effort overall. &lt;br /&gt;
&lt;br /&gt;
If you are interested in doing QA for OpenOffice.org, please feel free, and encouraged, to join the community. You can find all relevant information about joining the team at [http://qa.openoffice.org/ooQAReloaded/Docs/QA-Reloaded-HowToStart.html How-To-Start page].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b&amp;gt;Helpful links&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;==&lt;br /&gt;
* Homepage of the QA project on OOo : http://qa.openoffice.org That is the legacy project, but some information might still be useful.&lt;br /&gt;
* Mailing list of the QA project: &lt;br /&gt;
:Archives [http://markmail.org/search/+list:org.apache.incubator.ooo-qa Markmail] [http://mail-archives.apache.org/mod_mbox/incubator-ooo-qa/ Apache]&lt;br /&gt;
:Subscribe: ooo-qa-subscribe@incubator.apache.org&lt;br /&gt;
* Query for existing bugs in IssueTracker : https://issues.apache.org/ooo/&lt;br /&gt;
* Writing a new issue in IssueTracker : &lt;br /&gt;
:[https://issues.apache.org/ooo/enter_bug.cgi Bugzilla New Issue]&lt;br /&gt;
:[[Issue_lifecycle]], a workflow for Bugzilla&lt;br /&gt;
* QA category on OOo wiki : [[:Category:Quality_Assurance|Quality Assurance]]&lt;br /&gt;
*[[QA/test_automation|Test Automation]]&lt;br /&gt;
*[[QA/Build Verification Test(BVT)|Buid Verification Test]]&lt;br /&gt;
*[[Performance/AOO3.4.1_PVT_Introduction]]&lt;br /&gt;
*[[QA/AOO341_TestCase/Installation |Installation test cases]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b&amp;gt;Issue Tracking&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;==&lt;br /&gt;
*[[Issue_lifecycle]], a workflow for Bugzilla&lt;br /&gt;
*[[QA/HowToFileIssue]], a guide for how to open defect in Bugzilla&lt;br /&gt;
&lt;br /&gt;
==Test Case==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://aootesting.adfinis-sygroup.org/index.php Tool Testlink] is used for test case management:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[QA/Testcase/How_to_write_test_case |a guide for how to write a test case]], &lt;br /&gt;
*[[QA/Testcase/Template |template for test case]], &lt;br /&gt;
*[[QA/Testcase/Sample |a sample test case]], &lt;br /&gt;
*[[QA/Testcase |portal for all manual test case]], &lt;br /&gt;
*[[QA/TestLink |tool for test case management]].&lt;br /&gt;
&lt;br /&gt;
==Routine Test Report==&lt;br /&gt;
&lt;br /&gt;
* [http://people.apache.org/~liuzhe/testdashboard/#bvt Daily Build Verification Test Report]&lt;br /&gt;
* [http://people.apache.org/~liuzhe/testdashboard/#pvt Daily Performance Verification Test Report]&lt;br /&gt;
* [[QA/Report/FVT |Function Verification Test(FVT)]]&lt;br /&gt;
* [[QA/Report/WeeklyReport |Weekly Report]]&lt;br /&gt;
* [[QA/Report/DefectStatus |Defect Status Report]]&lt;br /&gt;
&lt;br /&gt;
==Release testing==&lt;br /&gt;
===Apache OpenOffice 3.4===&lt;br /&gt;
If you have interesting in Apache OpenOffice 3.4 release and plan contribute your QA effort to it, please go to below links for test cases update and testing resul update.&lt;br /&gt;
* [http://ci.apache.org/projects/openoffice/install/ AOO 3.4 latest build]:&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+Unofficial+Developer+Snapshots AOO 3.4 Dev Snapshots build]: &lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/Release-QA-Plan AOO 3.4 test plan]: &lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/TestCases/ AOO 3.4 test cases (in multiple languages)]: &lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/TestResults AOO 3.4 test results]:&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+RC+Build+Test+Plan AOO 3.4 RC Build test plan]&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+RC+Build+Test+Report AOO 3.4 RC Build test result]&lt;br /&gt;
&lt;br /&gt;
===Apache OpenOffice 3.4.1===&lt;br /&gt;
If you are interested in Apache OpenOffice 3.4.1 release and plan to contribute your effort on QA work, please go to below link for test case update and test result update&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/Development+Snapshot+Builds#DevelopmentSnapshotBuilds-AOO3.4.1 AOO 3.4.1 dev snapshot build]: &lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4.1+Testing+Plan AOO 3.4.1 testing plan]&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/AOO341_TestCase AOO 3.4.1 test case]&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/AOO341_TestResult AOO 3.4.1 test result]&lt;br /&gt;
&lt;br /&gt;
:* [http://wiki.services.openoffice.org/wiki/QA/AOO341_GeneralTestingSummary AOO 3.4.1 general testing summary]&lt;br /&gt;
:* [http://wiki.services.openoffice.org/wiki/QA/AOO341_InstallationTestingSummary AOO 3.4.1 installation testing summary]&lt;br /&gt;
&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4.1+RC+Build+Test+Plan AOO 3.4.1 RC build test plan]&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/AOO341_RC_TestResult AOO 3.4.1 RC build test result] &lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Quality_Assurance&amp;diff=207366</id>
		<title>Quality Assurance</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Quality_Assurance&amp;diff=207366"/>
		<updated>2012-10-11T08:46:32Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Routine Test Report */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General Information==&lt;br /&gt;
&amp;lt;b&amp;gt;Quality Assurance (QA) is more than testing!&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can find some interesting articles about [http://en.wikipedia.org/wiki/Software_quality Software Quality] and [http://en.wikipedia.org/wiki/Software_testing Software Testing] at [http://en.wikipedia.org/wiki/Main_Page WikiPedia].&lt;br /&gt;
&lt;br /&gt;
The Apache OpenOffice community community members working on quality assurance [http://en.wikipedia.org/wiki/Software_quality_assurance (QA)] functions perform important actions for the group effort overall. &lt;br /&gt;
&lt;br /&gt;
If you are interested in doing QA for OpenOffice.org, please feel free, and encouraged, to join the community. You can find all relevant information about joining the team at [http://qa.openoffice.org/ooQAReloaded/Docs/QA-Reloaded-HowToStart.html How-To-Start page].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b&amp;gt;Helpful links&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;==&lt;br /&gt;
* Homepage of the QA project on OOo : http://qa.openoffice.org That is the legacy project, but some information might still be useful.&lt;br /&gt;
* Mailing list of the QA project: &lt;br /&gt;
:Archives [http://markmail.org/search/+list:org.apache.incubator.ooo-qa Markmail] [http://mail-archives.apache.org/mod_mbox/incubator-ooo-qa/ Apache]&lt;br /&gt;
:Subscribe: ooo-qa-subscribe@incubator.apache.org&lt;br /&gt;
* Query for existing bugs in IssueTracker : https://issues.apache.org/ooo/&lt;br /&gt;
* Writing a new issue in IssueTracker : &lt;br /&gt;
:[https://issues.apache.org/ooo/enter_bug.cgi Bugzilla New Issue]&lt;br /&gt;
:[[Issue_lifecycle]], a workflow for Bugzilla&lt;br /&gt;
* QA category on OOo wiki : [[:Category:Quality_Assurance|Quality Assurance]]&lt;br /&gt;
*[[QA/test_automation |Test Automation]]&lt;br /&gt;
*[[QA/Build Verification Test(BVT)]]&lt;br /&gt;
*[[Performance/AOO3.4.1_PVT_Introduction]]&lt;br /&gt;
*[[QA/AOO341_TestCase/Installation |Installation test cases]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b&amp;gt;Issue Tracking&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;==&lt;br /&gt;
*[[Issue_lifecycle]], a workflow for Bugzilla&lt;br /&gt;
*[[QA/HowToFileIssue]], a guide for how to open defect in Bugzilla&lt;br /&gt;
&lt;br /&gt;
==Test Case==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://aootesting.adfinis-sygroup.org/index.php Tool Testlink] is used for test case management:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[QA/Testcase/How_to_write_test_case |a guide for how to write a test case]], &lt;br /&gt;
*[[QA/Testcase/Template |template for test case]], &lt;br /&gt;
*[[QA/Testcase/Sample |a sample test case]], &lt;br /&gt;
*[[QA/Testcase |portal for all manual test case]], &lt;br /&gt;
*[[QA/TestLink |tool for test case management]].&lt;br /&gt;
&lt;br /&gt;
==Routine Test Report==&lt;br /&gt;
&lt;br /&gt;
* [http://people.apache.org/~liuzhe/testdashboard/#bvt Daily Build Verification Test Report]&lt;br /&gt;
* [http://people.apache.org/~liuzhe/testdashboard/#pvt Daily Performance Verification Test Report]&lt;br /&gt;
* [[QA/Report/FVT |Function Verification Test(FVT)]]&lt;br /&gt;
* [[QA/Report/WeeklyReport |Weekly Report]]&lt;br /&gt;
* [[QA/Report/DefectStatus |Defect Status Report]]&lt;br /&gt;
&lt;br /&gt;
==Release testing==&lt;br /&gt;
===Apache OpenOffice 3.4===&lt;br /&gt;
If you have interesting in Apache OpenOffice 3.4 release and plan contribute your QA effort to it, please go to below links for test cases update and testing resul update.&lt;br /&gt;
* [http://ci.apache.org/projects/openoffice/install/ AOO 3.4 latest build]:&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+Unofficial+Developer+Snapshots AOO 3.4 Dev Snapshots build]: &lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/Release-QA-Plan AOO 3.4 test plan]: &lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/TestCases/ AOO 3.4 test cases (in multiple languages)]: &lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/TestResults AOO 3.4 test results]:&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+RC+Build+Test+Plan AOO 3.4 RC Build test plan]&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+RC+Build+Test+Report AOO 3.4 RC Build test result]&lt;br /&gt;
&lt;br /&gt;
===Apache OpenOffice 3.4.1===&lt;br /&gt;
If you are interested in Apache OpenOffice 3.4.1 release and plan to contribute your effort on QA work, please go to below link for test case update and test result update&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/Development+Snapshot+Builds#DevelopmentSnapshotBuilds-AOO3.4.1 AOO 3.4.1 dev snapshot build]: &lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4.1+Testing+Plan AOO 3.4.1 testing plan]&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/AOO341_TestCase AOO 3.4.1 test case]&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/AOO341_TestResult AOO 3.4.1 test result]&lt;br /&gt;
&lt;br /&gt;
:* [http://wiki.services.openoffice.org/wiki/QA/AOO341_GeneralTestingSummary AOO 3.4.1 general testing summary]&lt;br /&gt;
:* [http://wiki.services.openoffice.org/wiki/QA/AOO341_InstallationTestingSummary AOO 3.4.1 installation testing summary]&lt;br /&gt;
&lt;br /&gt;
* [https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4.1+RC+Build+Test+Plan AOO 3.4.1 RC build test plan]&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/QA/AOO341_RC_TestResult AOO 3.4.1 RC build test result] &lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/Build_Verification_Test(BVT)&amp;diff=207365</id>
		<title>QA/Build Verification Test(BVT)</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/Build_Verification_Test(BVT)&amp;diff=207365"/>
		<updated>2012-10-11T08:36:25Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Build Verification Testing, BVT for short, is a set of tests that run on new build to verify that whether the build is testable or not. It is done prior to its release to test team for further testing. This testing is done for Build Validation and Build Acceptance.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Why do we need BVT?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
BVT is a type of regression test and only take short time, to verify that whether the build is stable and can be tested thoroughly. BVT can save the efforts of testers to setup and test a build when major functions are having defects.  If any of the tests fails, BVT will report to developers immediately to remind relevant developers to review source codes.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
All of tests in BVT is automated, included in package bvt. Smoke test is included in BVT. It takes about 20 minutes to finish the test. Please refer to [[QA/test_automation_guide|Getting Started with Test Automation]] for further information. You can view daily BVT result on our [http://people.apache.org/~liuzhe/testdashboard/#bvt test dashboard].&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/Build_Verification_Test(BVT)&amp;diff=207364</id>
		<title>QA/Build Verification Test(BVT)</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/Build_Verification_Test(BVT)&amp;diff=207364"/>
		<updated>2012-10-11T08:33:06Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Build Verification Testing, BVT for short, is a set of tests that run on new build to verify that whether the build is testable or not. It is done prior to its release to test team for further testing. This testing is done for Build Validation and Build Acceptance.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Why do we need BVT?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
BVT is a type of regression test and only take short time, to verify that whether the build is stable and can be tested thoroughly. BVT can save the efforts of testers to setup and test a build when major functions are having defects.  If any of the tests fails, BVT will report to developers immediately to remind relevant developers to review source codes.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
All of tests in BVT is automated, included in package bvt. Please refer to [[QA/test_automation_guide|Getting Started with Test Automation]] for further information. You can view daily BVT result on our [http://people.apache.org/~liuzhe/testdashboard/#bvt test dashboard].&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=207363</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=207363"/>
		<updated>2012-10-11T06:22:23Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Notice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
There are some reasons for test failures, so please [[QA/test_env|prepare your testing machine]] before running test.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how to run testing against an OpenOffice built by me?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd main&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd ../test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a normal user, how to run testing against an installed OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Firstly compile the project with the command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot; compile&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then start testing with the command &amp;quot;run&amp;quot;. &lt;br /&gt;
e.g. Run all test classes under package bvt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot; -tp bvt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run the given test classes&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot; -tc bvt.gui.BasicFunctionTest&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output***&amp;quot;. Open &amp;quot;test/testspace/output/result.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special stuff in the output directory.&lt;br /&gt;
 result.xml: Test result in HTML. &lt;br /&gt;
 result.html: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=207362</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=207362"/>
		<updated>2012-10-11T06:19:20Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Notice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
[[Prepare your testing machine]QA/test_env ]&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how to run testing against an OpenOffice built by me?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd main&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd ../test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a normal user, how to run testing against an installed OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Firstly compile the project with the command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot; compile&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then start testing with the command &amp;quot;run&amp;quot;. &lt;br /&gt;
e.g. Run all test classes under package bvt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot; -tp bvt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run the given test classes&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot; -tc bvt.gui.BasicFunctionTest&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output***&amp;quot;. Open &amp;quot;test/testspace/output/result.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special stuff in the output directory.&lt;br /&gt;
 result.xml: Test result in HTML. &lt;br /&gt;
 result.html: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/Report/BVT&amp;diff=207209</id>
		<title>QA/Report/BVT</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/Report/BVT&amp;diff=207209"/>
		<updated>2012-10-09T07:34:06Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Build Verification Test(BVT) Report=&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;b&amp;gt;BVT Test Definition&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt; ==&lt;br /&gt;
BVT introduction and case list: http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test(BVT)&lt;br /&gt;
&lt;br /&gt;
==Test Report==&lt;br /&gt;
This table is the introduction of every item in the test report.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|Tested build version.&lt;br /&gt;
|-&lt;br /&gt;
!Platform&lt;br /&gt;
|Tested paltform.&lt;br /&gt;
|-&lt;br /&gt;
!Language&lt;br /&gt;
|Tested build language.&lt;br /&gt;
|-&lt;br /&gt;
!Total&lt;br /&gt;
|Total executed test cases.&lt;br /&gt;
|-&lt;br /&gt;
!Pass&lt;br /&gt;
|Passed test cases.&lt;br /&gt;
|-&lt;br /&gt;
!Fail&lt;br /&gt;
|Failed test cases.&amp;lt;br /&amp;gt;Including failures and errors. Failures happen when assertions are incorrect. Errors are unexpected errors that occur while running the test.&lt;br /&gt;
|-&lt;br /&gt;
!Failed Info&lt;br /&gt;
|Failed reason.&amp;lt;br /&amp;gt;Defects maybe found by BVT. Test environment or inappropriate test scripts can fail the test case.&lt;br /&gt;
|-&lt;br /&gt;
!Report&lt;br /&gt;
|Summary of test results.&amp;lt;br /&amp;gt;Including total executed test cases, failed cases, error cases and execution time. Clicking on the number in the page to see the relevant detailed test cases.&lt;br /&gt;
|-&lt;br /&gt;
!Result&lt;br /&gt;
|A .xml file to record the whold test process.&lt;br /&gt;
|-&lt;br /&gt;
!Log&lt;br /&gt;
|Logs of BVT.&amp;lt;br /&amp;gt;Recording the executed test cases and error messages.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BVT Report for AOO_Trunk_r1355288 ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Language&lt;br /&gt;
!Total&lt;br /&gt;
!Pass&lt;br /&gt;
!Fail&lt;br /&gt;
!Failed Info&lt;br /&gt;
!Report&lt;br /&gt;
!Result&lt;br /&gt;
!Log&lt;br /&gt;
|-&lt;br /&gt;
|AOO Trunk Rev. 1355288&lt;br /&gt;
|Mac 10.7.4  &lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|41&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_mac10.7.4/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_mac10.7.4/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_mac10.7.4/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO Trunk Rev. 1355288&lt;br /&gt;
|Redhat 6.1&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|40&lt;br /&gt;
|1&lt;br /&gt;
|{{Bug|120171}}&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_redhat6.1/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_redhat6.1/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_redhat6.1/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO Trunk Rev. 1355288&lt;br /&gt;
|Ubuntu 10.04&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|41&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_ubuntu10.04/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_ubuntu10.04/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_ubuntu10.04/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO Trunk Rev. 1355288&lt;br /&gt;
|Windows 7_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|41&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_windows7_x64/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_windows7_x64/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_windows7_x64/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO Trunk Rev. 1355288&lt;br /&gt;
|Windows 8_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|41&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_windows8_x64/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_windows8_x64/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1355288_windows8_x64/logs/0.log]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BVT Report for AOO3.4.1_Branch_r1354891 ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Language&lt;br /&gt;
!Total&lt;br /&gt;
!Pass&lt;br /&gt;
!Fail&lt;br /&gt;
!Failed Info&lt;br /&gt;
!Report&lt;br /&gt;
!Result&lt;br /&gt;
!Log&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1354891&lt;br /&gt;
|Mac 10.7.4  &lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|41&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_mac10.7.4/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_mac10.7.4/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_mac10.7.4/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1354891&lt;br /&gt;
|Redhat 6.1&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|39&lt;br /&gt;
|2&lt;br /&gt;
|{{Bug|120171}}.&amp;lt;br /&amp;gt;Test script reason.&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_redhat6.1/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_redhat6.1/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_redhat6.1/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1354891&lt;br /&gt;
|Ubuntu 10.04&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|41&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_ubuntu10.04/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_ubuntu10.04/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_ubuntu10.04/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1354891&lt;br /&gt;
|Windows 7_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|41&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_win7_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_win7_x64/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_win7_x64/output//logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1354891&lt;br /&gt;
|Windows 8_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|41&lt;br /&gt;
|38&lt;br /&gt;
|3&lt;br /&gt;
|No defect. Test script reason.&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_win8_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_win8_x64/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/r1354891_win8_x64/output/logs/0.log]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BVT Report for AOO3.4.1_Branch_r1359641 ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Language&lt;br /&gt;
!Total&lt;br /&gt;
!Pass&lt;br /&gt;
!Fail&lt;br /&gt;
!Failed Info&lt;br /&gt;
!Report&lt;br /&gt;
!Result&lt;br /&gt;
!Log&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1359641&lt;br /&gt;
|Mac 10.7.4  &lt;br /&gt;
|English (zh-CN)&lt;br /&gt;
|46&lt;br /&gt;
|46&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_mac10.7.4/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_mac10.7.4/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_mac10.7.4/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1359641&lt;br /&gt;
|Redhat 6.1&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|46&lt;br /&gt;
|45&lt;br /&gt;
|1&lt;br /&gt;
|Test script reason.&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_redhat6.1/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_redhat6.1/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_redhat6.1/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1359641&lt;br /&gt;
|Ubuntu 10.04&lt;br /&gt;
|English (zh-TW)&lt;br /&gt;
|46&lt;br /&gt;
|45&lt;br /&gt;
|1&lt;br /&gt;
|Test script reason.&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_ubuntu10.04/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_ubuntu10.04/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_ubuntu10.04/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1359641&lt;br /&gt;
|Windows 7_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|46&lt;br /&gt;
|46&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_win7_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_win7_x64/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_win7_x64/output//logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1359641&lt;br /&gt;
|Windows 8_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|46&lt;br /&gt;
|46&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_win8_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_win8_x64/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1359641_win8_x64/output/logs/0.log]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BVT Report for AOO3.4.1_Branch_r1366353 ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Language&lt;br /&gt;
!Total&lt;br /&gt;
!Pass&lt;br /&gt;
!Fail&lt;br /&gt;
!Failed Info&lt;br /&gt;
!Report&lt;br /&gt;
!Result&lt;br /&gt;
!Log&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1366353&lt;br /&gt;
|Mac 10.7.4  &lt;br /&gt;
|English (zh-TW)&lt;br /&gt;
|46&lt;br /&gt;
|46&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_mac10.7.4/output_zh-tw/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_mac10.7.4/output_zh-tw/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_mac10.7.4/output_zh-tw/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1366353&lt;br /&gt;
|Redhat 6.1&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|46&lt;br /&gt;
|46&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_redhat6.1/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_redhat6.1/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_redhat6.1/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1366353&lt;br /&gt;
|Ubuntu 10.04&lt;br /&gt;
|English (zh-CN)&lt;br /&gt;
|46&lt;br /&gt;
|44&lt;br /&gt;
|2&lt;br /&gt;
|{{Bug|120171}}&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_ubuntu10.04/output_zh-cn/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_ubuntu10.04/output_zh-cn/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_ubuntu10.04/output_zh-cn/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1366353&lt;br /&gt;
|Windows 7_x32&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|46&lt;br /&gt;
|46&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_win7_x32/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_win7_x32/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_win7_x32/output//logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1366353&lt;br /&gt;
|Windows 8_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|46&lt;br /&gt;
|46&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_win8_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_win8_x64/output/result/TEST-testsuite.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1366353_win8_x64/output/logs/0.log]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BVT Report for AOO3.4.1_Branch_r1367911 ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Language&lt;br /&gt;
!Total&lt;br /&gt;
!Pass&lt;br /&gt;
!Fail&lt;br /&gt;
!Failed Info&lt;br /&gt;
!Report&lt;br /&gt;
!Result&lt;br /&gt;
!Log&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1367911&lt;br /&gt;
|Mac 10.7.4  &lt;br /&gt;
|English (zh-CN)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_mac10.7.4/output_zh-cn/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_mac10.7.4/output_zh-cn/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_mac10.7.4/output_zh-cn/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1367911&lt;br /&gt;
|Windows 7_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_win7_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_win7_x64/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_win7_x64/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1367911&lt;br /&gt;
|Windows 8_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_win8_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_win8_x64/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/1367911_win8_x64/output/logs/0.log]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BVT Report for AOO3.4.1_Branch_r1369110 ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Language&lt;br /&gt;
!Total&lt;br /&gt;
!Pass&lt;br /&gt;
!Fail&lt;br /&gt;
!Failed Info&lt;br /&gt;
!Report&lt;br /&gt;
!Result&lt;br /&gt;
!Log&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1369110&lt;br /&gt;
|Mac 10.7.4  &lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_mac10.7.4/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_mac10.7.4/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_mac10.7.4/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1369110&lt;br /&gt;
|Windows 7_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_win7_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_win7_x64/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_win7_x64/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1369110&lt;br /&gt;
|Ubuntu 10.04&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|46&lt;br /&gt;
|1&lt;br /&gt;
|{{Bug|120171}}&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_ubuntu10.04/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_ubuntu10.04/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369110/1369110_ubuntu10.04/output/logs/0.log]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BVT Report for AOO3.4.1_Branch_r1369843 ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Language&lt;br /&gt;
!Total&lt;br /&gt;
!Pass&lt;br /&gt;
!Fail&lt;br /&gt;
!Failed Info&lt;br /&gt;
!Report&lt;br /&gt;
!Result&lt;br /&gt;
!Log&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1369843&lt;br /&gt;
|Mac 10.7.4  &lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_mac10.7.4/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_mac10.7.4/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_mac10.7.4/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1369843&lt;br /&gt;
|Windows 7_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_win7_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_win7_x64/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_win7_x64/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1369843&lt;br /&gt;
|Ubuntu 10.04&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_ubuntu10.04/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_ubuntu10.04/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_ubuntu10.04/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1369843&lt;br /&gt;
|Windows 8_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_win8_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_win8_x64/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1369843/1369843_win8_x64/output/logs/0.log]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BVT Report for AOO3.4.1_Branch_r1372282 ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
!Platform&lt;br /&gt;
!Language&lt;br /&gt;
!Total&lt;br /&gt;
!Pass&lt;br /&gt;
!Fail&lt;br /&gt;
!Failed Info&lt;br /&gt;
!Report&lt;br /&gt;
!Result&lt;br /&gt;
!Log&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1372282&lt;br /&gt;
|Mac 10.7.4  &lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_mac10.7.4/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_mac10.7.4/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_mac10.7.4/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1372282&lt;br /&gt;
|Windows 7_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_win7_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_win7_x64/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_win7_x64/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1372282&lt;br /&gt;
|Ubuntu 10.04&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_ubuntu10.04/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_ubuntu10.04/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_ubuntu10.04/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1372282&lt;br /&gt;
|Windows 8_x64&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_win8_x64/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_win8_x64/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_win8_x64/output/logs/0.log]&lt;br /&gt;
|-&lt;br /&gt;
|AOO3.4.1 Branch Rev. 1372282&lt;br /&gt;
|Redhat 6.1&lt;br /&gt;
|English (en-US)&lt;br /&gt;
|47&lt;br /&gt;
|47&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_redhat6.1/output/report/]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_redhat6.1/output/result/TEST-testsuite.gui.BVT.xml]&lt;br /&gt;
|[http://people.apache.org/~liuzhe/old_test/vclautoBVTresult_341Branch1372282/1372282_redhat6.1/output/logs/0.log]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_env&amp;diff=205570</id>
		<title>QA/test env</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_env&amp;diff=205570"/>
		<updated>2012-09-29T06:23:23Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Configure one machine as testing machine for openoffice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Configure one machine as testing machine for openoffice ==&lt;br /&gt;
* Disable screen saver and computer sleeping&lt;br /&gt;
* Disable firewall&lt;br /&gt;
* Set system locale to English&lt;br /&gt;
* Display color depth should be 24-bit or above and disable color calibration.&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Mac OS X&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Open &amp;quot;System Preferences-&amp;gt;Displays-&amp;gt;Color&amp;quot;. Choose ”Generic RGB Profile“.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Disable OS crash/error reporting&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Mac OS X&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run command to disable:&lt;br /&gt;
 defaults write com.apple.CrashReporter DialogType none&lt;br /&gt;
Run command to enable:&lt;br /&gt;
 defaults write com.apple.CrashReporter DialogType prompt&lt;br /&gt;
}}&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Windows 7&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Open Control Panel-&amp;gt;Administrative Tools-&amp;gt;Services. Disable &amp;quot;Windows Error Reporting Service&amp;quot;.&lt;br /&gt;
}}&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Windows XP&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Right click &amp;quot;My Computer&amp;quot;, select &amp;quot;Properties-&amp;gt;Advanced-&amp;gt;Error Reporting&amp;quot;. Disable &amp;quot;Disable error reporting&amp;quot;.&lt;br /&gt;
}}&lt;br /&gt;
* Install JRE 1.6+&lt;br /&gt;
&lt;br /&gt;
== Automatically run testing on daily build ==&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_env&amp;diff=205569</id>
		<title>QA/test env</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_env&amp;diff=205569"/>
		<updated>2012-09-29T06:22:31Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: Created page with &amp;quot; == Configure one machine as testing machine for openoffice ==  # Disable screen saver and computer sleeping # Disable firewall # Set system locale to English # Display color dep…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Configure one machine as testing machine for openoffice ==&lt;br /&gt;
&lt;br /&gt;
# Disable screen saver and computer sleeping&lt;br /&gt;
# Disable firewall&lt;br /&gt;
# Set system locale to English&lt;br /&gt;
# Display color depth should be 24-bit or above and disable color calibration.&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Mac OS X&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Open &amp;quot;System Preferences-&amp;gt;Displays-&amp;gt;Color&amp;quot;. Choose ”Generic RGB Profile“.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
# Disable OS crash/error reporting&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Mac OS X&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run command to disable:&lt;br /&gt;
 defaults write com.apple.CrashReporter DialogType none&lt;br /&gt;
Run command to enable:&lt;br /&gt;
 defaults write com.apple.CrashReporter DialogType prompt&lt;br /&gt;
}}&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Windows 7&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Open Control Panel-&amp;gt;Administrative Tools-&amp;gt;Services. Disable &amp;quot;Windows Error Reporting Service&amp;quot;.&lt;br /&gt;
}}&lt;br /&gt;
{{Template:Documentation/Tip|&amp;#039;&amp;#039;&amp;#039;Windows XP&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Right click &amp;quot;My Computer&amp;quot;, select &amp;quot;Properties-&amp;gt;Advanced-&amp;gt;Error Reporting&amp;quot;. Disable &amp;quot;Disable error reporting&amp;quot;.&lt;br /&gt;
}}&lt;br /&gt;
# Install JRE 1.6+&lt;br /&gt;
&lt;br /&gt;
== Automatically run testing on daily build ==&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=205285</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=205285"/>
		<updated>2012-09-18T05:59:17Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how to run testing against an OpenOffice built by me?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd main&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd ../test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a normal user, how to run testing against an installed OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Firstly compile the project with the command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot; compile&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then start testing with the command &amp;quot;run&amp;quot;. &lt;br /&gt;
e.g. Run all test classes under package bvt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot; -tp bvt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run the given test classes&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot; -tc bvt.gui.BasicFunctionTest&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output***&amp;quot;. Open &amp;quot;test/testspace/output/result.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special stuff in the output directory.&lt;br /&gt;
 result.xml: Test result in HTML. &lt;br /&gt;
 result.html: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=205284</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=205284"/>
		<updated>2012-09-18T05:56:59Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how to run testing against an OpenOffice built by me?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd main&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd ../test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a normal user, how to run testing against an installed OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Firstly compile the project with the command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot; compile&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then start testing with the command &amp;quot;run&amp;quot;. &lt;br /&gt;
e.g. Run all test classes under package bvt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
run -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot; -tp bvt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run the given test classes&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot; -tc bvt.gui.BasicFunctionTest&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output***&amp;quot;. Open &amp;quot;test/testspace/output/result.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special stuff in the output directory.&lt;br /&gt;
 result.xml: Test result in HTML. &lt;br /&gt;
 result.html: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=205283</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=205283"/>
		<updated>2012-09-18T05:43:03Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output***&amp;quot;. Open &amp;quot;test/testspace/output/result.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Special stuff in the output directory.&lt;br /&gt;
 result.xml: Test result in HTML. &lt;br /&gt;
 result.html: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204974</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204974"/>
		<updated>2012-08-31T02:05:54Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Getting the source code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204796</id>
		<title>QA/test automation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204796"/>
		<updated>2012-08-21T02:22:59Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Test Automation Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Apache OpenOffice Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Automation ==&lt;br /&gt;
&lt;br /&gt;
Yes, we can automate Apache OpenOffice testing. [http://en.wikipedia.org/wiki/Test_automation Test automation] can help us save much time we have to spent on manual testing. Two kind of approaches is supported by Apache OpenOffice to perform functional testing, by GUI testing and UNO API testing. Test code is written in Java and can be run on any platform supported by Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
We are looking forward to your contribution to test automation. It&amp;#039;s easy to setup test automation project to run testing. Please start with the guide [[QA/test_automation_guide | Getting Started with Test Automation]]. Tell us your test result in mailing list.&lt;br /&gt;
== Test Automation Development ==&lt;br /&gt;
To develop test automation code, you are required some basic Java and JUnit skills. &lt;br /&gt;
*[http://junit.sourceforge.net/doc/cookbook/cookbook.htm JUnit Cookbook]. It shows how to use JUnit 4. If you know Java, it&amp;#039;s very easy for you to understand it.&lt;br /&gt;
*[[QA/dev_gui_testing|GUI Testing Development]]&lt;br /&gt;
*[[QA/dev_api_testing|UNO API Testing Development]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204795</id>
		<title>QA/test automation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204795"/>
		<updated>2012-08-21T02:22:30Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Test Automation Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Apache OpenOffice Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Automation ==&lt;br /&gt;
&lt;br /&gt;
Yes, we can automate Apache OpenOffice testing. [http://en.wikipedia.org/wiki/Test_automation Test automation] can help us save much time we have to spent on manual testing. Two kind of approaches is supported by Apache OpenOffice to perform functional testing, by GUI testing and UNO API testing. Test code is written in Java and can be run on any platform supported by Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
We are looking forward to your contribution to test automation. It&amp;#039;s easy to setup test automation project to run testing. Please start with the guide [[QA/test_automation_guide | Getting Started with Test Automation]]. Tell us your test result in mailing list.&lt;br /&gt;
== Test Automation Development ==&lt;br /&gt;
To develop test automation code, you are required some basic Java and JUnit skills. &lt;br /&gt;
*[http://junit.sourceforge.net/doc/cookbook/cookbook.htm JUnit cookbook]. It shows how to use JUnit 4. If you know Java, it&amp;#039;s very easy for you to understand it.&lt;br /&gt;
*[[QA/dev_gui_testing|GUI Testing Development]]&lt;br /&gt;
*[[QA/dev_api_testing|UNO API Testing Development]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204794</id>
		<title>QA/test automation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204794"/>
		<updated>2012-08-21T02:21:26Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Apache OpenOffice Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Automation ==&lt;br /&gt;
&lt;br /&gt;
Yes, we can automate Apache OpenOffice testing. [http://en.wikipedia.org/wiki/Test_automation Test automation] can help us save much time we have to spent on manual testing. Two kind of approaches is supported by Apache OpenOffice to perform functional testing, by GUI testing and UNO API testing. Test code is written in Java and can be run on any platform supported by Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
We are looking forward to your contribution to test automation. It&amp;#039;s easy to setup test automation project to run testing. Please start with the guide [[QA/test_automation_guide | Getting Started with Test Automation]]. Tell us your test result in mailing list.&lt;br /&gt;
== Test Automation Development ==&lt;br /&gt;
To develop test automation code, you are required some basic Java and JUnit skills. &lt;br /&gt;
*[http://junit.sourceforge.net/doc/cookbook/cookbook.htm Here] is a short cookbook showing how to use JUnit 4. If you know Java, it&amp;#039;s very easy for you to understand it.&lt;br /&gt;
*[[QA/dev_gui_testing|GUI Testing Development]]&lt;br /&gt;
*[[QA/dev_api_testing|UNO API Testing Development]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/dev_gui_testing&amp;diff=204793</id>
		<title>QA/dev gui testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/dev_gui_testing&amp;diff=204793"/>
		<updated>2012-08-21T02:19:45Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* JUnit 4 basics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: GUI Testing Development}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
== Write GUI test case ==&lt;br /&gt;
=== A simple example ===&lt;br /&gt;
You can find one simple example in the testgui project. The source code is testgui/source/testcase/gui/AOOTest.java.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package testcase.gui;&lt;br /&gt;
&lt;br /&gt;
import static org.junit.Assert.*;&lt;br /&gt;
import static testlib.gui.AppUtil.*;&lt;br /&gt;
import static testlib.gui.UIMap.*;&lt;br /&gt;
&lt;br /&gt;
import org.junit.After;&lt;br /&gt;
import org.junit.Before;&lt;br /&gt;
import org.junit.Rule;&lt;br /&gt;
import org.junit.Test;&lt;br /&gt;
&lt;br /&gt;
import testlib.gui.CalcUtil;&lt;br /&gt;
import testlib.gui.Log;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * If AOO is not installed in the default directory, please specify the system property in your command line. &amp;lt;br/&amp;gt;&lt;br /&gt;
 * -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class AOOTest {&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Add Log to enable the following capabilities.&lt;br /&gt;
	 * 1. Take a screenshot when failure occurs.&lt;br /&gt;
	 * 2. Collect extra data when OpenOffice crashes.&lt;br /&gt;
	 * 3. Log any detail information.&lt;br /&gt;
	 */&lt;br /&gt;
	@Rule&lt;br /&gt;
	public Log LOG = new Log();&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Do some setup task before running test&lt;br /&gt;
	 * @throws Exception&lt;br /&gt;
	 */&lt;br /&gt;
	@Before&lt;br /&gt;
	public void setUp() throws Exception {&lt;br /&gt;
		//Start OpenOffice with a clean user profile&lt;br /&gt;
		app.start(true); &lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Clean task after testing&lt;br /&gt;
	 * @throws Exception&lt;br /&gt;
	 */&lt;br /&gt;
	@After&lt;br /&gt;
	public void tearDown() throws Exception {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Implement test steps &lt;br /&gt;
	 */&lt;br /&gt;
	@Test&lt;br /&gt;
	public void testHello() {&lt;br /&gt;
		startcenter.menuItem(&amp;quot;File-&amp;gt;New-&amp;gt;Spreadsheet&amp;quot;).select();&lt;br /&gt;
		calc.waitForExistence(10, 3);&lt;br /&gt;
		typeKeys(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
		assertEquals(&amp;quot;Assert&amp;quot;, &amp;quot;Hello&amp;quot;, CalcUtil.getCellInput(&amp;quot;A1&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== testlib.gui.UIMap ===&lt;br /&gt;
The classes under package org.openoffice.test.vcl.widgets can be used to interact with VCL controls. To construct the classes, GUI control&amp;#039;s Help ID should be specified. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
VclWindow startcenter = new VclWindow(&amp;quot;FWK_HID_BACKINGWINDOW&amp;quot;);&lt;br /&gt;
startcenter.click();&lt;br /&gt;
VclButton someButton = new VclButton(&amp;quot;SC_HID_INSWIN_CALC&amp;quot;);&lt;br /&gt;
someButton.click();&lt;br /&gt;
boolean checked = someButton.getText();&lt;br /&gt;
VclListBox someListBox = new VclListBox(&amp;quot;some.listbox.id&amp;quot;);&lt;br /&gt;
someListBox.select(&amp;quot;Item1&amp;quot;);&lt;br /&gt;
String selected = someListBox.getSelText();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally we define GUI controls centrally in one class named testlib.gui.UIMap. The advantage is that we can easily update our scripts when GUI changes.  There have been many pre-defined controls. For example:&lt;br /&gt;
*app: The whole AOO application&lt;br /&gt;
*startcenter:  Startcenter window&lt;br /&gt;
*writer: Writer window&lt;br /&gt;
*calc: Calc window&lt;br /&gt;
*impress:  Impress window.&lt;br /&gt;
You can define new GUI control by add one line in the class or use one Eclipse plugin named testassistant to simplify the thing.&lt;br /&gt;
&lt;br /&gt;
=== How to define GUI controls ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Use VCL Test Assistant Eclipse Plugin &amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Install the plugin into your eclipse.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:testassistant.zip]] &amp;lt;br /&amp;gt;&lt;br /&gt;
Open Eclipse Preferences, find the page &amp;quot;VCL Test Assistant&amp;quot; and then specify OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vcl_test_assistant_preference.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Open &amp;quot;VCL Test Assistant-&amp;gt;VCL Explorer&amp;quot; view.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vcl_test_assistant_view.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click Launch to start OpenOffice and then click Inspect. &amp;lt;br /&amp;gt;&lt;br /&gt;
Now, OpenOffice will pops up a floating windows titled &amp;quot;DisplayHID&amp;quot;. Drag the gray circle to some controls and then release the button. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:inspect_help_id.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Go back to VCL Explorer, you will get the Help IDs.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:help_id_view.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to use any control, left double click on the &amp;quot;Name&amp;quot; item of the control which you want to use, then add a name to it. Then you will find a UI control defined automatically in the last line of UIMap.java.(%EclipseWorkspaceDir%\test\testscript\src\testlib\UIMap.java). Then you can use the control by name you defined instead of using control ID.&lt;br /&gt;
[[File:Add_controls.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== testlib.gui.AppUtil ===&lt;br /&gt;
testlib.gui.AppUtil inludes some methods to post keyboard/mouse event to OS. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
AppUtil.typeKeys(&amp;quot;AB&amp;lt;enter&amp;gt;&amp;quot;);&lt;br /&gt;
//type shortcuts&lt;br /&gt;
AppUtil.typeKeys(&amp;quot;&amp;lt;ctrl a&amp;gt;&amp;lt;ctrl c&amp;gt;&amp;lt;ctrl v&amp;gt;&amp;quot;);&lt;br /&gt;
//Perform mouse click on screen&lt;br /&gt;
AppUtil.click(200, 200);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add a Test Case ===&lt;br /&gt;
* [[QA/vclauto/A step by step example]]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204781</id>
		<title>QA/test automation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204781"/>
		<updated>2012-08-20T02:27:10Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Apache OpenOffice Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Automation ==&lt;br /&gt;
&lt;br /&gt;
Yes, we can automate Apache OpenOffice testing. [http://en.wikipedia.org/wiki/Test_automation Test automation] can help us save much time we have to spent on manual testing. Two kind of approaches is supported by Apache OpenOffice to perform functional testing, by GUI testing and UNO API testing. Test code is written in Java and can be run on any platform supported by Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
We are looking forward to your contribution to test automation. Please start with the guide [[QA/test_automation_guide | Getting Started with Test Automation]].&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204780</id>
		<title>QA/test automation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation&amp;diff=204780"/>
		<updated>2012-08-20T02:26:57Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Apache OpenOffice Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Automation ==&lt;br /&gt;
&lt;br /&gt;
Yes, we can automate Apache OpenOffice testing. [http://en.wikipedia.org/wiki/Test_automation Test automation] can help us save much time we have to spent on manual testing. Two kind of approaches is supported by Apache OpenOffice to perform functional testing, by GUI testing and UNO API testing. Test code is written in Java and can be run on any platform supported by Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
 We are looking forward to your contribution to test automation. Please start with the guide [[QA/test_automation_guide | Getting Started with Test Automation]].&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/vclauto&amp;diff=204704</id>
		<title>QA/vclauto</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/vclauto&amp;diff=204704"/>
		<updated>2012-08-17T00:42:15Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Documentation/Note|This page will introduce VCLAuto tech background. If you want to get started with test automation, please read the [[QA/test_automation_guide|test automation guide]].}}&lt;br /&gt;
==Introduction==&lt;br /&gt;
VCLAuto is a java library to automate GUI testing for Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
TODO: write some text to describe how the API works.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204703</id>
		<title>QA/gui testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204703"/>
		<updated>2012-08-17T00:40:25Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Documentation/Note|This page will introduce VCLAuto tech background. If you want to get started with test automation, please read the [[QA/test_automation_guide|test automation guide]].}}&lt;br /&gt;
==Introduction==&lt;br /&gt;
VCLAuto is a java library to automate GUI testing for Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
TODO: write some text to describe how the API works.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204702</id>
		<title>QA/gui testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204702"/>
		<updated>2012-08-17T00:38:10Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center;&amp;quot;&amp;gt;center text&amp;lt;/p&amp;gt;This page will introduce VCLAuto tech background. If you want to get started with test automation, please read the [[QA/test_automation_guide|test automation guide]].&lt;br /&gt;
==Introduction==&lt;br /&gt;
VCLAuto is a java library to automate GUI testing for Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
TODO: write some text to describe how the API works.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204701</id>
		<title>QA/gui testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204701"/>
		<updated>2012-08-17T00:37:54Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will introduce VCLAuto tech background. If you want to get started with test automation, please read our [[QA/test_automation_guide|test automation guide]].&lt;br /&gt;
==Introduction==&lt;br /&gt;
VCLAuto is a java library to automate GUI testing for Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
TODO: write some text to describe how the API works.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204700</id>
		<title>QA/gui testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204700"/>
		<updated>2012-08-17T00:36:47Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page will introduce VCLAuto tech background. If you want to get started with test automation, please read our [[QA/test_automation_guide]].&lt;br /&gt;
==Introduction==&lt;br /&gt;
VCLAuto is a java library to automate GUI testing for Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
TODO: write some text to describe how the API works.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204699</id>
		<title>QA/gui testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204699"/>
		<updated>2012-08-17T00:34:38Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Read our [[QA/test automation guide]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
VCLAuto is a java library to automate GUI testing for Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
TODO: write some text to describe how the API works.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204696</id>
		<title>QA/gui testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/gui_testing&amp;diff=204696"/>
		<updated>2012-08-17T00:30:36Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: moved QA/gui testing to QA/test automation guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[QA/test automation guide]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204695</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204695"/>
		<updated>2012-08-17T00:30:36Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: moved QA/gui testing to QA/test automation guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204693</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204693"/>
		<updated>2012-08-17T00:26:24Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 4.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_14.png&amp;diff=204692</id>
		<title>File:Test automation guide 14.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_14.png&amp;diff=204692"/>
		<updated>2012-08-17T00:25:02Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_13.png&amp;diff=204691</id>
		<title>File:Test automation guide 13.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_13.png&amp;diff=204691"/>
		<updated>2012-08-17T00:23:46Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_12.png&amp;diff=204690</id>
		<title>File:Test automation guide 12.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_12.png&amp;diff=204690"/>
		<updated>2012-08-17T00:22:21Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_11.png&amp;diff=204689</id>
		<title>File:Test automation guide 11.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_11.png&amp;diff=204689"/>
		<updated>2012-08-17T00:21:42Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_10.png&amp;diff=204688</id>
		<title>File:Test automation guide 10.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_10.png&amp;diff=204688"/>
		<updated>2012-08-17T00:21:06Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_2.png&amp;diff=204687</id>
		<title>File:Test automation guide 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_2.png&amp;diff=204687"/>
		<updated>2012-08-17T00:20:41Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_1.png&amp;diff=204686</id>
		<title>File:Test automation guide 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Test_automation_guide_1.png&amp;diff=204686"/>
		<updated>2012-08-17T00:20:14Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204676</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204676"/>
		<updated>2012-08-16T13:17:38Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Getting the source code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204675</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204675"/>
		<updated>2012-08-16T13:14:30Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204674</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204674"/>
		<updated>2012-08-16T13:13:12Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
Now, all things have been ready for developing new test code. If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] and [[QA/dev_api_testing|UNO API Testing Development]] to get more information.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204673</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204673"/>
		<updated>2012-08-16T13:11:55Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_report.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
Now, all things have been ready for developing new test code.  If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] to get more information.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204672</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204672"/>
		<updated>2012-08-16T13:09:46Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following command under test module.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;OpenOffice installation directory&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ant -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclautoreport.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
Now, all things have been ready for developing new test code.  If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] to get more information.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204671</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204671"/>
		<updated>2012-08-16T13:05:44Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_13.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following commands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. If openoffice.home is not specified,  it will try to test OpenOffice installed in the default directory&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;. e.g. Run BVT against OpenOffice  in the default directory.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclautoreport.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
Now, all things have been ready for developing new test code.  If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] to get more information.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204670</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204670"/>
		<updated>2012-08-16T12:57:54Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Specify where Apache OpenOffice is located. &amp;lt;br /&amp;gt;&lt;br /&gt;
Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;&amp;#039;&amp;#039;&amp;#039;openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;quot;, and set its value to Apache OpenOffice installation directory.&lt;br /&gt;
[[File:test_automation_guide_11.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default installation directory of Apache OpenOffice&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
Click &amp;quot;OK&amp;quot; to close &amp;quot;New Variable Entry&amp;quot;dialog. Then click &amp;quot;OK&amp;quot; button of preferences dialog. A message box pops up. Click &amp;quot;Yes&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_16.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following commands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. If openoffice.home is not specified,  it will try to test OpenOffice installed in the default directory&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;. e.g. Run BVT against OpenOffice  in the default directory.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclautoreport.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
Now, all things have been ready for developing new test code.  If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] to get more information.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204669</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204669"/>
		<updated>2012-08-16T12:46:28Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Run testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac) and then select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;New&amp;quot; to create one new variable &amp;quot;openoffice.home&amp;quot;, and set its value to Apache OpenOffice installation directory.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default value of openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Otherwise, &lt;br /&gt;
[[File:vclauto_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;Edit&amp;quot; button and then add the following line in &amp;quot;Default VM Arguments&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
[[File:vclauto_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;Finish&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_16.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following commands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. If openoffice.home is not specified,  it will try to test OpenOffice installed in the default directory&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;. e.g. Run BVT against OpenOffice  in the default directory.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclautoreport.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
Now, all things have been ready for developing new test code.  If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] to get more information.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204668</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204668"/>
		<updated>2012-08-16T12:40:05Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Setup project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:test_automation_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:test_automation_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Set AOO&amp;#039;s installation location firstly. Copy the default directory&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default value of openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt; for convienence. &amp;lt;br /&amp;gt;&lt;br /&gt;
Otherwise, click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac), select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page and then create one new variable &amp;quot;openoffice.home&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;Edit&amp;quot; button and then add the following line in &amp;quot;Default VM Arguments&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
[[File:vclauto_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;Finish&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_16.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following commands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. If openoffice.home is not specified,  it will try to test OpenOffice installed in the default directory&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;. e.g. Run BVT against OpenOffice  in the default directory.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclautoreport.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
Now, all things have been ready for developing new test code.  If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] to get more information.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204659</id>
		<title>QA/test automation guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_guide&amp;diff=204659"/>
		<updated>2012-08-16T08:53:15Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Getting Started with Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Two kind of approaches is supported by Apache OpenOffice.&lt;br /&gt;
*GUI Testing: Simulating a common user to perform testing. It depends on a Java library named VCLAuto, which does testing like the old [[VCLTesttool]]. It can easily integrates with JUnit. VCLAuto provides APIs to generate user interface events such as keystrokes and mouse clicks, do GUI actions and get information from the GUI to validate functions.&lt;br /&gt;
*UNO API Testing:  Use UNO API to verify functions.&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
TCP/IP will be used during testing. It may lead your firewall to show some warning messages.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
Anyone can checkout source code from our Subversion repository. Run the following command.&lt;br /&gt;
 svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/main/test/ test&lt;br /&gt;
If you are not familiar with Subversion, see our [http://incubator.apache.org/openofficeorg/svn-basics.html Subversion Basics] for more information.&lt;br /&gt;
== Getting started with Eclipse ==&lt;br /&gt;
=== Prerequisites === &lt;br /&gt;
*Eclipse Java IDE: [http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junor Eclipse Juno(4.2) IDE for Java Developers] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Apache OpenOffice&lt;br /&gt;
&lt;br /&gt;
=== Setup project ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Open Eclipse, click menu &amp;quot;File-&amp;gt;Import...&amp;quot;, and then select &amp;quot;General-&amp;gt;Existing Projects into Workspace&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Click next, set &amp;quot;Select root directory&amp;quot; to the source code directory, and then check the following projects.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testcommon&amp;#039;&amp;#039;&amp;#039;: The project includes the common test utilities and low-level implementation to do GUI testing&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testgui&amp;#039;&amp;#039;&amp;#039;:  The project includes the GUI testing scripts. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;testuno&amp;#039;&amp;#039;&amp;#039;:  The project includes the UNO API testing scripts.&lt;br /&gt;
[[File:vclauto_guide_2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3.&amp;#039;&amp;#039;&amp;#039; Click &amp;quot;Finish&amp;quot; to import the projects.&lt;br /&gt;
&lt;br /&gt;
=== Run testing ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1.&amp;#039;&amp;#039;&amp;#039; Set AOO&amp;#039;s installation location firstly. Copy the default directory&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;&amp;#039;The default value of openoffice.home&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Mac OS X: &amp;quot;&amp;#039;&amp;#039;/Applications/OpenOffice.org.app/Contents&amp;quot;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Linux: &amp;quot;&amp;#039;&amp;#039;/opt/openoffice.org3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows: &amp;quot;&amp;#039;&amp;#039;C:/Program Files/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Windows 64b: &amp;quot;&amp;#039;&amp;#039;C:/Program Files (x86)/OpenOffice.org 3&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt; for convienence. &amp;lt;br /&amp;gt;&lt;br /&gt;
Otherwise, click menu &amp;quot;Window-&amp;gt;Preferences&amp;quot; (&amp;quot;Eclipse-&amp;gt;Preferences&amp;quot; on Mac), select &amp;quot;Java-&amp;gt;Build Path-&amp;gt;Classpath Variables&amp;quot; page and then create one new variable &amp;quot;openoffice.home&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_10.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;Edit&amp;quot; button and then add the following line in &amp;quot;Default VM Arguments&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
 -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
[[File:vclauto_guide_12.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Click &amp;quot;Finish&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2.&amp;#039;&amp;#039;&amp;#039; Select one test class. e.g. testcase.gui.AOOTest, and then click &amp;quot;Run&amp;quot; on the toolbar to start testing. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_14.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
When testing is finished, JUnit view will show the result.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclauto_guide_16.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
You also can select one package, click &amp;quot;Run&amp;quot;, and then choose &amp;quot;JUnit test&amp;quot; to run all test classes under it.&lt;br /&gt;
&lt;br /&gt;
== Getting started with command line ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
*JDK: [http://java.sun.com/j2se/1.5/ JDK 1.5], [http://java.sun.com/javase/6/ JDK 1.6] or above.&amp;lt;br /&amp;gt;&lt;br /&gt;
*Ant: [http://ant.apache.org/bindownload.cgi Apache Ant 1.8.2] or above.&lt;br /&gt;
*JUnit: [https://github.com/KentBeck/junit/downloads JUnit 4.10] or above. For lazy people, if internet is available, it can be automatically installed during testing.&lt;br /&gt;
&lt;br /&gt;
=== Run testing  ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How do I run testing on OpenOffice?&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the following commands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;Test class list&amp;quot; -Dopenoffice.home=&amp;quot;Your OpenOffice installation directory which contains soffice.bin&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run testcase.gui.AOOTest and testcase.gui.SmokeTest against OpenOffice installed in &amp;quot;/Applications/OpenOffice.org.app&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/AOOTest.class,testcase/gui/SmokeTest.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
e.g. Run all test classes under package testcase.gui.sc&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant -Dtest.classes=&amp;quot;testcase/gui/sc/**/*.class&amp;quot; -Dopenoffice.home=&amp;quot;/Applications/OpenOffice.org.app/Contents/MacOS&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If test.classes is not specified, [http://wiki.services.openoffice.org/wiki/QA/Build_Verification_Test%28BVT%29 BVT] will be executed. If openoffice.home is not specified,  it will try to test OpenOffice installed in the default directory&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;. e.g. Run BVT against OpenOffice  in the default directory.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd test&lt;br /&gt;
ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;As a developer, how do I run testing against my own build?&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt; &lt;br /&gt;
It&amp;#039;s easy for developers to run testing after building OpenOffice. One thing you need to do is to make sure you run the commands in the build environment. The script will automatically install your build and then start testing. e.g.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source MacOSXX86Env.Set.sh&lt;br /&gt;
cd test &amp;amp;&amp;amp; ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Where to get the testing result? &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, the testing output is stored in &amp;quot;test/testspace/output&amp;quot;. Open &amp;quot;test/testspace/output/report/index.html&amp;quot; in your browser to see the testing report.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:vclautoreport.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several directories to store special stuff.&lt;br /&gt;
 report/: Test result in HTML. &lt;br /&gt;
 result/: Test result in XML.&lt;br /&gt;
 screenshot/: Screenshot pictures when test assert is failed.&lt;br /&gt;
 logs/: The detail log.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
Now, all things have been ready for developing new test code.  If you are interested, please read [[QA/dev_gui_testing|GUI Testing Development]] to get more information.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/junit_rules&amp;diff=204640</id>
		<title>QA/junit rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/junit_rules&amp;diff=204640"/>
		<updated>2012-08-15T05:53:04Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: moved QA/junit rules to QA/test automation rules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[QA/test automation rules]]&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_rules&amp;diff=204639</id>
		<title>QA/test automation rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_rules&amp;diff=204639"/>
		<updated>2012-08-15T05:53:04Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: moved QA/junit rules to QA/test automation rules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Best Practice Rules for Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
== Best practice rules for JUnit 4 ==&lt;br /&gt;
{{Template:Documentation/Caution|MUST READ THE SECTION BEFORE COMMITTING AUTOMATION CODE}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Recommend to follow [http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html Java code conventions]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t miss assertions. One test method should include at least one assertion, otherwise the test will always pass.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t add assertions in @Before/@BeforeClass/@After/@AfterClass methods.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Use assertions with an informative message.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(expected , actual);&lt;br /&gt;
assertNull(actual);&lt;br /&gt;
assertNotNull(actual);&lt;br /&gt;
assertTrue(actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;.&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(&amp;quot;actual should equals expected&amp;quot;, expected , actual);&lt;br /&gt;
assertNull(&amp;quot;actual should be null&amp;quot;, actual);&lt;br /&gt;
assertNotNull(&amp;quot;actual should not be null&amp;quot;, actual);&lt;br /&gt;
assertTrue(&amp;quot;actual should be true&amp;quot;, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t use assertTrue wrongly. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertTrue(&amp;quot;actual should be same with expected&amp;quot;, expected == actual);&lt;br /&gt;
assertTrue(&amp;quot;actual should equals expected&amp;quot;, expected.equals(actual));&lt;br /&gt;
assertTrue(&amp;quot;actual should be null&amp;quot;, actual == null);&lt;br /&gt;
assertTrue(&amp;quot;actual should not be null&amp;quot;, actual != null);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertSame(&amp;quot;actual should be same with expected&amp;quot;, expected, actual);&lt;br /&gt;
assertEquals(&amp;quot;actual should equals expected&amp;quot;, expected, actual);&lt;br /&gt;
assertNull(&amp;quot;actual should be null&amp;quot;, actual);&lt;br /&gt;
assertNotNull(&amp;quot;actual should not be null&amp;quot;, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Use assertArrayEquals instead of assertEquals for array data.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(&amp;quot;actual[0] should equals expected0&amp;quot;, expected0, actual[0]);&lt;br /&gt;
assertEquals(&amp;quot;actual[1] should equals expected1&amp;quot;, expected1, actual[1]);&lt;br /&gt;
assertEquals(&amp;quot;actual[2] should equals expected2&amp;quot;, expected2, actual[2]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String[] expected = {&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;};&lt;br /&gt;
String[] actual = someMethod();&lt;br /&gt;
assertArrayEquals(&amp;quot;actual should equals expected&amp;quot;, expected, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid negation in an assertTrue or assertFalse test.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertTrue(&amp;quot;not empty&amp;quot;, !r.isEmpty());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertFalse(&amp;quot;not empty&amp;quot;, r.isEmpty());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t catch unexpected exceptions.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testCalculation() {&lt;br /&gt;
    try {&lt;br /&gt;
        deepThought.calculate();&lt;br /&gt;
        assertEquals(&amp;quot;Calculation wrong&amp;quot;, 42, deepThought.getResult());&lt;br /&gt;
    }&lt;br /&gt;
    catch(CalculationException ex) {&lt;br /&gt;
        Log.error(&amp;quot;Calculation caused exception&amp;quot;, ex);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testCalculation() throw CalculationException {&lt;br /&gt;
    deepThought.calculate();&lt;br /&gt;
    assertEquals(&amp;quot;Calculation wrong&amp;quot;, 42, deepThought.getResult());&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid too complex test. Simple test is easy to understand and maintain. One test should not contain too many asserts. Consider breaking the test scenario into multiple, shorter test scenarios.  &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid external dependencies. Others can run test by a single command or a one button click without extra configurations. e.g. Data file should be placed in the svn with test code, so that newcomers don&amp;#039;t need to manually prepare it.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testFile() {&lt;br /&gt;
    String testFile = &amp;quot;C:\\test\\test.odt&amp;quot;;&lt;br /&gt;
    //Do test against on testFile&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testFile() {&lt;br /&gt;
    // test.odt is placed with test code together. Given a relative path, prepareData will return the file&amp;#039;s real absolute path.&lt;br /&gt;
    String testFile = prepareData(&amp;quot;test.odt&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Make test method indepdent, not affect or be affected by others. Test methods can be executed in any particular order. So do necessary setup/teardown in @Before/@BeforeClass/@After/@AfterClass method to avoid side effects.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Log the generated data when you use random. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Name tests properly. &amp;quot;testLoadFileFromServer&amp;quot; is better than a simple word &amp;quot;test&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Consider parameterized test if you want run the same steps against a bunch of different test data.Use @RunWith(value = Parameterized.class) on class to enable parameterized test. Use @Parameters annotation on one static method to generate a collection of parameters. Each parameter will be passed into class constructor during test.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Example&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
@RunWith(value = Parameterized.class)&lt;br /&gt;
public class ParameterizedTest {&lt;br /&gt;
&lt;br /&gt;
    private int number;&lt;br /&gt;
    public ParameterizedTest(int number) {&lt;br /&gt;
        this.number = number;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Parameters&lt;br /&gt;
    public static Collection&amp;lt;Object[]&amp;gt; data() {&lt;br /&gt;
        Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };&lt;br /&gt;
        return Arrays.asList(data);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    @Test&lt;br /&gt;
    public void testSteps() {&lt;br /&gt;
        // use number to do test&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best practice rules for GUI testing ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t directly use shortcut keys. Make them as an customized shortcut. Different platforms have different shortcuts for the same function. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t add unnecessary sleep. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.waitForExistence(5, 1); // The line is not necessary. &lt;br /&gt;
   //sleep(5); // The line is not necessary. &lt;br /&gt;
   control.click(); // The method impliedly does several times of sleep to wait the control to exist.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.click();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Test testing codes on all platforms before committing. OpenOffice may have different behaviors on different platforms. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t assert if a control exists, if the next operation imply the control must exist. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   assertTrue(&amp;quot;Control exists&amp;quot;, control.exists(5, 1));  // The line is not necessary. &lt;br /&gt;
   control.click(); // click method imply the control must exist, so you have add the verification point impliedly.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.click();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_rules&amp;diff=204638</id>
		<title>QA/test automation rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_rules&amp;diff=204638"/>
		<updated>2012-08-15T05:52:19Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Best Practice Rules for Test Automation}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
== Best practice rules for JUnit 4 ==&lt;br /&gt;
{{Template:Documentation/Caution|MUST READ THE SECTION BEFORE COMMITTING AUTOMATION CODE}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Recommend to follow [http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html Java code conventions]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t miss assertions. One test method should include at least one assertion, otherwise the test will always pass.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t add assertions in @Before/@BeforeClass/@After/@AfterClass methods.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Use assertions with an informative message.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(expected , actual);&lt;br /&gt;
assertNull(actual);&lt;br /&gt;
assertNotNull(actual);&lt;br /&gt;
assertTrue(actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;.&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(&amp;quot;actual should equals expected&amp;quot;, expected , actual);&lt;br /&gt;
assertNull(&amp;quot;actual should be null&amp;quot;, actual);&lt;br /&gt;
assertNotNull(&amp;quot;actual should not be null&amp;quot;, actual);&lt;br /&gt;
assertTrue(&amp;quot;actual should be true&amp;quot;, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t use assertTrue wrongly. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertTrue(&amp;quot;actual should be same with expected&amp;quot;, expected == actual);&lt;br /&gt;
assertTrue(&amp;quot;actual should equals expected&amp;quot;, expected.equals(actual));&lt;br /&gt;
assertTrue(&amp;quot;actual should be null&amp;quot;, actual == null);&lt;br /&gt;
assertTrue(&amp;quot;actual should not be null&amp;quot;, actual != null);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertSame(&amp;quot;actual should be same with expected&amp;quot;, expected, actual);&lt;br /&gt;
assertEquals(&amp;quot;actual should equals expected&amp;quot;, expected, actual);&lt;br /&gt;
assertNull(&amp;quot;actual should be null&amp;quot;, actual);&lt;br /&gt;
assertNotNull(&amp;quot;actual should not be null&amp;quot;, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Use assertArrayEquals instead of assertEquals for array data.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(&amp;quot;actual[0] should equals expected0&amp;quot;, expected0, actual[0]);&lt;br /&gt;
assertEquals(&amp;quot;actual[1] should equals expected1&amp;quot;, expected1, actual[1]);&lt;br /&gt;
assertEquals(&amp;quot;actual[2] should equals expected2&amp;quot;, expected2, actual[2]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String[] expected = {&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;};&lt;br /&gt;
String[] actual = someMethod();&lt;br /&gt;
assertArrayEquals(&amp;quot;actual should equals expected&amp;quot;, expected, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid negation in an assertTrue or assertFalse test.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertTrue(&amp;quot;not empty&amp;quot;, !r.isEmpty());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertFalse(&amp;quot;not empty&amp;quot;, r.isEmpty());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t catch unexpected exceptions.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testCalculation() {&lt;br /&gt;
    try {&lt;br /&gt;
        deepThought.calculate();&lt;br /&gt;
        assertEquals(&amp;quot;Calculation wrong&amp;quot;, 42, deepThought.getResult());&lt;br /&gt;
    }&lt;br /&gt;
    catch(CalculationException ex) {&lt;br /&gt;
        Log.error(&amp;quot;Calculation caused exception&amp;quot;, ex);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testCalculation() throw CalculationException {&lt;br /&gt;
    deepThought.calculate();&lt;br /&gt;
    assertEquals(&amp;quot;Calculation wrong&amp;quot;, 42, deepThought.getResult());&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid too complex test. Simple test is easy to understand and maintain. One test should not contain too many asserts. Consider breaking the test scenario into multiple, shorter test scenarios.  &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid external dependencies. Others can run test by a single command or a one button click without extra configurations. e.g. Data file should be placed in the svn with test code, so that newcomers don&amp;#039;t need to manually prepare it.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testFile() {&lt;br /&gt;
    String testFile = &amp;quot;C:\\test\\test.odt&amp;quot;;&lt;br /&gt;
    //Do test against on testFile&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testFile() {&lt;br /&gt;
    // test.odt is placed with test code together. Given a relative path, prepareData will return the file&amp;#039;s real absolute path.&lt;br /&gt;
    String testFile = prepareData(&amp;quot;test.odt&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Make test method indepdent, not affect or be affected by others. Test methods can be executed in any particular order. So do necessary setup/teardown in @Before/@BeforeClass/@After/@AfterClass method to avoid side effects.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Log the generated data when you use random. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Name tests properly. &amp;quot;testLoadFileFromServer&amp;quot; is better than a simple word &amp;quot;test&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Consider parameterized test if you want run the same steps against a bunch of different test data.Use @RunWith(value = Parameterized.class) on class to enable parameterized test. Use @Parameters annotation on one static method to generate a collection of parameters. Each parameter will be passed into class constructor during test.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Example&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
@RunWith(value = Parameterized.class)&lt;br /&gt;
public class ParameterizedTest {&lt;br /&gt;
&lt;br /&gt;
    private int number;&lt;br /&gt;
    public ParameterizedTest(int number) {&lt;br /&gt;
        this.number = number;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Parameters&lt;br /&gt;
    public static Collection&amp;lt;Object[]&amp;gt; data() {&lt;br /&gt;
        Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };&lt;br /&gt;
        return Arrays.asList(data);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    @Test&lt;br /&gt;
    public void testSteps() {&lt;br /&gt;
        // use number to do test&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best practice rules for GUI testing ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t directly use shortcut keys. Make them as an customized shortcut. Different platforms have different shortcuts for the same function. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t add unnecessary sleep. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.waitForExistence(5, 1); // The line is not necessary. &lt;br /&gt;
   //sleep(5); // The line is not necessary. &lt;br /&gt;
   control.click(); // The method impliedly does several times of sleep to wait the control to exist.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.click();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Test testing codes on all platforms before committing. OpenOffice may have different behaviors on different platforms. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t assert if a control exists, if the next operation imply the control must exist. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   assertTrue(&amp;quot;Control exists&amp;quot;, control.exists(5, 1));  // The line is not necessary. &lt;br /&gt;
   control.click(); // click method imply the control must exist, so you have add the verification point impliedly.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.click();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_rules&amp;diff=204636</id>
		<title>QA/test automation rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_rules&amp;diff=204636"/>
		<updated>2012-08-15T05:41:59Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Best practice rules for GUI testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Best Practice Rules for JUnit 4}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
== Best practice rules for JUnit 4 ==&lt;br /&gt;
{{Template:Documentation/Caution|MUST READ THE SECTION BEFORE COMMITTING AUTOMATION CODE}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Recommend to follow [http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html Java code conventions]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t miss assertions. One test method should include at least one assertion, otherwise the test will always pass.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t add assertions in @Before/@BeforeClass/@After/@AfterClass methods.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Use assertions with an informative message.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(expected , actual);&lt;br /&gt;
assertNull(actual);&lt;br /&gt;
assertNotNull(actual);&lt;br /&gt;
assertTrue(actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;.&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(&amp;quot;actual should equals expected&amp;quot;, expected , actual);&lt;br /&gt;
assertNull(&amp;quot;actual should be null&amp;quot;, actual);&lt;br /&gt;
assertNotNull(&amp;quot;actual should not be null&amp;quot;, actual);&lt;br /&gt;
assertTrue(&amp;quot;actual should be true&amp;quot;, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t use assertTrue wrongly. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertTrue(&amp;quot;actual should be same with expected&amp;quot;, expected == actual);&lt;br /&gt;
assertTrue(&amp;quot;actual should equals expected&amp;quot;, expected.equals(actual));&lt;br /&gt;
assertTrue(&amp;quot;actual should be null&amp;quot;, actual == null);&lt;br /&gt;
assertTrue(&amp;quot;actual should not be null&amp;quot;, actual != null);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertSame(&amp;quot;actual should be same with expected&amp;quot;, expected, actual);&lt;br /&gt;
assertEquals(&amp;quot;actual should equals expected&amp;quot;, expected, actual);&lt;br /&gt;
assertNull(&amp;quot;actual should be null&amp;quot;, actual);&lt;br /&gt;
assertNotNull(&amp;quot;actual should not be null&amp;quot;, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Use assertArrayEquals instead of assertEquals for array data.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(&amp;quot;actual[0] should equals expected0&amp;quot;, expected0, actual[0]);&lt;br /&gt;
assertEquals(&amp;quot;actual[1] should equals expected1&amp;quot;, expected1, actual[1]);&lt;br /&gt;
assertEquals(&amp;quot;actual[2] should equals expected2&amp;quot;, expected2, actual[2]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String[] expected = {&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;};&lt;br /&gt;
String[] actual = someMethod();&lt;br /&gt;
assertArrayEquals(&amp;quot;actual should equals expected&amp;quot;, expected, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid negation in an assertTrue or assertFalse test.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertTrue(&amp;quot;not empty&amp;quot;, !r.isEmpty());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertFalse(&amp;quot;not empty&amp;quot;, r.isEmpty());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t catch unexpected exceptions.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testCalculation() {&lt;br /&gt;
    try {&lt;br /&gt;
        deepThought.calculate();&lt;br /&gt;
        assertEquals(&amp;quot;Calculation wrong&amp;quot;, 42, deepThought.getResult());&lt;br /&gt;
    }&lt;br /&gt;
    catch(CalculationException ex) {&lt;br /&gt;
        Log.error(&amp;quot;Calculation caused exception&amp;quot;, ex);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testCalculation() throw CalculationException {&lt;br /&gt;
    deepThought.calculate();&lt;br /&gt;
    assertEquals(&amp;quot;Calculation wrong&amp;quot;, 42, deepThought.getResult());&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid too complex test. Simple test is easy to understand and maintain. One test should not contain too many asserts. Consider breaking the test scenario into multiple, shorter test scenarios.  &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid external dependencies. Others can run test by a single command or a one button click without extra configurations. e.g. Data file should be placed in the svn with test code, so that newcomers don&amp;#039;t need to manually prepare it.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testFile() {&lt;br /&gt;
    String testFile = &amp;quot;C:\\test\\test.odt&amp;quot;;&lt;br /&gt;
    //Do test against on testFile&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testFile() {&lt;br /&gt;
    // test.odt is placed with test code together. Given a relative path, prepareData will return the file&amp;#039;s real absolute path.&lt;br /&gt;
    String testFile = prepareData(&amp;quot;test.odt&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Make test method indepdent, not affect or be affected by others. Test methods can be executed in any particular order. So do necessary setup/teardown in @Before/@BeforeClass/@After/@AfterClass method to avoid side effects.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Log the generated data when you use random. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Name tests properly. &amp;quot;testLoadFileFromServer&amp;quot; is better than a simple word &amp;quot;test&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Consider parameterized test if you want run the same steps against a bunch of different test data.Use @RunWith(value = Parameterized.class) on class to enable parameterized test. Use @Parameters annotation on one static method to generate a collection of parameters. Each parameter will be passed into class constructor during test.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Example&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
@RunWith(value = Parameterized.class)&lt;br /&gt;
public class ParameterizedTest {&lt;br /&gt;
&lt;br /&gt;
    private int number;&lt;br /&gt;
    public ParameterizedTest(int number) {&lt;br /&gt;
        this.number = number;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Parameters&lt;br /&gt;
    public static Collection&amp;lt;Object[]&amp;gt; data() {&lt;br /&gt;
        Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };&lt;br /&gt;
        return Arrays.asList(data);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    @Test&lt;br /&gt;
    public void testSteps() {&lt;br /&gt;
        // use number to do test&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best practice rules for GUI testing ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t directly use shortcut keys. Make them as an customized shortcut. Different platforms have different shortcuts for the same function. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t add unnecessary sleep. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.waitForExistence(5, 1); // The line is not necessary. &lt;br /&gt;
   //sleep(5); // The line is not necessary. &lt;br /&gt;
   control.click(); // The method impliedly does several times of sleep to wait the control to exist.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.click();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Test testing codes on all platforms before committing. OpenOffice may have different behaviors on different platforms. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t assert if a control exists, if the next operation imply the control must exist. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   assertTrue(&amp;quot;Control exists&amp;quot;, control.exists(5, 1));  // The line is not necessary. &lt;br /&gt;
   control.click(); // click method imply the control must exist, so you have add the verification point impliedly.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.click();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/test_automation_rules&amp;diff=204635</id>
		<title>QA/test automation rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/test_automation_rules&amp;diff=204635"/>
		<updated>2012-08-15T05:37:44Z</updated>

		<summary type="html">&lt;p&gt;Liuzhe: /* Best practice rules for JUnit 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Best Practice Rules for JUnit 4}}&lt;br /&gt;
[[Category: Quality Assurance]]&lt;br /&gt;
[[Category: TestAutomation]]&lt;br /&gt;
&lt;br /&gt;
== Best practice rules for JUnit 4 ==&lt;br /&gt;
{{Template:Documentation/Caution|MUST READ THE SECTION BEFORE COMMITTING AUTOMATION CODE}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Recommend to follow [http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html Java code conventions]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t miss assertions. One test method should include at least one assertion, otherwise the test will always pass.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t add assertions in @Before/@BeforeClass/@After/@AfterClass methods.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Use assertions with an informative message.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(expected , actual);&lt;br /&gt;
assertNull(actual);&lt;br /&gt;
assertNotNull(actual);&lt;br /&gt;
assertTrue(actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;.&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(&amp;quot;actual should equals expected&amp;quot;, expected , actual);&lt;br /&gt;
assertNull(&amp;quot;actual should be null&amp;quot;, actual);&lt;br /&gt;
assertNotNull(&amp;quot;actual should not be null&amp;quot;, actual);&lt;br /&gt;
assertTrue(&amp;quot;actual should be true&amp;quot;, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t use assertTrue wrongly. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertTrue(&amp;quot;actual should be same with expected&amp;quot;, expected == actual);&lt;br /&gt;
assertTrue(&amp;quot;actual should equals expected&amp;quot;, expected.equals(actual));&lt;br /&gt;
assertTrue(&amp;quot;actual should be null&amp;quot;, actual == null);&lt;br /&gt;
assertTrue(&amp;quot;actual should not be null&amp;quot;, actual != null);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertSame(&amp;quot;actual should be same with expected&amp;quot;, expected, actual);&lt;br /&gt;
assertEquals(&amp;quot;actual should equals expected&amp;quot;, expected, actual);&lt;br /&gt;
assertNull(&amp;quot;actual should be null&amp;quot;, actual);&lt;br /&gt;
assertNotNull(&amp;quot;actual should not be null&amp;quot;, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Use assertArrayEquals instead of assertEquals for array data.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertEquals(&amp;quot;actual[0] should equals expected0&amp;quot;, expected0, actual[0]);&lt;br /&gt;
assertEquals(&amp;quot;actual[1] should equals expected1&amp;quot;, expected1, actual[1]);&lt;br /&gt;
assertEquals(&amp;quot;actual[2] should equals expected2&amp;quot;, expected2, actual[2]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String[] expected = {&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;};&lt;br /&gt;
String[] actual = someMethod();&lt;br /&gt;
assertArrayEquals(&amp;quot;actual should equals expected&amp;quot;, expected, actual);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid negation in an assertTrue or assertFalse test.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertTrue(&amp;quot;not empty&amp;quot;, !r.isEmpty());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
assertFalse(&amp;quot;not empty&amp;quot;, r.isEmpty());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t catch unexpected exceptions.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testCalculation() {&lt;br /&gt;
    try {&lt;br /&gt;
        deepThought.calculate();&lt;br /&gt;
        assertEquals(&amp;quot;Calculation wrong&amp;quot;, 42, deepThought.getResult());&lt;br /&gt;
    }&lt;br /&gt;
    catch(CalculationException ex) {&lt;br /&gt;
        Log.error(&amp;quot;Calculation caused exception&amp;quot;, ex);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testCalculation() throw CalculationException {&lt;br /&gt;
    deepThought.calculate();&lt;br /&gt;
    assertEquals(&amp;quot;Calculation wrong&amp;quot;, 42, deepThought.getResult());&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid too complex test. Simple test is easy to understand and maintain. One test should not contain too many asserts. Consider breaking the test scenario into multiple, shorter test scenarios.  &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Avoid external dependencies. Others can run test by a single command or a one button click without extra configurations. e.g. Data file should be placed in the svn with test code, so that newcomers don&amp;#039;t need to manually prepare it.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testFile() {&lt;br /&gt;
    String testFile = &amp;quot;C:\\test\\test.odt&amp;quot;;&lt;br /&gt;
    //Do test against on testFile&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void testFile() {&lt;br /&gt;
    // test.odt is placed with test code together. Given a relative path, prepareData will return the file&amp;#039;s real absolute path.&lt;br /&gt;
    String testFile = prepareData(&amp;quot;test.odt&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Make test method indepdent, not affect or be affected by others. Test methods can be executed in any particular order. So do necessary setup/teardown in @Before/@BeforeClass/@After/@AfterClass method to avoid side effects.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Log the generated data when you use random. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Name tests properly. &amp;quot;testLoadFileFromServer&amp;quot; is better than a simple word &amp;quot;test&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Consider parameterized test if you want run the same steps against a bunch of different test data.Use @RunWith(value = Parameterized.class) on class to enable parameterized test. Use @Parameters annotation on one static method to generate a collection of parameters. Each parameter will be passed into class constructor during test.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Example&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
@RunWith(value = Parameterized.class)&lt;br /&gt;
public class ParameterizedTest {&lt;br /&gt;
&lt;br /&gt;
    private int number;&lt;br /&gt;
    public ParameterizedTest(int number) {&lt;br /&gt;
        this.number = number;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Parameters&lt;br /&gt;
    public static Collection&amp;lt;Object[]&amp;gt; data() {&lt;br /&gt;
        Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };&lt;br /&gt;
        return Arrays.asList(data);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    @Test&lt;br /&gt;
    public void testSteps() {&lt;br /&gt;
        // use number to do test&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best practice rules for GUI testing ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t directly use shortcut keys. Make them as an customized shortcut. Different platforms have different shortcuts for the same function. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t add unnecessary sleep. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Test testing codes on all platforms before committing. OpenOffice may have different behaviors on different platforms. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rule.&amp;#039;&amp;#039;&amp;#039; Don&amp;#039;t assert if a control exists, if the next operation imply the control must exist. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Bad&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   assertTrue(&amp;quot;Control exists&amp;quot;, control.exists(5, 1));  // The line is not necessary. &lt;br /&gt;
   control.click(); // click method imply the control must exist, so you have add the verification point impliedly.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Good&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; &lt;br /&gt;
   //... some steps&lt;br /&gt;
   control.click();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liuzhe</name></author>
	</entry>
</feed>