[RSS]

UI Commit Validation Tests for Continuous NetBeans Build

This is description of UI functional tests which run as part of NetBeans continuous build. These tests should satisfy that new build is not corrupted. For every cluster exists a suite of tests which cover basic vital functionality. Each responsible engineer from the list below should be subscribed to broken_builds@netbeans.org mailing list. Test failures are reported by emails with subject "Hudson build became unstable: trunk #". Engineer should look at simple results and respond to the mailing list. For hints how to evaluate test results look at this document.

Test Suite Execution Rules

  • All developers have to execute commit validation test suite before committing their changes
  • If tests fail developers have to analyze the results and decide whether problem is in his code or in commit validation tests
  • If developer thinks the problem is in tests he has to file P1 issue for failing tests (use component: ide, subcomponent: commit validation) and wait for QE response. The current owner of commit validation tests is Ivan Sidorkin.
  • Responsible QE engineer has to respond during 24 hours (or on Monday in case test fails on Friday) and approve/disapprove commit
  • If QE does not respond in 24 hours developer can disable the test and commit his changes, and don't forget to email Ivan Sidorkin, so he can fix the test and enable it soon.

Clusters

CndAnchor

Cluster cnd
DescriptionCND cluster
Status OK Running on deadlock.
Locationcnd.kit/test/qa-functional/src/org/netbeans/test/cnd/CNDValidation.java
How to runant -f cnd.kit/build.xml -Dtest.config=commit test
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport/org.netbeans.test.cnd/
Responsible EngineerAlexander Pepin
Responsible ManagerJulie Guzzetta

EnterpriseAnchor

Cluster enterprise (soa, xml)
Description Enterprise cluster including soa and xml
StatusOK Running on deadlock.
Locationxml.schema/test/qa-functional/src/org/netbeans/test/xml/schema/AcceptanceTestCase.java
soa.kit/test/org/netbeans/test/qa-functional/src/xslt/AcceptanceTestCase.java
How to runant -f soa.kit/build.xml -Dtest.config=uicommit -Dcontinue.after.failing.tests=true test
ant -f xml.schema/build.xml -Dtest.config=uicommit -Dcontinue.after.failing.tests=true test
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport/org.netbeans.test.xml.schema/
http://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport/org.netbeans.test.xslt/
Responsible EngineerXML: Michael Nazarov
Responsible ManagerXML: Martin Balin

IdeAnchor

Cluster ide (java, nb, platform)
Description Standard !NetBeans IDE including ide, java, nb and platform clusters.
StatusOK Running on deadlock.
Locationjava.kit/test/qa-functional/src/org/netbeans/test/ide/IDEValidation.java
How to runant -f java.kit/build.xml -Dtest.config=commit -Dcontinue.after.failing.tests=true test
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport
Responsible EngineerIvan Sidorkin
Responsible ManagerPetr Blaha

IdentityAnchor

Cluster identity
DescriptionIdentity cluster.
Status ? Need to assign responsible engineer and create tests.
Location
How to run
Results
Responsible Engineer
Responsible Manager

JtwoeeAnchor

Cluster j2ee
DescriptionJ2EE cluster
StatusOK Running on deadlock.
Locationj2ee.kit/test/qa-functional/src/org/netbeans/test/j2ee/J2EEValidation.java
How to runant -f j2ee.kit/build.xml -Dtest.config=j2ee -Dcontinue.after.failing.tests=true -Dtest-qa-functional-sys-prop.com.sun.aas.installRoot=/<your_workdir>/glassfish test
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport/org.netbeans.test.j2ee/
Responsible EngineerIvan Sidorkin
Responsible ManagerPetr Blaha

MobilityAnchor

Cluster mobility
DescriptionMobility cluster
StatusOK Running on deadlock.
Locationmobility.project/test/qa-functional/src/org/netbeans/test/mobility/ValidationTest.java
How to runant -f mobility.project/build.xml -Dtest.config=uicommit -Dcontinue.after.failing.tests=true -Dwtk.dir=<path_to_wtk> test
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport/org.netbeans.test.mobility/
Responsible EngineerIvan Sidorkin
Responsible ManagerMarian Mirilovic

ProfilerAnchor

Cluster profiler
Description Profiler cluster
Status ! Only two basic test cases are running on deadlock.
Locationprofiler/test/qa-functional/src/org/netbeans/test/profiler/ProfilerValidation.java
How to runant -f profiler/build.xml -Dtest.config=commit -Dcontinue.after.failing.tests=true test
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport/org.netbeans.test.profiler/
Responsible EngineerIvan Sidorkin
Responsible ManagerMarian Mirilovic

RubyAnchor

Cluster ruby
DescriptionRuby cluster
StatusOK Running on deadlock.
Locationruby.kit/test/qa-functional/src/org/netbeans/test/ruby/RubyValidation.java
How to runant -f ruby.kit/build.xml -Dtest.config=ruby -Dcontinue.after.failing.tests=true test
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport/org.netbeans.test.ruby/
Responsible EngineerIvan Sidorkin
Responsible ManagerPetr Blaha

UmlAnchor

Cluster uml
DescriptionUML cluster
StatusX Not yet migrated.
Locationuml.kit/test/qa-functional/src/org/netbeans/test/uml/validation/UMLValidationTests.java
How to runant -f xtest/instance/build.xml -Dxtest.config=commit-validation-uml runtests
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/artifact/xtest/instance/results/index.html
Responsible Engineer-
Responsible Manager-

VisualwebAnchor

Cluster visualweb
DescriptionVisual web cluster
Status OK Running on deadlock.
Locationvisualweb.kit/test/qa-functional/src/org/netbeans/test/sanity/SanityTests.java
How to runant -f visualweb.kit/build.xml -Dtest.config=uicommit test (Detailed instructions)
Resultshttp://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/testReport
Responsible Engineer-
Responsible ManagerPetr Blaha

PHPAnchor

Cluster php
Description PHP cluster
StatusOK Running on deadlock.
Locationphp.editor/test/qa-functional/src/org/netbeans/test/php/Commit.java
How to runant -f php.editor/build.xml -Dtest.config=commit -Dcontinue.after.failing.tests=true test
Results
Responsible EngineerMichael Nazarov
Responsible ManagerMartin Balin

<!-- possible statuses ok OK warning ! question mark ? red X X -->

Infrastructure

NetBeans continuous build runs on Hudson server. Build is controlled by nbbuild/hudson/trunk script. To add tests for a new cluster you have to modify nbbuild/hudson/trunk. To add test for existing cluster you can modify nbbuild/project.properties file in your module. Similarly you can disable tests if you comment it out or remove it.

Special setup

  • GlassFish - for J2EE tests there is needed GlassFish application server. It is automatically installed and cleaned before every test run. It is controlled by nbbuild/hudson/initAppserver.sh script. There must exist an installer jar corresponding to AS_BINARY property in this script.
  • WTK - for mobility tests it is needed WTK. wtk.dir property set in nbbuild/hudson/trunk script points to /hudson. Zipped WTK must be in this directory and it has to be named exactly wtk22_linux.zip because it is hard coded in mobility.project/test/build-qa-functional.xml.

Run all tests at once

To run all tests at once you can use the following command:

ant commit-validation

To run only unit tests you can use the following command:

ant -Dtest.type="test-unit" commit-validation

Test results history

OBSOLETE, needs to be corrected.

To be able to track history of test failures, there is the testsHistory project. It runs after every successful trunk build. It copies results of tests into testsHistory workspace and prepares results to be processed by XTest PES. To setup testsHistory project do the following in your NetBeans working repository:

cd xtest
ant makedist
ant makedist-pes

Copy xtest/xtest-distribution.zip, xtest/pes/xtest-pes-distribution.zip, build.xml(info), pes-config.xml(info) and xtest-pes.sh(info) to /hudson/workdir/jobs/testsHistory and do the following on deadlock.netbeans.org:

cd /hudson/workdir/jobs/testsHistory
mkdir xtest-distribution
unzip -d xtest-distribution xtest-distribution.zip
mkdir xtest-pes
unzip -d xtest-pes xtest-pes-distribution.zip
rm *.zip
cp build.xml pes-config.xml xtest-pes
cp xtest-pes.sh xtest-pes/bin

Then configure Hudson project. You can see configuration config.xml(info). Also set to build testsHistory project after trunk project.

Test sandbox

OBSOLETE, needs to be corrected.

Project http://deadlock.netbeans.org/hudson/job/testsSandbox can be used to try new tests before you add them into official suite.

Important links and files

Attachments

build.xml Info on build.xml 4242 bytes
config.xml Info on config.xml 1719 bytes
pes-config.xml Info on pes-config.xml 690 bytes
xtest-pes.sh Info on xtest-pes.sh 6310 bytes