<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.meego.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.meego.com/index.php?title=Special:Contributions/Shaofeng&amp;feed=atom&amp;limit=50&amp;target=Shaofeng&amp;year=&amp;month=</id>
		<title>MeeGo wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.meego.com/index.php?title=Special:Contributions/Shaofeng&amp;feed=atom&amp;limit=50&amp;target=Shaofeng&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Shaofeng"/>
		<updated>2013-05-26T01:48:04Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-07-06T13:24:43Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some features.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some special scenario, regular expression is your friend&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature --name &amp;quot;^Cal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;Input URL into location bar&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:fail_to_open_web_site.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Contribution Guide ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Obviously, 2 short and simple steps are move easily to be re-used.&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
For instance, below step could be re-defined as a re-usable step.&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
As below,&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
For instance, below 2 steps could be merged&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
As below:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
7\ Global variable shouldn't be used in step-definition. All variables which are used in step definition should only work in the scope of one step.&lt;br /&gt;
Otherwise, the variable which is available in more than 1 steps will make the steps un-reusable.&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/shaofeng/MeeGo_1.2/home:shaofeng.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-22T01:03:03Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Contribution Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some features.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some special scenario, regular expression is your friend&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature --name &amp;quot;^Cal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;Input URL into location bar&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:fail_to_open_web_site.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Contribution Guide ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Obviously, 2 short and simple steps are move easily to be re-used.&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
For instance, below step could be re-defined as a re-usable step.&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
As below,&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
For instance, below 2 steps could be merged&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
As below:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
7\ Global variable shouldn't be used in step-definition. All variables which are used in step definition should only work in the scope of one step.&lt;br /&gt;
Otherwise, the variable which is available in more than 1 steps will make the steps un-reusable.&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-20T08:45:22Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Contribution Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some features.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some special scenario, regular expression is your friend&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature --name &amp;quot;^Cal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;Input URL into location bar&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:fail_to_open_web_site.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Contribution Guide ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
For instance, below step could be re-defined as a re-usable step.&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
As below,&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
For instance, below 2 steps could be merged&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
As below:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
7\ Global variable shouldn't be used in step-definition. All variables which are used in step definition should only work in the scope of one step.&lt;br /&gt;
Otherwise, the variable which is available in more than 1 steps will make the steps un-reusable.&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-20T08:43:33Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Contribution Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some features.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some special scenario, regular expression is your friend&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature --name &amp;quot;^Cal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;Input URL into location bar&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:fail_to_open_web_site.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Contribution Guide ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
7\ Global variable shouldn't be used in step-definition. All variables which are used in step definition should only work in the scope of one step.&lt;br /&gt;
Otherwise, the variable which is available in more than 1 steps will make the steps un-reusable.&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-20T08:34:09Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Test Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some features.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some special scenario, regular expression is your friend&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature --name &amp;quot;^Cal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;Input URL into location bar&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:fail_to_open_web_site.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Contribution Guide ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Fail_to_open_web_site.jpg</id>
		<title>File:Fail to open web site.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Fail_to_open_web_site.jpg"/>
				<updated>2011-06-20T08:31:56Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-20T08:31:14Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Test Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some features.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some special scenario, regular expression is your friend&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature --name &amp;quot;^Cal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:fail_to_open_web_site.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Contribution Guide ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-20T05:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Run existing test cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some features.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature&lt;br /&gt;
&lt;br /&gt;
If you just want to execute some special scenario, regular expression is your friend&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber features/meego_qml_calculator.feature --name &amp;quot;^Cal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Contribution Guide ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-18T05:56:16Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Contribution Guide ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-18T05:54:29Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
6\ It isn't recommend to define Ruby method in step-definition file.&lt;br /&gt;
&lt;br /&gt;
We recommend you define some small steps, and then the small one could be invoked in your big step, instead of Ruby method.&lt;br /&gt;
If you need to get the return from a Ruby method, maybe the &amp;quot;World&amp;quot; of cucumber is helpful which is defined under /feature/support/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-18T05:41:03Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ Using optional parameter to avoid duplicated steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  S1\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;$/ do |button_text|&lt;br /&gt;
  S2\ Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot; within &amp;quot;([^&amp;quot;]*)&amp;quot;$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button\(label\) &amp;quot;([^\&amp;quot;]*)&amp;quot;(?: within &amp;quot;([^&amp;quot;]*)&amp;quot;)?$/ do |button_text, container_id|&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-18T05:36:16Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step for the label which is shown on QML widget.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
4\ The identifier of QML widget should be defined as parameter in the definition of steps&lt;br /&gt;
&lt;br /&gt;
Bad example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the search button$/ do&lt;br /&gt;
&lt;br /&gt;
Good example:&lt;br /&gt;
&lt;br /&gt;
  Given /^I press the button &amp;quot;([^\&amp;quot;]*)&amp;quot; in meego application$/ do |button_id|&lt;br /&gt;
&lt;br /&gt;
5\ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-18T05:32:03Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\ Localization method should be referred in the definition of step.&lt;br /&gt;
&lt;br /&gt;
Below is a example to invoke the localization method to extract the translation info.&lt;br /&gt;
&lt;br /&gt;
  itemtext = MeegoLocalizationHelpers::getTranslation(@__sut, @app, &amp;quot;Find...&amp;quot;, &amp;quot;meego-app-browser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-18T05:24:23Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
You are welcome to contribute some test cases or cucumber steps into this project. For designing the cucumber steps on MeeGo QML applications, please keep it in mind that the step should be designed to be easily re-used in other test cases. For this purpose, something you need to notice.&lt;br /&gt;
&lt;br /&gt;
1\ A easily re-used steps should just take 1 action of user.&lt;br /&gt;
such as &amp;quot;tap a button&amp;quot;, &amp;quot;input a string&amp;quot;, or &amp;quot;launch an application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2\ Just verify 1 thing in 1 step.&lt;br /&gt;
Bad example: &amp;quot;I should received a mail with title &amp;quot;XXXXX&amp;quot;, and I can open the mail&amp;quot;&lt;br /&gt;
Above step should be defined as 2 steps a\&amp;quot;I should see a received mail with title &amp;quot;XXXX&amp;quot;&amp;quot;, b\ &amp;quot;I can open the mail &amp;quot;XXXXX&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3\&lt;br /&gt;
&lt;br /&gt;
To be completed&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-07T11:44:17Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Run existing test cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
 $&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-07T11:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Enabling Localization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; export RUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-07T11:43:03Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Enabling Localization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The language of sut and the table name of the translation info are set at here.&lt;br /&gt;
&lt;br /&gt;
3\ Connect to the sut device.&lt;br /&gt;
&lt;br /&gt;
4\ Execute below command to load the translation information which are deployed on the sut devices into MySQL.&lt;br /&gt;
&lt;br /&gt;
 $&amp;gt; expor tRUBYOPT=rubygems&lt;br /&gt;
 $&amp;gt; ruby create_localization_db_tables.rb&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-07T11:23:12Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Enabling Localization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- MySQL connection parameters for localization test --&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name.&lt;br /&gt;
&lt;br /&gt;
2\ copy below parameters into the configuration of sut&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;!-- SUT localization congfiguration --&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;language&amp;quot; value=&amp;quot;en-US&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;localisation_server_database_tablename&amp;quot; value=&amp;quot;tr_qt_default&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-07T08:49:46Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
=== Enabling Localization ===&lt;br /&gt;
TDriver support execute test cases with multiple languages. For enabling this feature in our testlib, please follow below steps.&lt;br /&gt;
&lt;br /&gt;
1\ copy below configurations into your tdriver_parameters.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_ip&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_username&amp;quot; value=&amp;quot;user&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_password&amp;quot; value=&amp;quot;password&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;parameter name=&amp;quot;localisation_server_database_name&amp;quot; value=&amp;quot;database_name&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
and fill the corresponding user/password/database_name&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-06-02T00:46:44Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, &lt;br /&gt;
&lt;br /&gt;
$&amp;gt;git clone http://git.gitorious.org/meego-quality-assurance/auto-ux-testlib.git&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:56:39Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Test Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
And the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:55:35Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Run existing test cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
Some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:55:05Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:54:42Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. Also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:54:08Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. Make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the cucumber steps of testlib are designed based on the attribute &amp;quot;QML_ID&amp;quot; of QML widget, the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; should be applied in the package &amp;quot;libqtdeclarative4&amp;quot; and &amp;quot;libqt-devel&amp;quot;. &lt;br /&gt;
We recommend you merge this patch and re-build the qt-related package for yourself.&lt;br /&gt;
Only if there are some problems to apply this patch, a temporary repository is available as a reference.&lt;br /&gt;
Follow below steps to update the qt-related packages &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Email_email_account_error_result.png</id>
		<title>File:Email email account error result.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Email_email_account_error_result.png"/>
				<updated>2011-05-31T13:36:14Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:35:33Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Test Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
[[File:email_email_account_error_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer yet. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Test Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
For instance, when the device isn't connected with internet, the test case &amp;quot;setting up email account&amp;quot; will fail. Then below snapshot will be captured automatically to help investigating this failure.&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer yet. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:23:28Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Test Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer yet. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:23:12Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:22:56Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Prepare your own scenarios (test cases) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer yet. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T13:21:52Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Test Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer yet. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T02:02:46Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;[[https://qt.gitorious.org/qt/qt/merge_requests/2592 Add public method to allow users to retrieve id string from object in a given context]]&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer yet. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T02:01:45Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;[[Add public method to allow users to retrieve id string from object in a given context https://qt.gitorious.org/qt/qt/merge_requests/2592 ]]&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer yet. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libXtst-devel libX11-devel libXext-devel libXi-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T01:57:45Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;[Add public method to allow users to retrieve id string from object in a given context https://qt.gitorious.org/qt/qt/merge_requests/2592]&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer yet. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libxtst-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T01:38:27Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
For enabling the &amp;quot;QML_ID&amp;quot; patch on TDriver side, the package agent_qt should also be re-compiled.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; git clone git://gitorious.org/tdriver/agent_qt.git&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqtwebkit-devel libxtst-devel&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; qmake -r CONFIG+=no_mobility CONFIG+=qml_id&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; make &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-31T01:31:52Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper in libqt-devel&lt;br /&gt;
&lt;br /&gt;
How to check if the patch is installed in your device.&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; vi /usr/include/qt4/QtDeclarative/qdeclarativecontext.h&lt;br /&gt;
&lt;br /&gt;
In 91 lines, below method should be announced.&lt;br /&gt;
 &lt;br /&gt;
      QString getStringId(const QObject *) const;&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T06:20:03Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Test Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically to help QA and developer to investigate what happen when the verification failed.&lt;br /&gt;
and the snapshot is named as &lt;br /&gt;
&lt;br /&gt;
xxxx_xxxxx.png&lt;br /&gt;
&lt;br /&gt;
First part is the name of the testing application, such as email, im, browser&lt;br /&gt;
Second part is a short description of the failed verification.&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T06:17:10Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Prepare your own scenarios (test cases) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Result ==&lt;br /&gt;
Beside the result of cucumber scripts, snapshot will also be captured automatically&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T06:11:38Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtcore4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdbus4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdeclarative4-particles-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtdesigner4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtgui4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqthelp4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtnetwork4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl-devel-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtopengl4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscript4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtscripttools4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsql4-sqlite-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtsvg4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqttest4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxml4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''libqtxmlpatterns4-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-debuginfo-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-demos-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-designer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-devel-tools-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmake-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
''qt-qmlviewer-4.7.2-8.18.i586.rpm''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T06:09:32Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
''libqt-devel-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtcore4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdbus4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdeclarative4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdeclarative4-particles-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdesigner4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtgui4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqthelp4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtnetwork4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtopengl-devel-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtopengl4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtscript4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtscripttools4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtsql4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtsql4-sqlite-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtsvg4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqttest4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtxml4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtxmlpatterns4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-debuginfo-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-demos-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-designer-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-devel-tools-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-qmake-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-qmlviewer-4.7.2-8.18.i586.rpm&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T06:08:31Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
&lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
Below is the updated package list:&lt;br /&gt;
&lt;br /&gt;
libqt-devel-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtcore4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdbus4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdeclarative4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdeclarative4-folderlistmodel-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdeclarative4-gestures-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdeclarative4-particles-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtdesigner4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtgui4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqthelp4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtnetwork4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtopengl-devel-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtopengl4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtscript4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtscripttools4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtsql4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtsql4-sqlite-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtsvg4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqttest4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtxml4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
libqtxmlpatterns4-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-debuginfo-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-demos-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-designer-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-devel-tools-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-qmake-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
qt-qmlviewer-4.7.2-8.18.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T05:43:47Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
Follow below steps to update the qt-related packages&lt;br /&gt;
$&amp;gt; cd /etc/zypp/repo.d/&lt;br /&gt;
$&amp;gt; wget http://download.meego.com/live/home:/cathysh/Trunk_Testing_standard/home:cathysh.repo &lt;br /&gt;
$&amp;gt; sudo zypper up&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T03:45:36Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Dependency */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
Because the patch &amp;quot;QML_ID&amp;quot; isn't accepted by neither Qt upstream, nor MeeGo QT maintainer. so we need to update the qt-related packages by ourselves. for the latest images, an OBS repository is available for this patch.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T03:39:03Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Run existing test cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
To be complete&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
=== Prepare your own scenarios (test cases) ===&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T03:37:46Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
To be complete&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Run existing test cases ===&lt;br /&gt;
some BAT test cases are also provided for MeeGo applications.&lt;br /&gt;
For running them, follow below steps:&lt;br /&gt;
$&amp;gt; cd &amp;lt;Testlib_HOME&amp;gt;&lt;br /&gt;
$&amp;gt; cucumber&lt;br /&gt;
&lt;br /&gt;
Besides running the existed test cases, you can also define your own scenario (test cases) using the predefined cucumber steps.&lt;br /&gt;
&lt;br /&gt;
For instance, you can define a new test cases for verifying if MeeGo browser can access a new web site (for instance, Amazon).&lt;br /&gt;
&lt;br /&gt;
  Scenario: Check if browser works for Amazon&lt;br /&gt;
    Given I launch meego browser&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    And I input &amp;quot;www.amazon.com&amp;quot; into &amp;quot;urlTextInput&amp;quot;&lt;br /&gt;
    And I sleep &amp;quot;5&amp;quot; second&lt;br /&gt;
    Then In meego browser, I should see &amp;quot;Amazon&amp;quot;&lt;br /&gt;
    And In meego browser, I should see &amp;quot;Sign in&amp;quot;&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T02:54:48Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine. &lt;br /&gt;
&lt;br /&gt;
Verifying if TDriver works well:&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; tdriver_visualizer &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Check if visualizer could connect to device via sut_qt.&lt;br /&gt;
&lt;br /&gt;
Verifying if Cucumber works well&lt;br /&gt;
&lt;br /&gt;
$&amp;gt; cucumber --help&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
For downloading this tools, just run &amp;quot;git clone ssh://...&amp;quot;(The git project is still under preparing)&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
To be complete&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
To be complete&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T02:35:59Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine.&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [http://cukes.info/ Cucumber Home site]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
To be complete&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
To be complete&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T02:35:37Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine.&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [[http://cukes.info/ Cucumber Home site]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
To be complete&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
To be complete&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/QA-tools/QmlUITestlib</id>
		<title>Quality/QA-tools/QmlUITestlib</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/QA-tools/QmlUITestlib"/>
				<updated>2011-05-30T02:34:40Z</updated>
		
		<summary type="html">&lt;p&gt;Shaofeng: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo QML UI Testlib =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''MeeGo QML UI Testlib''' is an open tool for testing against MeeGo QML GUI application automatically. The test framework is based on &amp;quot;TDriver&amp;quot;, and provide a set of pre-defined cucumber steps for designer to prepare test cases with natural language. and also BAT and L10N test cases of MeeGo QML UI applications are also involved in Testlib.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:testlib_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
BAT and L10N Test cases and a pre-defined library, in which many Cucumber steps are involved for covering all actions on MeeGo QML UI applications, are included in this Testlib.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This tool is based on cucumber and TDriver. make sure if TDriver and cucumber already work well on your machine.&lt;br /&gt;
&lt;br /&gt;
For TDriver installation, please refer to [[Quality/QA-tools/TDriver#Installation]]. For cucumber, please refer to [[http://cukes.info/]]&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
To be complete&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
To be complete&lt;/div&gt;</summary>
		<author><name>Shaofeng</name></author>	</entry>

	</feed>