From 33e181772f88435bd0db056bf407074525f80486 Mon Sep 17 00:00:00 2001 From: "ghendricks%novell.com" Date: Thu, 21 Jun 2007 20:55:10 +0000 Subject: [PATCH] Filter by environment throws SQL error. Reverted manual changes. git-svn-id: svn://10.0.0.236/trunk@228538 18797224-902f-48f8-a5cc-f745e15eee43 --- .../testopia/Bugzilla/Testopia/Search.pm | 6 + .../webtools/testopia/testopia/doc/Manual.odt | Bin 144856 -> 144642 bytes .../webtools/testopia/testopia/doc/Manual.pdf | Bin 386466 -> 384376 bytes .../webtools/testopia/testopia/doc/Manual.rtf | 508 ++++++++++++++++-- .../testopia/testopia/doc/Manual.xhtml | 4 +- 5 files changed, 462 insertions(+), 56 deletions(-) diff --git a/mozilla/webtools/testopia/Bugzilla/Testopia/Search.pm b/mozilla/webtools/testopia/Bugzilla/Testopia/Search.pm index 35a7a411e6e..a2b0c5735b6 100644 --- a/mozilla/webtools/testopia/Bugzilla/Testopia/Search.pm +++ b/mozilla/webtools/testopia/Bugzilla/Testopia/Search.pm @@ -505,6 +505,12 @@ sub init { "ON test_". $obj ."s.environment_id = test_environments.environment_id"); $f = 'test_environments.name'; }, + "^environment_name," => sub { + push(@supptables, + "INNER JOIN test_environments ". + "ON test_". $obj ."s.environment_id = test_environments.environment_id"); + $f = 'test_environments.name'; + }, "^plan_type," => sub { push(@supptables, "INNER JOIN test_plan_types ". diff --git a/mozilla/webtools/testopia/testopia/doc/Manual.odt b/mozilla/webtools/testopia/testopia/doc/Manual.odt index a49881e1bfc852ef6faf14a01d760430103056c6..577338b2c7e85d85ff5de476e297b72a0e82a8a0 100644 GIT binary patch delta 34928 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%0DDsd08mQ<1QY-W00;naes8z^3j*{D4RL;NHrc`4 zmW%`d0F1Z(7Xp0(4Q-iwIMaI^$G5MFLXAY3gfeSlo88Q6E~#W>BqYhsS~JO5I!Yaj zF3OQY^P}XFYvhEJOBAV*YsV2K$#ijC3OR{XoHKjusOLGq??124`~CZVp6~PhJg%7*wqUMnhaUz%T*du(?iD`iJe^CL{36?(}4^(=7i;attN*IEb`O4y;U)c>`K-g zvo7T3k)uAmD>1pEd~$TVLvIIp25Cl>Ykm&|{`PtoN^Lc6{Y& z=i1tDj}#~@T42Rn)W#{#RWfe$WNuPfyReJw!|gx2E^xWP>b`sOYE>^drH#_#ZtIWO z8c{`K#+Bm_sG;+H0jdX!=@+)zP*V{ved$KofoeC!%l2?r*BpHzxv)a}^&!ws>3n~X zr9D$MBxq=_%TM+d*qmDWzJ%&yQB=T)(u~Xu7$6A98W9t4q)_YEEkVkm7lX1{Bk$Dkbye;Ha5Pk`@Dg$=vZ6YND`}G zOH$U+Y52kD{fe;6ozr#`3;eWh`-@JfnX_Mq9oJ_ahiQqat&)LXLWo>}4nrc|9#?+9 zs8@M=@3ocDb-7cc?HaxJJl01g)F$*T{z|R!m{MGyy5o9In__O{L;CbG&iM0+O9+EK zEegz?9#^@w*JE{BX0q%mgn8Kwh=Dxg_RZu|l)%b?6ymt^nKb`rQFWvJJlRCoQ*~;;vHO`t9ojMU275Fk-d!}2w&aLyfyj7jAKIHSQi;A| z(~J4j`jpkh?Q2dS_ReTP?Ki7W^o#P^V2GVLcvCf%@831R4M>nAMGKP#Fg{q*Czs2k zduD#amBS|z8i!TzF0HDtwJ9ZWYy>n0Tc?OLBP$rhce4#Yf~>Gu0aaW*Y6fnI4o(j?SH z!sgR*fh;b2jDZD^WfIa95MI4>Sllw^M6&9f9 zDr-+uv>AKI``P!I`d%Wft{x=rCL20$am YKvR>+Sh#5RRc+}iRfNIFCO}&K3%Cvhy8r+H delta 35123 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
le&dc8|)*_ufwpUh|&67 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 Xu(7flSr~v-#RmEg4*k464D|mGl)7Yx delta 87873 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 YTvTv~hAOx?h^C=xX$gOwTSN8#0I+#?qW}N^ diff --git a/mozilla/webtools/testopia/testopia/doc/Manual.rtf b/mozilla/webtools/testopia/testopia/doc/Manual.rtf index eeca2326762..78f565f2e49 100644 --- a/mozilla/webtools/testopia/testopia/doc/Manual.rtf +++ b/mozilla/webtools/testopia/testopia/doc/Manual.rtf @@ -228,7 +228,7 @@ {\*\soutlvl{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'09.;}{\levelnumbers\'01;}\fi-360\li3960}}\listid17} }{\listoverridetable{\listoverride\listid1\listoverridecount0\ls0}{\listoverride\listid2\listoverridecount0\ls1}{\listoverride\listid3\listoverridecount0\ls2}{\listoverride\listid4\listoverridecount0\ls3}{\listoverride\listid5\listoverridecount0\ls4}{\listoverride\listid6\listoverridecount0\ls5}{\listoverride\listid7\listoverridecount0\ls6}{\listoverride\listid8\listoverridecount0\ls7}{\listoverride\listid9\listoverridecount0\ls8}{\listoverride\listid10\listoverridecount0\ls9}{\listoverride\listid11\listoverridecount0\ls10}{\listoverride\listid12\listoverridecount0\ls11}{\listoverride\listid13\listoverridecount0\ls12}{\listoverride\listid14\listoverridecount0\ls13}{\listoverride\listid15\listoverridecount0\ls14}{\listoverride\listid16\listoverridecount0\ls15}{\listoverride\listid17\listoverridecount0\ls16}} -{\info{\author Greg Hendricks}{\creatim\yr2007\mo2\dy26\hr14\min35}{\author Greg Hendricks}{\revtim\yr2007\mo6\dy14\hr16\min8}{\printim\yr1601\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709 +{\info{\author Greg Hendricks}{\creatim\yr2007\mo2\dy26\hr14\min35}{\author Greg Hendricks}{\revtim\yr2007\mo3\dy15\hr9\min51}{\printim\yr1601\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709 {\*\pgdsctbl {\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\headery0{\*\headeryb288\headerxl0\headerxr0\headeryh576}{\header \pard\plain \s14\cf0{\*\tlswg8236}\tqc\tx4680{\*\tlswg8236}\tqr\tx9360{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 \par } @@ -244,7 +244,7 @@ \titlepg\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc \pard\plain \ltrpar\s1\cf0\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af10\afs40\lang255\ab\ltrch\dbch\af8\langfe255\hich\f0\fs40\lang1033\b\loch\f0\fs40\lang1033\b \par -\pard\plain\absw3198\absh3945\pvpara\posy438\phcol\posx3387{\*\flymaincnt69\flyvert57792\flyhorz57344\flyanchor0\flycntnt}{\pict\picscalex45\picscaley45\piccropl0\piccropr0\piccropt0\piccropb0\picw415\pich512\picwgoal7031\pichgoal8674\wmetafile8 +\pard\plain\absw3198\absh3945\pvpara\posy438\phcol\posx3387{\*\flymaincnt69\flyvert47872\flyhorz47616\flyanchor0\flycntnt}{\pict\picscalex45\picscaley45\piccropl0\piccropr0\piccropt0\piccropb0\picw415\pich512\picwgoal7031\pichgoal8674\wmetafile8 89504e470d0a1a0a0000000d494844520000019f000002000802000000d258f6c80000000467414d410000d6d8d44f58320000001974455874536f6674776172 650041646f626520496d616765526561647971c9653c0000bbfb4944415478daecbd097c1465b6375cb2242464c3209b8480422241137604c7c0cc85302e89df 1d09a3af1fc816aea3c038409cf79d0191e57a7f0af22a8bd72bb208d761c6a0df352033a2d74be2b80002260e61883a12093b4867214000fd4ed7499e3ca9f5 @@ -1176,9 +1176,9 @@ prehensive open source test management system and once up and running provides e \par \pard\plain \sb240\sa120\keepn\f2\fs21\b\fs21\b\fs21\b \ltrpar\s10\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs21\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs21\lang1033\b\loch\f2\fs21\lang1033\b {\rtlch \ltrch\loch\f2\fs21\lang1033\i0\b Client} \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 Firefox \tab \tab 2.0+\tab \tab \tab \tab {\field{\*\fldinst HYPERLINK "http://getfirefox.com/" }{\fldrslt \*\cs37\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 http://getfirefox.com}}} \par \pard\plain \sb240\sa120\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \ltrpar\s5\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs28\lang255\ai\ab\ltrch\dbch\langfe255\hich\f2\fs28\lang1033\i\b\loch\f2\fs28\lang1033\i\b {\rtlch \ltrch\loch\f2\fs28\lang1033\i\b What You Need to Know} -\par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 As our development has moved forward, we have decided to try to keep abreast of the latest stable release from Bugzilla (currently 3.0). This gives us a stable code base to work from. Developing plugins or extensions for any software is like trying to hit -a moving target. This decision allows us to focus our time more on releasing new features often and early rather than back porting. However, this means that most major feature will not be back ported to earlier versions unless and until we have time to do -so. Anyone wishing to help in this effort is more than welcome.} +\par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 As our development has moved forward, we have decided to try to keep abreast of the latest stable release from Bugzilla (currently 2.22). This gives us a stable code base to work from. Developing plugins or extensions for any software is like trying to hit + a moving target. This decision allows us to focus our time more on releasing new features often and early rather than back porting. However, this means that most major feature will not be back ported to earlier versions unless and until we have time to do + so. Anyone wishing to help in this effort is more than welcome.} \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 Though Bugzilla officially supports MySQL and Postgres databases, Testopia has only been tested with MySQL. Patches are welcome to make Testopia Postgres compliant.} \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 Likewise, Testopia has only been thoroughly tested using Firefox browsers. This is not because we don't care about other browser platforms, but because we lack the time and resources to attempt thorough testing in other browsers. Testopia should run fine o n mast modern browsers. If issues arise however, please log them at bugzilla.mozilla.org } @@ -1246,7 +1246,7 @@ of testing.} \par \pard\plain \sb240\sa120\keepn\f2\fs32\b\fs32\b\fs32\b \ltrpar\s4\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs32\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs32\lang1033\b\loch\f2\fs32\lang1033\b {\rtlch \ltrch\loch\f2\fs32\lang1033\i0\b Getting Started} \par \pard\plain \sb240\sa120\keepn\f2\fs28\b\fs28\b\fs28\b \ltrpar\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs28\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs28\lang1033\b\loch\f2\fs28\lang1033\b {\rtlch \ltrch\loch\f2\fs28\lang1033\i0\b The Big Picture} \par -\pard\plain\absw8988\absh7305\pvpara\posyt\phcol\posxc{\*\flymaincnt69\flyvert53985\flyhorz26114\flyanchor0\flycntnt}{\pict\picscalex83\picscaley80\piccropl0\piccropr0\piccropt0\piccropb0\picw636\pich536\picwgoal10775\pichgoal9080\wmetafile8 +\pard\plain\absw8988\absh7305\pvpara\posyt\phcol\posxc{\*\flymaincnt69\flyvert44225\flyhorz3074\flyanchor0\flycntnt}{\pict\picscalex83\picscaley80\piccropl0\piccropr0\piccropt0\piccropb0\picw636\pich536\picwgoal10775\pichgoal9080\wmetafile8 89504e470d0a1a0a0000000d494844520000027c000002180806000000f788311a00000006624b474400ff00ff00ffa0bda7930000000774494d4507d7021c13 0618f8b61f890000200049444154789cecdd777c8de7ffc7f1d7c95e24f6a84ab4411012238908d15a29822636b1b71655a36a537b7f512368edd4aed9d214b5 236285d88a224210d9fbfcfef0cb69edec3be7e4f37c3c3c1e39e7dce39ddbc97d3ee7baaffbba546ab55a8d1042082184d059061f5a60d265dfdcc821841042 @@ -2000,9 +2000,8 @@ iteration is called a build. Builds are often associated with milestones of the t least one build for your product before you can begin a test run.} \par \pard\plain \sb240\sa120\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \ltrpar\s5\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs28\lang255\ai\ab\ltrch\dbch\langfe255\hich\f2\fs28\lang1033\i\b\loch\f2\fs28\lang1033\i\b {\rtlch \ltrch\loch\f2\fs28\lang1033\i\b Test Case-Runs} \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 A test case-run is the record of how a particular test case fared in a particular run for a given build in a given environment. When you create a test run, records for each test case in that run are created. By default these take on the build and environme -nt of the test run. Once a run has started and a new build comes along, you can add a test case with this new build to the run. This is in addition to any other instances of the test case that might already exist in the run. The same can be done for new en -vironments This is desirable in situations where most test cases are fairly generic in environmental scope but single test cases might require specific conditions. It also aids in iterative testing as each test case then be updated in a single run rather t -han having to create new runs to test the failed cases.} +nt of the test run, however, it is possible to change these attributes on a particular case-run, essentially creating a new case-run for each combination. This is desirable in situations where most test cases are fairly generic in environmental scope but s +ingle test cases might require specific conditions. It also aids in iterative testing as each test case then be updated in a single run rather than having to create new runs to test the failed cases.} \par \pard\plain \sb240\sa120\keepn\f2\fs32\b\fs32\b\fs32\b \ltrpar\s4\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs32\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs32\lang1033\b\loch\f2\fs32\lang1033\b {\rtlch \ltrch\loch\f2\fs32\lang1033\i0\b Testing In Testopia} \par \pard\plain \sb240\sa120\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \ltrpar\s5\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs28\lang255\ai\ab\ltrch\dbch\langfe255\hich\f2\fs28\lang1033\i\b\loch\f2\fs28\lang1033\i\b {\rtlch \ltrch\loch\f2\fs28\lang1033\i\b Start With a Plan} \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 All testing should start with a test plan. In most cases this will take the form of a document that details the purpose, structure, and methods that will be employed in testing. The IEEE has put together a standard document template for test plans (IEEE St @@ -2132,11 +2131,8 @@ ents in your product. } \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 Below this section you will see the Test Case Run Logs. This table represents the test cases you will be testing each row represents a single case-run. You will notice the expander arrows next to each row in the table. Click on this to expand the case-run form. Take note of the {\b Filter} and {\b Report} expanders as well. You can use the filter much like you did when choosing the test cases to include in your run, except this provides more options for narrowing the list of case runs visible at a time.} \par \pard\plain \sb240\sa120\keepn\f2\fs23\b\fs23\b\fs23\b \ltrpar\s8\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs23\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs23\lang1033\b\loch\f2\fs23\lang1033\b {\rtlch \ltrch\loch\f2\fs23\lang1033\i0\b Adding Cases} -\par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 There are two ways to add test cases to your test run. The first deals with adding test cases that are not already part of this run but are in the test plan the run belongs to. You do this by clicking the {\b Add Cases} button below the case-run table. This wil -l take you back to the list of test cases you saw when creating your test run excluding any test cases in your plan that are already in this run. } -\par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 The second method deals with adding a second (or third or more) instance of a test case with a different build and/or environment combination. To do this, enter the test case ID's separated by commas in the box above the table but below the filter. You the -n select a build and an environment from the available drop-down lists and click the New Case-Run button. You also have the option of adding them from a list, similar to above, except that test cases that are currently part of the run will be included. Do -this by clicking the {\ul\ulc0 Add several at once}{\ulnone\ulc0 link.}} +\par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 As mentioned earlier, you can add test cases to your run by clicking the {\b Add Cases} button below the case-run table. This will take you back to the list of test cases you saw when creating your test run excluding any test cases in your plan that are already + in this run. } \par \pard\plain \sb240\sa120\keepn\f2\fs23\b\fs23\b\fs23\b \ltrpar\s8\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs23\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs23\lang1033\b\loch\f2\fs23\lang1033\b {\rtlch \ltrch\loch\f2\fs23\lang1033\i0\b Editing Test Run Fields} \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 As with test cases and test plans, you can update any of the values you applied when you created the test run in the form at the bottom of the page. Note that changing the build and environment will not affect the case-runs already in the run but it will a pply to any test cases added after the change. Changes to these fields are tracked and a history is kept much the same way as with test plans and test cases. Clicking the {\b History} button will display this history.} @@ -2162,19 +2158,105 @@ the }{\b Index}{\b0 fields and click }{\b Change}{\b0 . Sorting on this field w \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 Currently Testopia only supports ascending sorts. Support for descending sorts are planned for future releases.} \par \pard\plain \sb240\sa120\keepn\f2\fs23\b\fs23\b\fs23\b \ltrpar\s8\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs23\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs23\lang1033\b\loch\f2\fs23\lang1033\b {\rtlch \ltrch\loch\f2\fs23\lang1033\i0\b Passing and Failing Test Cases} \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 Once you are ready to begin testing, expand the first test case in your list and read the {\b Action} and {\b Expected Results}{\b0 for this case. You can then perform the test. If the expected outcome is achieved you can pass the test by clicking the green check or }{\b PAS -SED}{\b0 button: {\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw14\pich14\picwgoal237\pichgoal237\pngblip -89504e470d0a1a0a}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw14\pich14\picwgoal237\pichgoal237\wmetafile8 -0100090000036900000010001c0000000000050000000b0200000000050000000c020000000004000000020101000400000004010d0008000000fa0200000000 +SED}{\b0 button: {\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw14\pich14\picwgoal237\pichgoal237\wmetafile8 +010009000003f40200001000920200000000050000000b0200000000050000000c020e000e0004000000020101000400000004010d0008000000fa0200000000 000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103000700 -0000430f2000cc00000000000300000000000000000000000000}} +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103009202 +0000430f2000cc0000000e000e00000000000e000e0000000000280000000e0000000e0000000100080000000000e00000000000000000000000000100000000 +00000c6f0c0073aa73000000ff00dee8de00398b3900a5c1a5005998590028762800ffffff00bacfba0095b99500227122004b8b4b0066996600307e30001972 +190084b68400f0f4f000d4e1d400b2cab20079a779003c7f3c0098c29800126f120066996600538e5300418d4100d1dfd1002d822d00adcead007caa7c008dbb +8d004485440099c299004a924a00207b2000137413003385330008730800287e280094bf940066a466005a9c5a00d7e4d7006ca56c00429442003b833b004f96 +4f00b5d3b500a8c4a8007bb57b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff00080808032f0f00000f2f03080808000008082c24231c25251c23242c08080000082c242325041a221a2523242c080000032423250c0a0c1a222204232403 +00002f24070c1108081f0e1a1a1c242f00000f172c080808080831070e270f0f0000002e0808081311080805070f0f000000002e08081417151108081b0b1700 +00000f0f19190e270b20030808120b0f00002f27062c2c292906192b08081e2200000327291f161616161f14092b2e12000008012d32051d30301d162c2e2c08 +00000808011a2910282810291a0108080000080808032a040404042a030808080000030000000000}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw14\pich14\picwgoal237\pichgoal237\wmetafile8 +010009000003f40200001000920200000000050000000b0200000000050000000c020e000e0004000000020101000400000004010d0008000000fa0200000000 +000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103009202 +0000430f2000cc0000000e000e00000000000e000e0000000000280000000e0000000e0000000100080000000000e00000000000000000000000000100000000 +00000c6f0c0073aa73000000ff00dee8de00398b3900a5c1a5005998590028762800ffffff00bacfba0095b99500227122004b8b4b0066996600307e30001972 +190084b68400f0f4f000d4e1d400b2cab20079a779003c7f3c0098c29800126f120066996600538e5300418d4100d1dfd1002d822d00adcead007caa7c008dbb +8d004485440099c299004a924a00207b2000137413003385330008730800287e280094bf940066a466005a9c5a00d7e4d7006ca56c00429442003b833b004f96 +4f00b5d3b500a8c4a8007bb57b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff00080808032f0f00000f2f03080808000008082c24231c25251c23242c08080000082c242325041a221a2523242c080000032423250c0a0c1a222204232403 +00002f24070c1108081f0e1a1a1c242f00000f172c080808080831070e270f0f0000002e0808081311080805070f0f000000002e08081417151108081b0b1700 +00000f0f19190e270b20030808120b0f00002f27062c2c292906192b08081e2200000327291f161616161f14092b2e12000008012d32051d30301d162c2e2c08 +00000808011a2910282810291a0108080000080808032a040404042a030808080000030000000000}} .}} -\par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 If the results were not expected or an error occurred, you can fail the test by clicking the red X or {\b FAILED} button: {\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw14\pich14\picwgoal237\pichgoal237\pngblip -89504e470d0a1a0a}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw14\pich14\picwgoal237\pichgoal237\wmetafile8 -0100090000036900000010001c0000000000050000000b0200000000050000000c020000000004000000020101000400000004010d0008000000fa0200000000 +\par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 If the results were not expected or an error occurred, you can fail the test by clicking the red X or {\b FAILED} button: {\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw14\pich14\picwgoal237\pichgoal237\wmetafile8 +010009000003f40200001000920200000000050000000b0200000000050000000c020e000e0004000000020101000400000004010d0008000000fa0200000000 000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103000700 -0000430f2000cc00000000000300000000000000000000000000}} +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103009202 +0000430f2000cc0000000e000e00000000000e000e0000000000280000000e0000000e0000000100080000000000e00000000000000000000000000100000000 +00000909f80000ff0000d5d5f7006b6bee004242f7002626f8007b7bf300f6f6f6005e5ef2000000ff008b8bf8004949fd009090f1001919f8000d0dfe007575 +f000a6a6fe003030f6006464f8001111f6005252fb007373f6008282f400dcdcf7003333ff006262ee006969f8003f3ffc006666ff007676fd007c7cf4004f4f +fd008888ff009595f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff00ffffff021f111111111f02ffffff0000ffff120d111b0b0b1b110d12ffff0000ff120d1603041f1f0403160d12ff000017001e07070f11110f07071e0017 +0000040008070707030307070708000400000e0913030707070707070313090e00000909090019070707071900090909000009090e13190707070719130e0909 +00000e0e050f0707070707070f050e0e0000040d150707071616070707150d040000170d0307070c15150c0707030d170000ff1a1106210a10100a2106111aff +0000ffff1a11141d20201d14111affff0000ffffff1714111111111417ffffff0000030000000000}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw14\pich14\picwgoal237\pichgoal237\wmetafile8 +010009000003f40200001000920200000000050000000b0200000000050000000c020e000e0004000000020101000400000004010d0008000000fa0200000000 +000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103009202 +0000430f2000cc0000000e000e00000000000e000e0000000000280000000e0000000e0000000100080000000000e00000000000000000000000000100000000 +00000909f80000ff0000d5d5f7006b6bee004242f7002626f8007b7bf300f6f6f6005e5ef2000000ff008b8bf8004949fd009090f1001919f8000d0dfe007575 +f000a6a6fe003030f6006464f8001111f6005252fb007373f6008282f400dcdcf7003333ff006262ee006969f8003f3ffc006666ff007676fd007c7cf4004f4f +fd008888ff009595f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff00ffffff021f111111111f02ffffff0000ffff120d111b0b0b1b110d12ffff0000ff120d1603041f1f0403160d12ff000017001e07070f11110f07071e0017 +0000040008070707030307070708000400000e0913030707070707070313090e00000909090019070707071900090909000009090e13190707070719130e0909 +00000e0e050f0707070707070f050e0e0000040d150707071616070707150d040000170d0307070c15150c0707030d170000ff1a1106210a10100a2106111aff +0000ffff1a11141d20201d14111affff0000ffffff1714111111111417ffffff0000030000000000}} .} \par \pard\plain \ltrpar\s2\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sa120\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 Explanations of the other statuses appear at the end of this document.} \par \pard\plain \sb240\sa120\keepn\f2\fs23\b\fs23\b\fs23\b \ltrpar\s8\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs23\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs23\lang1033\b\loch\f2\fs23\lang1033\b {\rtlch \ltrch\loch\f2\fs23\lang1033\i0\b Adding Notes} @@ -2467,47 +2549,365 @@ Click Add to associate the selected component with the test case.} \par \pard\plain \sb240\sa120\keepn\f2\fs28\b\fs28\b\fs28\b \ltrpar\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\sb240\sa120\keepn\ql\rtlch\afs28\lang255\ab\ltrch\dbch\langfe255\hich\f2\fs28\lang1033\b\loch\f2\fs28\lang1033\b {\rtlch \ltrch\loch\f2\fs28\lang1033\i0\b Test Case-Runs} \par \pard\plain \ltrpar\s33\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs28\lang1033\i\b\loch\f0\fs28\lang1033\i\b {\rtlch \ltrch\loch\f0\fs28\lang1033\i\b Status} \par \pard\plain \ltrpar\s13\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\li360\ri0\lin360\rin0\fi-360\sa240\ql\rtlch\af11\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 {\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 \tab The status of a case-run determined by whether it passed or failed or is in some other state.} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\li424\ri0\lin424\rin0\fi0\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\pngblip -89504e470d0a1a0a}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 -0100090000036900000010001c0000000000050000000b0200000000050000000c020000000004000000020101000400000004010d0008000000fa0200000000 +\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\li424\ri0\lin424\rin0\fi0\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103000700 -0000430f2000cc00000000000300000000000000000000000000}} +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +000099333300cc9999000000ff00a6585800ecd8d800b67474009d4a4a00dabbbb00ffffff00973e3e00bd858500d2acac00ad656500e6cece00a04f4f00f2ee +ee00c08b8b00953a3a00efe7e700ad6a6a00b97a7a00a1424200d6b4b400e8d8d800dec4c400aa535300d1a5a500c7929200a54a4a00ad5a5a00f5eded00eedf +df0099333300b46b6b009d3a3a009f424200bd7c7c00c2868600faf4f400dbb7b700b5636300c28b8b00eadddd00a5525200e3c9c900ddbcbc00d4adad00f7e6 +e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000808080808081216240c1d03030c24161f08080808080800080808080f2e0c2b2b03030303030303212e120808080800080808170a032b031d1d1d1d1d1d +1d1d2b2b0a2a0808080008082a140e0e1d1d1d1d2501211d1d1d1d2b2b240f080800080f240606191d1d190d080808141d1d1d1d1c06250f0800080b06061c19 +1919190808080801191919191906062e0800120c09151c2b2b2b2b2926080d192b2b2b2b1c1c09130f00270622151c1c1c1c1c1c2323231c1c1c1c1c1c151106 +1800240922221515151515250d0d0d15151515151515220910001d1122222222222222010808082b22222222222222110c000e00222222222222220508080816 +22222222222222002b00060000000000000000002c0808082d230000000000002b002b0000222215151515221504080808041915152222002b001d111115191d +1d1d1919191c2e080808121d191522220c002409091d21210c0c0c2121210c1b0808081a211d22090a0016060605241808081f050a0a0a0c0808082e24052306 +0700120c0e241b1a0808082c252425180808081a1b240e131200080b03141a01040808080808080808081f1b1a1403160800080f0a1301271a18080808080808 +08181a270113100f080008080f0a0a2e2c2d160d2608081e2e2d182e0a29120808000808081f1b0a1a180d2c182d182d2c181a0a011208080800080808080f16 +24101a27182c18161a100a270f08080808000808080808080f072505050505051b2d0f08080808080800030000000000}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 +000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +000099333300cc9999000000ff00a6585800ecd8d800b67474009d4a4a00dabbbb00ffffff00973e3e00bd858500d2acac00ad656500e6cece00a04f4f00f2ee +ee00c08b8b00953a3a00efe7e700ad6a6a00b97a7a00a1424200d6b4b400e8d8d800dec4c400aa535300d1a5a500c7929200a54a4a00ad5a5a00f5eded00eedf +df0099333300b46b6b009d3a3a009f424200bd7c7c00c2868600faf4f400dbb7b700b5636300c28b8b00eadddd00a5525200e3c9c900ddbcbc00d4adad00f7e6 +e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000808080808081216240c1d03030c24161f08080808080800080808080f2e0c2b2b03030303030303212e120808080800080808170a032b031d1d1d1d1d1d +1d1d2b2b0a2a0808080008082a140e0e1d1d1d1d2501211d1d1d1d2b2b240f080800080f240606191d1d190d080808141d1d1d1d1c06250f0800080b06061c19 +1919190808080801191919191906062e0800120c09151c2b2b2b2b2926080d192b2b2b2b1c1c09130f00270622151c1c1c1c1c1c2323231c1c1c1c1c1c151106 +1800240922221515151515250d0d0d15151515151515220910001d1122222222222222010808082b22222222222222110c000e00222222222222220508080816 +22222222222222002b00060000000000000000002c0808082d230000000000002b002b0000222215151515221504080808041915152222002b001d111115191d +1d1d1919191c2e080808121d191522220c002409091d21210c0c0c2121210c1b0808081a211d22090a0016060605241808081f050a0a0a0c0808082e24052306 +0700120c0e241b1a0808082c252425180808081a1b240e131200080b03141a01040808080808080808081f1b1a1403160800080f0a1301271a18080808080808 +08181a270113100f080008080f0a0a2e2c2d160d2608081e2e2d182e0a29120808000808081f1b0a1a180d2c182d182d2c181a0a011208080800080808080f16 +24101a27182c18161a100a270f08080808000808080808080f072505050505051b2d0f08080808080800030000000000}} {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 - {\b IDLE}: This is the default status. Case has not yet been examined.} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\pngblip -89504e470d0a1a0a}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 -0100090000036900000010001c0000000000050000000b0200000000050000000c020000000004000000020101000400000004010d0008000000fa0200000000 +\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103000700 -0000430f2000cc00000000000300000000000000000000000000}} +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +00000c700c007bb27b000000ff00dee8de0044914400aac5aa002a822a0066996600ffffff00c5d8c5009cc59c00438443002073200074a37400549654003b86 +3b008eb88e00eff1ef0017731700b5d1b500d3e2d3007ba87b00669966002a762a00a2c1a200e7eee700318431004a894a000d610d005b935b004a934a0094b7 +9400bad6ba0084b58400cee1ce00127212003a8b3a006da96d0084ad840020782000a6cba600f6f6f60064a36400b6d3b60073ad7300dfecdf00d7e5d700589b +580096c09600418d41001a781a006ba66b00aecdae008cbb8c004f8d4f00318c310053995300297b2900106c1000a4c7a400c7ddc70078aa7800000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000808080808081928331e0424241e33282d0808080808080008080808193b1e2424310404040424242f3b19080808080008080814252424311e1e3838381e +1e3124242c2e0808080008082e2a1a24041e1e3838383838381e04241a2a19080800081133061a31041e1e1e1e1e1e1e1e1e1e311a062c190800080a06062431 +31310f0f0f313131313131312406063b0800190427061a24242410090d391a0f242424241a06273819003439123939390f14080808141b391a1a1a1a1a271206 +20002a321227270b110808080808110b39393939392712323d00312323231d110808080808080811360c0c0c0c1223231e0006003a1708080808080308080808 +08072312121223001a0006003a26080808081f1c180808080808073a232323001a001a00231d080808330c0c0c070808080808050c0c23001a0031121239331f +36313131310f0d0808080808050c323204002a2727310e073333332a2a2a2f3311080808082627272500051a1a2f2c21212121212121213d0d110808083c391a +34001938242a210a0a0a0a0a0a0a0a0a10262e0808151a3819000818042a1034132b2b2b2b2b2b2b2b05101f262f043b080008193d2f21340922222222222222 +22220928212f01110800080811012c3020222e2d1919192d2e2220302c21190808000808082d350130133c14030303143c133001302d08080800080808081134 +3d01350a2828280a35010113110808080800080808080808112b21252525252535201108080808080800030000000000}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 +000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +00000c700c007bb27b000000ff00dee8de0044914400aac5aa002a822a0066996600ffffff00c5d8c5009cc59c00438443002073200074a37400549654003b86 +3b008eb88e00eff1ef0017731700b5d1b500d3e2d3007ba87b00669966002a762a00a2c1a200e7eee700318431004a894a000d610d005b935b004a934a0094b7 +9400bad6ba0084b58400cee1ce00127212003a8b3a006da96d0084ad840020782000a6cba600f6f6f60064a36400b6d3b60073ad7300dfecdf00d7e5d700589b +580096c09600418d41001a781a006ba66b00aecdae008cbb8c004f8d4f00318c310053995300297b2900106c1000a4c7a400c7ddc70078aa7800000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000808080808081928331e0424241e33282d0808080808080008080808193b1e2424310404040424242f3b19080808080008080814252424311e1e3838381e +1e3124242c2e0808080008082e2a1a24041e1e3838383838381e04241a2a19080800081133061a31041e1e1e1e1e1e1e1e1e1e311a062c190800080a06062431 +31310f0f0f313131313131312406063b0800190427061a24242410090d391a0f242424241a06273819003439123939390f14080808141b391a1a1a1a1a271206 +20002a321227270b110808080808110b39393939392712323d00312323231d110808080808080811360c0c0c0c1223231e0006003a1708080808080308080808 +08072312121223001a0006003a26080808081f1c180808080808073a232323001a001a00231d080808330c0c0c070808080808050c0c23001a0031121239331f +36313131310f0d0808080808050c323204002a2727310e073333332a2a2a2f3311080808082627272500051a1a2f2c21212121212121213d0d110808083c391a +34001938242a210a0a0a0a0a0a0a0a0a10262e0808151a3819000818042a1034132b2b2b2b2b2b2b2b05101f262f043b080008193d2f21340922222222222222 +22220928212f01110800080811012c3020222e2d1919192d2e2220302c21190808000808082d350130133c14030303143c133001302d08080800080808081134 +3d01350a2828280a35010113110808080800080808080808112b21252525252535201108080808080800030000000000}} {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 - {\b PASSED}: This test case met the requirement or ran as expected.} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\pngblip -89504e470d0a1a0a}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 -0100090000036900000010001c0000000000050000000b0200000000050000000c020000000004000000020101000400000004010d0008000000fa0200000000 +\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103000700 -0000430f2000cc00000000000300000000000000000000000000}} +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +000000ff0000b4b4f8000404f0006b6bf0004141f700ffffff002929f8009393f100dfdff7001919f7005353f2007a7af800ccccff00a2a2f2000f0ff7006464 +f000f1f1f7003a3afa008181f2007272f0000808f7004949f8009f9ff100c5c5fe001f1fef005151fd003333f700adadef00e6e6f7008484f900d8d8f7007171 +f7006666ff009999ff000000ff005b5bfe006b6bf8009999ff004b4bfe003333ff002222fb004141fe001111fd000808ff00adadfe00a6a6fd005959f000f2f2 +fd008a8af0001a1afe007373ff006262f8009b9bf7007e7efc00ddddff00b6b6fe003a3aff00d6d6ff008787fc009696f7005353f9002121f800a6a6f7006666 +ff00ababf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000505050505051c3e331504111115243e0805050505050500050505051c3e151111292929292911113c3e1c05050505000505051e24111129261919191919 +262911111f1e0505050005051e331a1a041519193c3c3c3c3c1504111a331c05050005103328061a0b0f042626262626040f0b1a1a28241c0500053b3d3d061e +0505131a2929291a1305051e0628283405001c112a3d1305050505131a1a1a1305050505133d2a151c003e3d0e310a050505050503180305050505050a310e3d +0100330e2b2a090305050505050d050505050503092a2b0e1f001a14222b2b0e0f0505050505050505050f0e0e2b2b2b04003d222222222b140f050505050505 +050f14142b22222206003d2222222b2b2b0216050505050516022b2b2b22222206000622222b2a31090305050505050505030931312b2b22060011141431271a +13050505050505050505131a1a312b2b1100332a312715120505050505400505050505121527312a24003e2828260a0505050505302e3005050505050a262828 +40001c151a23242f05050507123b12070505052f24231a151c000534042335302f05163b2c2c2c3b16052f303523040d0500051c1f3c3534343401170c0c0c17 +01163434353c0b1005000505100b243b370c393636363636390c373b24351c050500050505083a323b2c170c3636360c172c3b323b0805050500050505051040 +1f1f3a212d2d2d213a32320110050505050005050505050510010b20202020201d011005050505050500030000000000}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 +000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +000000ff0000b4b4f8000404f0006b6bf0004141f700ffffff002929f8009393f100dfdff7001919f7005353f2007a7af800ccccff00a2a2f2000f0ff7006464 +f000f1f1f7003a3afa008181f2007272f0000808f7004949f8009f9ff100c5c5fe001f1fef005151fd003333f700adadef00e6e6f7008484f900d8d8f7007171 +f7006666ff009999ff000000ff005b5bfe006b6bf8009999ff004b4bfe003333ff002222fb004141fe001111fd000808ff00adadfe00a6a6fd005959f000f2f2 +fd008a8af0001a1afe007373ff006262f8009b9bf7007e7efc00ddddff00b6b6fe003a3aff00d6d6ff008787fc009696f7005353f9002121f800a6a6f7006666 +ff00ababf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000505050505051c3e331504111115243e0805050505050500050505051c3e151111292929292911113c3e1c05050505000505051e24111129261919191919 +262911111f1e0505050005051e331a1a041519193c3c3c3c3c1504111a331c05050005103328061a0b0f042626262626040f0b1a1a28241c0500053b3d3d061e +0505131a2929291a1305051e0628283405001c112a3d1305050505131a1a1a1305050505133d2a151c003e3d0e310a050505050503180305050505050a310e3d +0100330e2b2a090305050505050d050505050503092a2b0e1f001a14222b2b0e0f0505050505050505050f0e0e2b2b2b04003d222222222b140f050505050505 +050f14142b22222206003d2222222b2b2b0216050505050516022b2b2b22222206000622222b2a31090305050505050505030931312b2b22060011141431271a +13050505050505050505131a1a312b2b1100332a312715120505050505400505050505121527312a24003e2828260a0505050505302e3005050505050a262828 +40001c151a23242f05050507123b12070505052f24231a151c000534042335302f05163b2c2c2c3b16052f303523040d0500051c1f3c3534343401170c0c0c17 +01163434353c0b1005000505100b243b370c393636363636390c373b24351c050500050505083a323b2c170c3636360c172c3b323b0805050500050505051040 +1f1f3a212d2d2d213a32320110050505050005050505050510010b20202020201d011005050505050500030000000000}} {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 - {\b FAILED}: This test case did not run as expected or produced an unhandled exception.} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\pngblip -89504e470d0a1a0a}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 -0100090000036900000010001c0000000000050000000b0200000000050000000c020000000004000000020101000400000004010d0008000000fa0200000000 +\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103000700 -0000430f2000cc00000000000300000000000000000000000000}} +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +000025b96e0074d2a2000000ff00d8f7ef0045b77900b3e2ca0061bf8b009ad9b90042ab6e00ddfefd00d5e9dd0050b97f008bd7b0002fb56e00ffffff006ec1 +9200e7f1ec004aa76e00bfead40043c382003cae6e00a8dfc30054c68c00dbebe200f6f6f60079c99d00f0ffff004aad6b003ac07b007fd6a90066cc9900c3ec +d700defaf4002cbb7200a7d8bd0031b7710066cc9900d5f1e300e8f7ef0043ae71003ab56b00a6e3c40093ddb70049ac72003fbb79005cc99100f7ffff005ab7 +8200e5eee8007cca9f00dff6ed004ac48500addac100c7eadb00bdefd60084d7ad0074c79a0071d1a00050ac7400ceefdf00eff4f1003bb57400e0f5ea0040b3 +7400bbe5cf00e8ffff00e8fdfa00defff7007ad4a700aae3c7004ac58c00d5f5e9009cdfbc0030bc740057c68d0051c08500abdec30042bd84007bd0a4002bb6 +6e0066cc9900b5e7ce0094debd003db07000edf2ef00d6efde004ab77b005abc8500c5eedd00a5ddbf00bdefde0073cea50047b376005ecb9300e0f0e800adde +bd0081c79f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000e0e0e0e0e0e303438570b56565738345e0e0e0e0e0e0e000e0e0e0e1022575c270808080808085c0622300e0e0e0e000e0e0e0a19040808111111111111 +1111270431170e0e0e000e0e17383f080811111111111111111111083f38100e0e000e54193d1408083a3a111111111111111108143d4e100e000e592c281408 +3a351a602b0808080808080808082c4c0e00104a232314142f200920400f2708080808081414235d5400051c4f4f14145703411a4203450653141414140d0d13 +120001494f4f4f4f57471a0e0e1a204707042828280d0d49370016214f4f4f4f4b471a0e0e0e0e4120584e3d4f4f4f212d0013000000000033471a0e0e0e0e0e +2e4203511e490000330013000000000033471a0e0e0e0e0e0e0e1a09091e000033003300000049494a471a0e0e0e0e0e0e0e1a09035d000033001621211c3333 +39031a0e0e0e0e0e1a4203455d1c21214a004e4949331e1e1d031a0e0e0e2e42201f371e1e3349491d00051c1c1e1d1d2a201a0e2e2e424729371d1d1d1e1c1c +0500102d13012a2a2920411a42201f072a2a2a2a2a01135d10000e1533394845514242422551454545454545483933450e000e54445d2a401f32323b12121212 +121212122a5d373c0e000e0e3c1d44453525252525252525252535454437540e0e000e0e0e5e0c1d291f253e2626263e251f291d2a300e0e0e000e0e0e0e5405 +443748511f1f1f51483744053c0e0e0e0e000e0e0e0e0e0e3c401d39393939390c403c0e0e0e0e0e0e00030000000000}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 +000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +000025b96e0074d2a2000000ff00d8f7ef0045b77900b3e2ca0061bf8b009ad9b90042ab6e00ddfefd00d5e9dd0050b97f008bd7b0002fb56e00ffffff006ec1 +9200e7f1ec004aa76e00bfead40043c382003cae6e00a8dfc30054c68c00dbebe200f6f6f60079c99d00f0ffff004aad6b003ac07b007fd6a90066cc9900c3ec +d700defaf4002cbb7200a7d8bd0031b7710066cc9900d5f1e300e8f7ef0043ae71003ab56b00a6e3c40093ddb70049ac72003fbb79005cc99100f7ffff005ab7 +8200e5eee8007cca9f00dff6ed004ac48500addac100c7eadb00bdefd60084d7ad0074c79a0071d1a00050ac7400ceefdf00eff4f1003bb57400e0f5ea0040b3 +7400bbe5cf00e8ffff00e8fdfa00defff7007ad4a700aae3c7004ac58c00d5f5e9009cdfbc0030bc740057c68d0051c08500abdec30042bd84007bd0a4002bb6 +6e0066cc9900b5e7ce0094debd003db07000edf2ef00d6efde004ab77b005abc8500c5eedd00a5ddbf00bdefde0073cea50047b376005ecb9300e0f0e800adde +bd0081c79f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000e0e0e0e0e0e303438570b56565738345e0e0e0e0e0e0e000e0e0e0e1022575c270808080808085c0622300e0e0e0e000e0e0e0a19040808111111111111 +1111270431170e0e0e000e0e17383f080811111111111111111111083f38100e0e000e54193d1408083a3a111111111111111108143d4e100e000e592c281408 +3a351a602b0808080808080808082c4c0e00104a232314142f200920400f2708080808081414235d5400051c4f4f14145703411a4203450653141414140d0d13 +120001494f4f4f4f57471a0e0e1a204707042828280d0d49370016214f4f4f4f4b471a0e0e0e0e4120584e3d4f4f4f212d0013000000000033471a0e0e0e0e0e +2e4203511e490000330013000000000033471a0e0e0e0e0e0e0e1a09091e000033003300000049494a471a0e0e0e0e0e0e0e1a09035d000033001621211c3333 +39031a0e0e0e0e0e1a4203455d1c21214a004e4949331e1e1d031a0e0e0e2e42201f371e1e3349491d00051c1c1e1d1d2a201a0e2e2e424729371d1d1d1e1c1c +0500102d13012a2a2920411a42201f072a2a2a2a2a01135d10000e1533394845514242422551454545454545483933450e000e54445d2a401f32323b12121212 +121212122a5d373c0e000e0e3c1d44453525252525252525252535454437540e0e000e0e0e5e0c1d291f253e2626263e251f291d2a300e0e0e000e0e0e0e5405 +443748511f1f1f51483744053c0e0e0e0e000e0e0e0e0e0e3c401d39393939390c403c0e0e0e0e0e0e00030000000000}} {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 - {\b RUNNING}: This test case is currently being examined.} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\pngblip -89504e470d0a1a0a}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 -0100090000036900000010001c0000000000050000000b0200000000050000000c020000000004000000020101000400000004010d0008000000fa0200000000 +\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103000700 -0000430f2000cc00000000000300000000000000000000000000}} +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +00000d86e00096c9f1001190f0000000ff00e5ffff0032a1f400cde3f4005bb3f700a7d3f5002194ea00e1edf60059aeee00ffffff00b2d8f6006dbcf700108b +e7002697ec009ccdf1001094f700eef2f600128eee001f97f4006db8f100399fed0047a9f40041a3ed00ddeffd00b3dcfb0099ccff0081c3f500c4e4fc00aed6 +f50074bef700efffff001995f3001c91e90063b3ef0053b0f7008dcbf9003ca5f500bce0fc00319ff3002399f400e7eff600299cf4007bc0f5009bcdf400e8f4 +fe00cee8fd0062b6f600a5d6ff00b5def7008cc7f5002398f000f1f4f600add6ff00d4e6f4001992ed006bb5f7003fa6f5002a9cf2004aaaf400a2d0f40097ca +f100bcddf50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000c0c0c0c0c0c0a110b17171010170b11380c0c0c0c0c0c000c0c0c0c0a0117230f0f0000000f0f23193f0a0c0c0c0c000c0c0c0624090f00000000000000 +00000f0924380c0c0c000c0c380b390f00000000000000000000000f390b2b0c0c000c2b24390f0f0000000000000000000000000f39162b0c000c2e35140f0f +0f0f0f0f0f0f0f0f0f0f0f0f0f0f353e0c002b1802020f0f042121040f0f0f042121040f0f0f02252b001f3c0202020f210c0c210f0f0f210c0c210f0f14143c +4000161502141414210c0c21141414210c0c2114141414152d00182202020202210c0c21141414210c0c2114020202223d00050202020202210c0c2102020221 +0c0c2102020202022700290202020202210c0c21020202210c0c210202020202050027020222222a210c0c21151515210c0c212a2a22222227001822222a053b +210c0c21050505210c0c213b052a22223d00161515272507210c0c21252525210c0c21070727151520001f3c3c250e0e210c0c21202020210c0c212020252c2c +0d002b25053a3434042121042626260421210426263a05252b000c3e2731263e3e3e3e3e3e3e3e3e3e3e3e3e26313b080c000c2b0e25261b2828282828282828 +2828281b26252d360c000c0c13200e321e3030303030303030301e320e2d2b0c0c000c0c0c0a1d201c28301a2f2f2f1a30281c20340a0c0c0c000c0c0c0c1308 +0e202637281e1e372620201f360c0c0c0c000c0c0c0c0c0c130d2031313131311d0d130c0c0c0c0c0c00030000000000}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 +000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +00000d86e00096c9f1001190f0000000ff00e5ffff0032a1f400cde3f4005bb3f700a7d3f5002194ea00e1edf60059aeee00ffffff00b2d8f6006dbcf700108b +e7002697ec009ccdf1001094f700eef2f600128eee001f97f4006db8f100399fed0047a9f40041a3ed00ddeffd00b3dcfb0099ccff0081c3f500c4e4fc00aed6 +f50074bef700efffff001995f3001c91e90063b3ef0053b0f7008dcbf9003ca5f500bce0fc00319ff3002399f400e7eff600299cf4007bc0f5009bcdf400e8f4 +fe00cee8fd0062b6f600a5d6ff00b5def7008cc7f5002398f000f1f4f600add6ff00d4e6f4001992ed006bb5f7003fa6f5002a9cf2004aaaf400a2d0f40097ca +f100bcddf50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000c0c0c0c0c0c0a110b17171010170b11380c0c0c0c0c0c000c0c0c0c0a0117230f0f0000000f0f23193f0a0c0c0c0c000c0c0c0624090f00000000000000 +00000f0924380c0c0c000c0c380b390f00000000000000000000000f390b2b0c0c000c2b24390f0f0000000000000000000000000f39162b0c000c2e35140f0f +0f0f0f0f0f0f0f0f0f0f0f0f0f0f353e0c002b1802020f0f042121040f0f0f042121040f0f0f02252b001f3c0202020f210c0c210f0f0f210c0c210f0f14143c +4000161502141414210c0c21141414210c0c2114141414152d00182202020202210c0c21141414210c0c2114020202223d00050202020202210c0c2102020221 +0c0c2102020202022700290202020202210c0c21020202210c0c210202020202050027020222222a210c0c21151515210c0c212a2a22222227001822222a053b +210c0c21050505210c0c213b052a22223d00161515272507210c0c21252525210c0c21070727151520001f3c3c250e0e210c0c21202020210c0c212020252c2c +0d002b25053a3434042121042626260421210426263a05252b000c3e2731263e3e3e3e3e3e3e3e3e3e3e3e3e26313b080c000c2b0e25261b2828282828282828 +2828281b26252d360c000c0c13200e321e3030303030303030301e320e2d2b0c0c000c0c0c0a1d201c28301a2f2f2f1a30281c20340a0c0c0c000c0c0c0c1308 +0e202637281e1e372620201f360c0c0c0c000c0c0c0c0c0c130d2031313131311d0d130c0c0c0c0c0c00030000000000}} {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 - {\b PAUSED}: This status is used to denote a problem with the test case itself that prevents the test from being completed.} -\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\pngblip -89504e470d0a1a0a}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 -0100090000036900000010001c0000000000050000000b0200000000050000000c020000000004000000020101000400000004010d0008000000fa0200000000 +\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\*\shppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103000700 -0000430f2000cc00000000000300000000000000000000000000}} +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +000000ff0000c4c4fe000000ff007171f7004949f8003333ff00ffffff00a6a6f7002121f8005b5bfe008989ff00e6e6f7000f0ff9004040f700b4b4f800d8d8 +f7007a7af8006b6bf8005353f9003a3afa000808f9009b9bf7001919fe002929f800ababf700dfdff7006262f8008484f900f1f1f700bfbfff002020fd004a4a +fe009696f7001111fe006666ff00ccccff004141fe003c3cff00b6b6fe00a6a6ff000808ff007373ff00ddddff007b7bff009999ff00aeaefd002b2bfe008787 +fc00d6d6ff009999ff005151fd006666ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000606060606060b071a040d13130411071906060606060600060606060b070413132424242424131312070b06060606000606060f111313241f3212121232 +1f241313030f0606060006060f1a2e13241f321212121212323224132e1a0b060600061c1a082e241f1f1f1f1f1f1f1f1f1f1f242e2e110b0600062008080525 +242424242424242424242424051e1e1506000b13211e2e050606060606060606060606052e1e21040b0007080c161e2e06060606060606060606062e2e160c08 +0e001a0c1421161e06060606060606060606061e1621140c0300131414142121060606060606060606060621212828280d000802020202280606060606060606 +06060628280202021700080202020228060606060606060606060628280202021700170202282116060606060606060606060616162828021700131414160525 +06060606060606060606062505160c0c13001a0c160532090606060606060606060606093205160c11000708081f222b06060606060606060606062b221f0808 +18000b0405092b2c06060606060606060606062c2b0905040b0006150d090a272d2d2d2d2d2d2d2d2d2d2d270a090d070600060b03121b271d01232323232323 +23231d271b12101c060006061c1011202623302a2a2a2a2a3023262011100b060600060606192f29202d01232a2a2a23012d2029201906060600060606061c18 +03032f2c2727272c2f29290e1c06060606000606060606061c0e1022222222221b0e1c06060606060600030000000000}}{\nonshppict{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw23\pich23\picwgoal390\pichgoal390\wmetafile8 +010009000003980300001000360300000000050000000b0200000000050000000c021700170004000000020101000400000004010d0008000000fa0200000000 +000000000000040000002d01000007000000fc020000ffffff000000040000002d0101001c000000fb0200000e00000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000040000002d010200040000002e011800050000000902ffffff0004000000070103003603 +0000430f2000cc000000170017000000000017001700000000002800000017000000170000000100080000000000280200000000000000000000000100000000 +000000ff0000c4c4fe000000ff007171f7004949f8003333ff00ffffff00a6a6f7002121f8005b5bfe008989ff00e6e6f7000f0ff9004040f700b4b4f800d8d8 +f7007a7af8006b6bf8005353f9003a3afa000808f9009b9bf7001919fe002929f800ababf700dfdff7006262f8008484f900f1f1f700bfbfff002020fd004a4a +fe009696f7001111fe006666ff00ccccff004141fe003c3cff00b6b6fe00a6a6ff000808ff007373ff00ddddff007b7bff009999ff00aeaefd002b2bfe008787 +fc00d6d6ff009999ff005151fd006666ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff +ff000606060606060b071a040d13130411071906060606060600060606060b070413132424242424131312070b06060606000606060f111313241f3212121232 +1f241313030f0606060006060f1a2e13241f321212121212323224132e1a0b060600061c1a082e241f1f1f1f1f1f1f1f1f1f1f242e2e110b0600062008080525 +242424242424242424242424051e1e1506000b13211e2e050606060606060606060606052e1e21040b0007080c161e2e06060606060606060606062e2e160c08 +0e001a0c1421161e06060606060606060606061e1621140c0300131414142121060606060606060606060621212828280d000802020202280606060606060606 +06060628280202021700080202020228060606060606060606060628280202021700170202282116060606060606060606060616162828021700131414160525 +06060606060606060606062505160c0c13001a0c160532090606060606060606060606093205160c11000708081f222b06060606060606060606062b221f0808 +18000b0405092b2c06060606060606060606062c2b0905040b0006150d090a272d2d2d2d2d2d2d2d2d2d2d270a090d070600060b03121b271d01232323232323 +23231d271b12101c060006061c1011202623302a2a2a2a2a3023262011100b060600060606192f29202d01232a2a2a23012d2029201906060600060606061c18 +03032f2c2727272c2f29290e1c06060606000606060606061c0e1022222222221b0e1c06060606060600030000000000}} {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs24\lang1033\i0\b0 - {\b BLOCKED}: This test case has a dependency that failed.} \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ql\rtlch\af10\afs24\lang255\ltrch\dbch\af8\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 diff --git a/mozilla/webtools/testopia/testopia/doc/Manual.xhtml b/mozilla/webtools/testopia/testopia/doc/Manual.xhtml index 592b96540c2..5016ce6ac8b 100644 --- a/mozilla/webtools/testopia/testopia/doc/Manual.xhtml +++ b/mozilla/webtools/testopia/testopia/doc/Manual.xhtml @@ -1,6 +1,6 @@ -<meta name="generator" content="StarOffice/OpenOffice.org XSLT (http://xml.openoffice.org/sx2ml)" /><meta name="author" content="Greg Hendricks" /><meta name="created" content="2007-02-26T14:35:59" /><meta name="changedby" content="Greg Hendricks" /><meta name="changed" content="2007-06-14T16:08:58" /><base href="." /><style type="text/css"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title /><meta name="generator" content="StarOffice/OpenOffice.org XSLT (http://xml.openoffice.org/sx2ml)" /><meta name="author" content="Greg Hendricks" /><meta name="created" content="2007-02-26T14:35:59" /><meta name="changedby" content="Greg Hendricks" /><meta name="changed" content="2007-03-15T09:51:32" /><base href="." /><style type="text/css"> @page { size: 8.5inch 11inch; margin-top: 1inch; margin-bottom: 1inch; margin-left: 1inch; margin-right: 1inch } table { border-collapse:collapse; border-spacing:0; empty-cells:show } td, th { vertical-align:top; } @@ -133,4 +133,4 @@ *.T8 { font-weight:normal; text-decoration:underline; } *.T9 { font-weight:normal; text-decoration:underline; } *.VisitedInternetLink { color:#800000; text-decoration:underline; } - </style></head><body dir="ltr"><p class="P1"> </p><div class="P2"><img width="247" height="304" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr1" /></div><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2">Software Testing With Testopia </p><p class="P3">By Greg Hendricks </p><p class="P3"><a href="mailto:gregaryh@gmail.com">gregaryh@gmail.com</a></p><p class="P3"> </p><p class="P3"><a href="http://mozilla.org/projects/testopia">http://mozilla.org/projects/testopia</a></p><p class="Standard"> </p><p class="P4">Table of Contents </p><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Introduction</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Testopia - Test Case Management</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Testopia and Bugzilla</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>The Mozilla Foundation and the Testopia Project</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Installation</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Requirements at a Glance</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P8"><colgroup><col style="width: 5.1244in" /></colgroup><tr><td>   Recommended version Where to get it</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Database</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Additional Perl Modules</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Libraries</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Client</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>What You Need to Know</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Downloading and Installing</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Upgrading From Testopia 1.0.x</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Configuration</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Using Testopia</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Why Test?</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>What Types of Testing can Testopia Help You With?</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Black Box Testing</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>White box and Automated Testing</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Getting Started</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>The Big Picture</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Plans</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Run Environments</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Builds</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Case-Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Testing In Testopia</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Start With a Plan</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing A Test Plan</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Attaching Files</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Editing Plan Fields</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing Plan History</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Adding Categories and Builds</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Creating Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Shortcut – Creating a Test Case</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Adding and Removing Components and Tags</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing Test Case-Run Results</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Attaching Files</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Attaching Bugs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Editing Case Fields</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Test Case Dependencies</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Creating Environments</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Environment Administration</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P11"><colgroup><col style="width: 5.9102in" /></colgroup><tr><td>Categories</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P11"><colgroup><col style="width: 5.9102in" /></colgroup><tr><td>Elements</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P11"><colgroup><col style="width: 5.9102in" /></colgroup><tr><td>Properties</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P11"><colgroup><col style="width: 5.9102in" /></colgroup><tr><td>Property Values</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Creating Your Environment</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Creating A Test Run</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Shortcut – Creating a Test Run</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing Your Test Run </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Adding Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Editing Test Run Fields</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Running Your Tests</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Filtering Your Test Cases in a Run</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Sorting Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Passing and Failing Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Adding Notes</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Attaching Bugs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Reassigning Tests</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Changing Build or Environment on a Test Case</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Classic View</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Deleting Case-Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Updating Multiple Cases at Once</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Wrapping Up</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Getting Around Testopia</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Searching</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Sorting Search Results</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Paging</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Batch Processing</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Saved Searches</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Reporting</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Plan Reports</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Build Coverage Report</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Top Bugs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Bugs Found In This Plan</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Printable Percentage Report</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Test Case Reports</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Estimated vs Actual Time</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Historic Status Breakdown</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Cloning</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Cloning Test Plans</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Cloning Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Cloning a Run</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Deleting</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Test Plans</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Test Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Importing and Exporting</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Importing Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Testopia Security</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>The Testers Group</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Plan Access Control Lists</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>User Regular Expression</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Explicit Inclusion</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Access Rights</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Read </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Write </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Delete </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Admin </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Tags</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Adding Tags to an Object</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing Tags</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Using Testopia With Automated Test Scripts</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Field Descriptions</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Test Plans</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Test Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Test Case-Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Glossary</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Getting Help</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Bibliography</td></tr></table><h1 class="P12"><a name="Introduction" />Introduction</h1><p class="Textbody">Testing, especially software testing, can be a tedious and overwhelming task. Often there are many levels of testing requirements and many iterations during a project life cycle. Keeping track of the results of tests is important both to the customer, and the developer. Customers want to know that their requirements are being met and developers want to know if there are bugs that they missed. Testing is an important part of the software development process since “Software should be predictable and consistent, offering no surprises to users” (Meyers 2004, ch 1). </p><h5 class="Heading5"><a name="Testopia_-_Test_Case_Management" />Testopia - Test Case Management</h5><p class="Textbody">Test case management is the process of tracking test outcomes on a set of test cases for a given set of environments and development iterations. To do this effectively, an organizational structure needs to be set in place to track test cases and their outcomes in a given test scenario. Testopia was developed to provide a central repository for the collaborative efforts of distributed testers. It serves as both a test case repository and management system. Testopia is designed to meet the needs of software testers from all sizes of groups and organizations.  </p><p class="Textbody">Though Testopia was designed primarily for software testing, it can be used to track any type of test cases. Also, being open source, Testopia can be easily adapted to fit just about any testing model. </p><h2 class="Heading2"><a name="Testopia_and_Bugzilla" />Testopia and Bugzilla</h2><p class="Textbody">Mozilla's Bugzilla bug tracking system is one of the most popular open source issue tracking systems available. Bugzilla “provides an easy to use, easy to maintain and cost effective solution with a rich feature set that easily can compete with its proprietary counterparts” (Lohmeyer). </p><p class="Textbody">Test cases are, and should be, closely tied to defects. As defects are found, test cases should be written to verify that the defect is fixed in future releases. To this end Testopia was designed as an add-on extension to Bugzilla. This allows a single user experience and point of product management for both defect tracking and test case management. </p><h2 class="Heading2"><a name="The_Mozilla_Foundation_and_the_Testopia_Project" />The Mozilla Foundation and the Testopia Project</h2><p class="Textbody">Testopia began life as Bugzilla Testrunner. It was written by Maciej Maczynski in 2001 and later ownership passed to Ed Fuentetaja who passed development duties to Greg Hendricks in 2006. It was renamed Testopia in March 2006 prior to release of version 1.0 in May. It was adopted as a Mozilla project and now resides at <a href="http://mozilla.org/projects/testopia">http://mozilla.org/projects/testopia</a>.</p><p class="Textbody">Since May 2006, Testopia has been increasing in popularity among testers in the open source community as well as in other organizations. In a recent blog posting, Rosie Sherry, a respected software testing expert, states that “This is probably the most comprehensive open source test management system and once up and running provides everything needed of a test management system” (Sherry 2006). </p><h1 class="P12"><a name="Installation" />Installation</h1><h2 class="Heading2"><a name="Requirements_at_a_Glance" />Requirements at a Glance</h2><h8 class="Heading8"><a name="Recommended_versionWhere_to_get_it" />                        Recommended version        Where to get it</h8><p class="Textbody">Bugzilla                2.22.2                                <a href="http://bugzilla.org/downloads">http://bugzilla.org/downloads</a></p><h9 class="Heading9"><a name="Database" />Database</h9><p class="Textbody">MySQL                5.0                                <a href="http://mysql.com/">http://mysql.com</a></p><h9 class="Heading9"><a name="Additional_Perl_Modules" />Additional Perl Modules</h9><p class="Textbody">JSON                                                        http://cpan.org</p><p class="Textbody">Text::Diff                                                <a href="http://cpan.org/">http://cpan.org</a></p><h9 class="Heading9"><a name="Libraries" />Libraries</h9><p class="Textbody">Dojo toolkit                0.4.1                                <a href="http://dojotoolkit.org/">http://dojotoolkit.org/</a> </p><h9 class="Heading9"><a name="Client" />Client</h9><p class="Textbody">Firefox                 2.0+                                <a href="http://getfirefox.com/">http://getfirefox.com</a></p><h2 class="Heading2"><a name="What_You_Need_to_Know" />What You Need to Know</h2><p class="Textbody">As our development has moved forward, we have decided to try to keep abreast of the latest stable release from Bugzilla (currently 3.0). This gives us a stable code base to work from. Developing plugins or extensions for any software is like trying to hit a moving target. This decision allows us to focus our time more on releasing new features often and early rather than back porting. However, this means that most major feature will not be back ported to earlier versions unless and until we have time to do so. Anyone wishing to help in this effort is more than welcome. </p><p class="Textbody">Though Bugzilla officially supports MySQL and Postgres databases, Testopia has only been tested with MySQL. Patches are welcome to make Testopia Postgres compliant. </p><p class="Textbody">Likewise, Testopia has only been thoroughly tested using Firefox browsers. This is not because we don't care about other browser platforms, but because we lack the time and resources to attempt thorough testing in other browsers. Testopia should run fine on mast modern browsers.  If issues arise however, please log them at bugzilla.mozilla.org </p><p class="Textbody">Testopia makes use of some cutting edge AJAX technology provided by the Dojo toolkit. Our philosophy is that it is better to focus more processing on the client than to tie up the server. Dojo places some extra weight on the client, but makes interactions with the server faster. This increases the load on the client machine however, which means the need for faster processing power and more memory. Trying to run Testopia on a Pentium 2 with 128 MB of RAM will probably not be the best user experience.  </p><h2 class="Heading2"><a name="Downloading_and_Installing" />Downloading and Installing</h2><p class="Textbody">Testopia is an extension to Bugzilla. It goes without saying then that you should have Bugzilla up and running first. Instructions for installing Bugzilla can be found at <a href="http://bugzilla.org/">http://bugzilla.org</a> as well as in the package you downloaded. Basically all you need is to unzip the package and run checksetup.pl and follow any instructions that come up.</p><p class="Textbody">Once you have bugzilla successfully installed you need to do the following to get Testopia up and running: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;">Download the testopia tarball from ftp://ftp.mozilla.org </p></li><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;">Copy the testopia tar ball into your bugzilla's root directory. </p></li><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;">Untar  </p><ol style="margin-left:0.75cm;list-style-type:decimal; "><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;"><span class="SourceText">tar xzvf testopia-<release>.tar.gz</span></p></li></ol></li><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;">Run tr_install.pl  </p><ol style="margin-left:0.75cm;list-style-type:decimal; "><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;"><span class="SourceText">perl tr_install.pl</span></p></li></ol></li><li class="P14" style="margin-left:0cm;"><p class="P14" style="margin-left:0.25cm;"><span class="T1">Download Dojo (If installing from CVS)</span></p></li></ol><p class="P15"><span class="T1">The easiest way to install dojo is from their subversion repository. Instructions are found in the DOJO_INSTALL_HELP file inside the testopia/dojo directory.</span></p><p class="Textbody">The tr_install script sets up the database tables, patches your code, and sets up the Testers group in Bugzilla. Whenever you update Testopia, you should run tr_install and checksetup again. </p><p class="Textbody">You should now be able to See the Testopia links in the Bugzilla footer after logging into Bugzilla. Make sure you update the new Testers group to include any users that are going to need access to test cases.  </p><h2 class="Heading2"><a name="Upgrading_From_Testopia_1.0.x" />Upgrading From Testopia 1.0.x</h2><p class="Textbody">To upgrade an existing release of Testopia, you can simply follow the steps outlined above. Running tr_install will upgrade your database and set any file permissions. You can also upgrade to the latest CVS tip using the cvs_update.sh script located in the testopia/scripts directory. </p><p class="Textbody">Upgrading from Testrunner (v0.7 and prior) is not supported.  </p><h1 class="Heading1"><a name="Configuration" />Configuration</h1><p class="Textbody">Testopia adds a number of additional parameters to the Bugzilla Parameters page. They are located under the Testopia tab. If you are installing Testopia with a new installation of Bugzilla, you should be sure to set the <span class="T2">urlbase </span><span class="T3">parameter. Following is a list of required Testopia parameters and their explanations:</span></p><p class="P16">allow-test-deletion</p><p class="List1End"><span class="T3">        I</span>f this option is on, users can delete objects including plans and cases. Delete rights are maintained by the plan access control lists.</p><p class="P16">testopia-allow-group-member-deletes</p><p class="List1End"><span class="T3">        </span>If this option is on, members of the Testers group will be allowed to delete test objects. This overrides settings for individuals in the Testers group.</p><p class="P16">testopia-default-plan-testers-regexp</p><p class="List1End">        This is the default regular expression for granting access to new test plans.</p><p class="P16">default-test-case-status</p><p class="List1End">        Default status for newly created test cases.</p><h1 class="Heading1"><a name="Using_Testopia" />Using Testopia</h1><h2 class="Heading2"><a name="Why_Test_3F" />Why Test?</h2><p class="Textbody">The following example illustrates why software testing is so important: </p><p class="Textbody">Taken from <a href="http://techiecorner.blogspot.com/">http://techiecorner.blogspot.com</a> .</p><p class="Quotations">In March 1992, a man living in Newtown near Boston, Massachusetts, received a bill for his as yet unused credit card stating that he owed $0.00. He ignored it and threw it away. </p><p class="Quotations">In April, he received another and threw that one away too.<br />The following month, the credit card company sent him a very nasty note stating they were going to cancel his card if he didn't send them $0.00 by return of post. He called them and talked to them; they said it was a computer error and told him they'd take care of it.</p><p class="Quotations">The following month, our hero decided that it was about time that he tried out the troublesome credit card figuring that if there were purchases on his account it would put an end to his ridiculous predicament. However, in the first store that he produced his credit card in payment for his purchases, he found that his card had been canceled. </p><p class="Quotations">He called the credit card company who apologized for the computer error once again and said that they would take care of it. The next day he got a bill for $0.00 stating that payment was now overdue. Assuming that, having spoken to the credit card company only the previous day, the latest bill was yet another mistake, he ignored it, trusting that the company would be as good as their word and sort the problem out.<br />The next month, he got a bill for $0.00 stating that he had 10 days to pay his account or the company would have to take steps to recover the debt.</p><p class="Quotations">Finally giving in, he thought he would play the company at their own game and mailed them a cheque for $0.00. The computer duly processed his account and returned a statement to the effect that he now owed the credit card company nothing at all. </p><p class="Quotations">A week later, the man's bank called him asking him what he was doing writing a cheque for $0.00. After a lengthy explanation, the bank replied that the $0.00 cheque had caused their cheque processing software to fail. The bank could now not process ANY cheques from ANY of their customers that day because the cheque for $0.00 was causing the bank's computer to crash. </p><p class="Quotations">The following month, the man received a letter from the credit card company claiming that his cheque had bounced and that he now owed them $0.00 and unless he sent a cheque by return of post them would be taking steps to recover the debt. </p><p class="P17">Though never proven to be true, this rather humorous anecdote explains the impact that untested software can have. In the case of both the credit card company and the bank, this seemingly minor issue may have cost both institutions significant sums of money in lost transactions and down time, to say nothing of the frustration of the customer. </p><p class="P17">Many times software errors cause only minor inconveniences. Other times they can have serious consequences. Think of the life support systems on the space shuttle or the flight control systems on an airliner. Software has become such an integral part of our lives that many times we don't realize how much we depend on  it until something goes wrong.</p><h2 class="Heading2"><a name="What_Types_of_Testing_can_Testopia_Help_You_With_3F" />What Types of Testing can Testopia Help You With?</h2><p class="Textbody">There are two general classifications of software testing: black box and white box. </p><p class="Quotations"><span class="T4">Black box testing is a strategy in which testing is based solely on the requirements and specifications. Unlike its complement, white box testing, black box testing requires no knowledge of the internal paths, structure, or implementation of the software under test</span> (Copeland, 2004,Sec I).</p><p class="Textbody"> </p><h5 class="Heading5"><a name="Black_Box_Testing" />Black Box Testing</h5><p class="Textbody">Testopia was designed primarily for this type of testing. Requirements are translated directly into test cases to be applied by the testers to the software being developed. If a requirement is not met, the test case fails; if it is met, it passes. </p><h5 class="Heading5"><a name="White_box_and_Automated_Testing" />White box and Automated Testing</h5><p class="Textbody">Though not specifically designed to handle white box tests (which are often automated), Testopia can still provide a repository for test results. Each test case can have an associated script and test logs can be attached to a test case to show the results of testing. </p><h1 class="Heading1"><a name="Getting_Started" />Getting Started</h1><h3 class="Heading3"><a name="The_Big_Picture" />The Big Picture</h3><div class="Textbody"><img width="693" height="563" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr2" /></div><p class="Textbody">Since Testopia is an extension to Bugzilla, it relies on many of the same objects that Bugzilla uses to track bugs. In order to use Testopia you first need to set up products and versions using the Bugzilla product editor. Testopia makes use of Bugzilla's target milestones feature as well so you may want to turn this optional field on in the parameters. </p><p class="Textbody">Testopia is comprised of several objects that are interdependent. Together, they make managing the testing procedure possible. Lets look at each of these in turn. </p><h2 class="Heading2"><a name="Test_Plans" />Test Plans</h2><p class="Textbody">At the top of the Testopia hierarchy are test plans. Before you can do anything else in Testopia, you need a test plan. Test plans are associated with a single product in Bugzilla, though you can have multiple test plans for each product. Your test plan will serve as the storage point for all related test cases and test runs and it will act as the dashboard for your testing. It will also serve to determine who will have access to update test cases. </p><h2 class="Heading2"><a name="Test_Cases" />Test Cases</h2><p class="Textbody">Test cases are the heart of all testing. Test cases spell out what steps to take while running a test and what outcomes to expect. If a particular run through the steps fails to produce the expected outcome, the test fails. Test cases are semi-independent in Testopia. Each test case can be associated with multiple test plans so care should be taken to ensure that updating a test case does not interfere with testing in another test plan than your own. A list of associated test plans is displayed with each test case though, so this should not be too difficult. </p><p class="Textbody">Test cases are divided into categories. You can define as many categories for your product as you like from the test plan page. These should not be confused with components however. Each product in Bugzilla is divided into components and you can apply multiple components to each test case, however each test case can belong to only one category at a time. </p><h2 class="Heading2"><a name="Test_Runs" />Test Runs</h2><p class="Textbody">Test runs are the focal point of the testing effort. Once you have defined a set of test cases, you are ready to run through those tests in a test run. Each run is associated with a single test plan and can consist of any number of test cases from that plan. Before we can run any test however, we need to have a couple more items first. </p><h2 class="Heading2"><a name="Test_Run_Environments" />Test Run Environments</h2><p class="Textbody">If test cases are the 'what' of testing, then environments are the 'where'. No test runs in a vacuum. Where you run your test is as important as how you run it. Software often is designed to run on specific hardware under specific conditions. These conditions are captured in the test environment. Environments are applied to test runs directly, but can be applied to test cases indirectly as we will see. </p><h2 class="Heading2"><a name="Builds" />Builds</h2><p class="Textbody">Software development is usually an iterative affair. Developers write code which is then compiled and included in a system. As bugs and enhancement requests come in, the developer rewrites portions over again to fix or enhance a product. In Testopia, each iteration is called a build. Builds are often associated with milestones of the project. This is reflected in the build's relationship to Bugzilla's target milestones object. Regardless of whether you use target milestones in Bugzilla, you need to define at least one build for your product before you can begin a test run. </p><h2 class="Heading2"><a name="Test_Case-Runs" />Test Case-Runs</h2><p class="Textbody">A test case-run is the record of how a particular test case fared in a particular run for a given build in a given environment. When you create a test run, records for each test case in that run are created. By default these take on the build and environment of the test run. Once a run has started and a new build comes along, you can add a test case with this new build to the run. This is in addition to any other instances of the test case that might already exist in the run. The same can be done for new environments This is desirable in situations where most test cases are fairly generic in environmental scope but single test cases might require specific conditions. It also aids in iterative testing as each test case then be updated in a single run rather than having to create new runs to test the failed cases. </p><h1 class="Heading1"><a name="Testing_In_Testopia" />Testing In Testopia</h1><h2 class="Heading2"><a name="Start_With_a_Plan" />Start With a Plan</h2><p class="Textbody">All testing should start with a test plan. In most cases this will take the form of a document that details the purpose, structure, and methods that will be employed in testing. The IEEE has put together a standard document template for test plans (IEEE Standard 829-1998 for Software Test Documentation). Whether you decide to use a formal template such as this or not, having a rough outline of what your purpose for testing is will help those who test this in the future know what you were looking for in your testing. </p><p class="Textbody">To create a new test plan in Testopia: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Click the '<span class="T5">New Plan</span>' link in the Bugzilla footer</p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Enter a name for this test plan. </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Select a product from the product drop-down list </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Select a type for this plan (descriptions of types below) </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Select a product version. This will be the default version for new runs. </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Type or paste your plan document into the Plan Document Editor </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Click the <span class="T2">Add</span> button</p></li></ol><p class="Textbody">Once you have done this, you will be taken to your newly created test plan.  </p><h5 class="Heading5"><a name="Viewing_A_Test_Plan" />Viewing A Test Plan</h5><p class="Textbody">At the top of your new plan, you will see an overview section detailing much of the information you entered on the new plan form. In addition to this however, you will see such things as the plan author, when it was created, and what version of the document you are viewing. </p><p class="Textbody">Below the overview section is the place for viewing categories and builds associated with this plan's product. You also have an area where you can add tags and view existing tags on this plan. We will discuss tags at greater length later. </p><p class="Textbody">From here you may wish to create some categories for your test cases and add some builds before you begin creating test cases. </p><h5 class="Heading5"><a name="Attaching_Files" />Attaching Files</h5><p class="Textbody">Once you have created your test plan, you can upload attachments to it. To create an attachment, simply click the browse button and locate the file you wish to attach, type a description in the Description field and click the attach button.  </p><p class="Textbody">Attachments are treated very much the same as they are in Bugzilla. The size limit will be determined by the max-attachment-size parameter the same as it is for Bugzilla </p><p class="Textbody">To edit an attachment click the edit link. This takes you to a page where you can set the description, filename, and mime-type for the attachment as well as view it if it is a viewable type or download it otherwise. </p><h5 class="Heading5"><a name="Editing_Plan_Fields" />Editing Plan Fields</h5><p class="Textbody">With the possible exception of product, you can edit any of the values that you supplied when you created your test plan buy scrolling down to the Attributes section or by clicking the '<span class="T5">Edit Plan Attributes</span><span class="T6">' link in the overview section. You are able to edit the product field as long as there are no test runs associated with this plan yet. Once you have created a test run you will not be able to update the product attribute unless you delete the run first.</span></p><h5 class="Heading5"><a name="Viewing_Plan_History" />Viewing Plan History</h5><p class="P19">Any changes made to plan values are captured and a history is kept so that as test circumstances change over the course of a development cycle, you can know what applied for a given set of tests in time. This also serves to thwart unintentional changes to your test plan since each change captures when it happened and who performed it. To view this history click the <span class="T2">History</span><span class="T3"> button.</span></p><p class="P19">Changes to the plan document are handled a little differently. A full version is kept for each change and it is possible to view the differences between versions by selecting which versions you want to compare and clicking the <span class="T2">Compare</span><span class="T3"> button on the plan history page.</span></p><h2 class="Heading2"><a name="Adding_Categories_and_Builds" />Adding Categories and Builds</h2><p class="Textbody">Categories are used to classify your test cases. Each product has a default category and it is up to you want to use categories to divide up your test cases. Since you can also apply product components to a test case, you may find that this suffices.<span class="T6"> Before you can create a test run however, you have to specify at least one build. To add a build or category you can click the </span><span class="T5">add</span><span class="T6"> link found below each of these fields from the test plan page. The fields are fairly self explanatory. In the case of builds however, you have the option of hiding the build by unchecking the A</span><span class="T7">ctive</span><span class="T6"> box.. This will hide it from the build list used when creating a run.</span></p><p class="P19">To edit categories and builds, click the links above their respective fields on the test plan. From here you can edit individual builds and categories or remove them. </p><h1 class="Heading1"><a name="Creating_Test_Cases" />Creating Test Cases</h1><p class="Textbody">Once you have a plan to store them in, you can start entering your test cases. Click the <span class="T5">Create a New Test Case</span><span class="T6"> link on the plan page or click the </span><span class="T5">New Case</span><span class="T6"> link in the footer to begin.</span></p><h5 class="Heading5"><a name="Shortcut__E2_80_93_Creating_a_Test_Case" />Shortcut – Creating a Test Case</h5><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Click <span class="T5">Create a New Test Case</span> on the plan page or <span class="T5">New Case</span> from the footer</p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Enter a short description of your test case in the <span class="T2">Summary</span> field</p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Select a <span class="T2">Category</span></p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Add a default tester or select a component to assign the test case to the Bugzilla QA Contact for that component. </p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">List the steps for testing in the <span class="T2">Action</span> field</p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Provide the expected outcomes in the <span class="T2">Expected Results</span> field</p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Click the <span class="T2">Add</span> button.</p></li></ol><p class="P19">Because it is possible to have a single test case linked to multiple test plans, you can select which plans you wish to link your new case to. For now, we only have one so we will only see a single check box.  </p><p class="P19">First you need to write a short summary of your test case in the summary field. Notice the options for the other fields here as well. Descriptions of each can be found at the end of this document. The only required field here is the summary, however you may want to apply a default tester and a requirement at this time. Selecting a component at the right will automatically set the default tester based on the Bugzilla QA contact of that component. </p><p class="P19">Though not required at this point, you should supply your list of testing steps in the <span class="T2">Action </span><span class="T3">field and the list of expected outcomes in the </span><span class="T2">Expected Results</span><span class="T3"> field. To do this, click the </span><span class="T8">Edit Document</span><span class="T3"> link under the appropriate field. This will display a WYSIWYG editing area where you can type or paste your values. For tips on writing good test cases refer to D.L Runnels' </span><a href="http://www.stickyminds.com/getfile.asp?ot=XML&id=2136&fn=XDD2136filelistfilename1.pdfL"><span class="T9">How to Write Better Test Cases</span></a></p><p class="P21">From here you are taken to your test case. You will notice a link at the top giving you the option of creating another test case for this plan at this time.  </p><h5 class="Heading5"><a name="Adding_and_Removing_Components_and_Tags" />Adding and Removing Components and Tags</h5><p class="P21">Once again, you are offered an overview detailing the information for this test case at a glance. Below that you have the option of adding additional components to this test case. Because some testing is cross product, you have the option to add components from any product in Bugzilla to your test case. You can also remove a component by selecting it from the list and clicking the <span class="T2">Remove</span> button. </p><p class="P21">As with plans you also can apply tags to your test cases. This will be described later. </p><h5 class="P22"><a name="Viewing_Test_Case-Run_Results" />Viewing Test Case-Run Results</h5><p class="P21">Below this section will display a history of this test case in all runs and their status as to whether they passed or failed in those runs. You also will see a graph representing the percentage of pass/fail across all runs.  </p><h5 class="Heading5"><a name="Attaching_Files" />Attaching Files</h5><p class="Textbody">Just like test plans, you can attach files to your test cases. This works the same as for test plans. </p><h5 class="Heading5"><a name="Attaching_Bugs" />Attaching Bugs</h5><p class="Textbody">Unlike test plans, you have the option of attaching Bugzilla bugs to your test cases. Each test case can have multiple bugs attached. To attach a bug, enter the bug number in the field and click the <span class="T2">Commit</span><span class="T3"> button. A table of attached bugs is displayed.</span></p><h5 class="Heading5"><a name="Editing_Case_Fields" />Editing Case Fields</h5><p class="Textbody">As with test plans, you can update any of the values you entered while creating the plan. A history of these changes is also kept which you can view by clicking the <span class="T2">History</span><span class="T3"> button near the top of the test case. </span></p><h5 class="Heading5"><a name="Test_Case_Dependencies" />Test Case Dependencies</h5><p class="Textbody">Test cases have the concept of dependencies. Often when testing a set of test cases, the order in which you test is determined by what tests came before. It is also often the case that if a given test case fails, it prevents other test cases from being run successfully at all. You can represent those relationships here using the <span class="T2">blocks </span><span class="T3"> and </span><span class="T2">depends on</span><span class="T3"> fields. If this test potentially blocks the execution of another test case, you would enter that other test case's id in the </span><span class="T2">blocks</span><span class="T3"> field. If this test case requires some other test case be run first you can enter that other test case's id in the </span><span class="T2">depends on </span><span class="T3"> field. If a test case that blocks another test case fails, and both of them are in a single run, the blocked test case will automatically receive a status of </span><span class="T2">BLOCKED</span><span class="T3">.</span></p><h2 class="Heading2"><a name="Creating_Environments" />Creating Environments</h2><p class="Textbody">As mentioned above, environments are the <span class="T10">where </span><span class="T11">in testing. </span>In software testing in particular, this might include such things as which operating system and what hardware platform a test was conducted on.. Environments can be as broad or narrow as you define them. The most basic environment consists of an OS and platform chosen from Bugzilla's lists of these objects. However it can be much more complicated such as a suite of applications and other products. It could be a browser or other client package.</p><p class="Textbody">Creating an environment in Testopia requires two steps. The first involves defining a set of variables to be used in your environment. The second is to create the environment from the set of possible elements. </p><h3 class="Heading3"><a name="Environment_Administration" />Environment Administration</h3><p class="Textbody">When you first install Testopia, you must first define the set of environment variables that will be used to construct your environments.  To access these, click the <span class="T12">Environment Variables</span> link in the footer. The environment variables are arranged in a hierarchy of objects that is represented as a tree.  There are four major levels: Category, Element,  Property, and Property Values.</p><h4 class="Heading4"><a name="Categories" />Categories</h4><p class="Textbody">Environment Categories are similar to test case categories in that they provide a sorting mechanism for your environment elements. Each category is associated with a single product or in the special bucket labeled <span class="T10">–ALL-- . </span><span class="T11">The –All-- denotes all products, meaning it holds categories of elements that are not specific to any product.</span></p><p class="P23">When you first install Testopia you will see that the –ALL-- bucket contains two Categories, OS and Platform. Expanding these you will see that there are elements representing each of the OS and Platform values defined in Bugzilla. This is list is generated at the time you first install Testopia and is maintained separately from the Bugzilla lists thereafter.  </p><p class="P23">To create a category, right click on the product or –ALL-- and choose <span class="T10">Add Category</span>. You can then click on the newly create category in the tree which will pop up a form that allows you to edit the category name or change the product it is associated with.</p><h4 class="Heading4"><a name="Elements" />Elements</h4><p class="Textbody">Once you have a category defined for your product or the –ALL-- bucket, you can add elements to that category. Elements are the crux of what makes up your environment. To create an element, right click on the category you wish to add it to and choose <span class="T10">create element. </span></p><p class="P23">This will create an element labeled “New Element” which you can edit by clicking on it in the tree, or right clicking and choosing <span class="T10">Edit. </span></p><p class="P23">Elements can be nested inside other elements. To create a sub element, right click on the element and choose <span class="T10">Add Element</span>. You can edit this child element in the same manner as its parent. You can create as many levels of elements as you need to represent the complexity of your environment.</p><h4 class="Heading4"><a name="Properties" />Properties</h4><p class="Textbody">Properties describe your element. You can add properties to your elements by right clicking the element and choosing <span class="T10">Add Property</span>.  You can add as many properties to your elements as you need. Properties cannot be nested however.</p><p class="Textbody">To edit your property, click on it in the tree or right click on it and choose <span class="T10">Edit</span><span class="T11">.</span></p><h4 class="Heading4"><a name="Property_Values" />Property Values</h4><p class="Textbody">Once you have defined a property for your element, you will need to provide a list of values from which to select for you environment. Right click on your property and choose <span class="T10">Add Value </span><span class="T11">to create a value for your property. You can edit property values by right clicking and choosing Edit, or by clicking on one of the values under your property.</span></p><p class="P23">You can change the name or reorder the list of values from the form provided. You must hit Save Changes in order for you changes to be committed.  </p><h2 class="Heading2"><a name="Creating_Your_Environment" />Creating Your Environment</h2><p class="Textbody">Once you have set up the elements that will be used in your environment, you can now create environments with those elements. </p><p class="Textbody">Click the <span class="T12">New Environment</span><span class="T11"> link in the footer. </span></p><p class="P23">You are prompted to name your environment and choose a product for it. The product is used only for classification. It does not limit your choices of which elements can be placed in your environment. </p><p class="P23">Clicking <span class="T2">Create</span> will take you to the environment editor. Here you will see two trees, one representing your new environment and the other containing the list of variables from which to choose. Your environment will consist of the elements you defined earlier. To add an element, find it in the list and simply drag it onto your environment tree. The order does not matter. You can grab child elements at any level, but dragging an element with children will bring the children as well. </p><p class="P23">Once you have selected the elements for your environment, you can now select which of the property values apply to your environment. Expand the element and property and simply click the value you wish to use. It will have a star placed next to it to show your selection. </p><p class="P23">To remove an element, right click on it and choose R<span class="T10">emove</span>.</p><p class="P23">All changes to your tree are saved immediately.  </p><p class="P23"> </p><h1 class="Heading1"><a name="Creating_A_Test_Run" />Creating A Test Run</h1><h5 class="Heading5"><a name="Shortcut__E2_80_93_Creating_a_Test_Run" />Shortcut – Creating a Test Run</h5><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P24" style="margin-left:0cm;"><p class="P24" style="margin-left:0.25cm;">Click the <span class="T5">Create a New Test Run</span><span class="T6"> link on your test plan or the </span><span class="T5">New Run</span><span class="T6"> link in the footer.</span></p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Select which test cases to include. Use the filter to narrow your scope and the paging links to view more or fewer test cases. </p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Enter a summary for this test run. </p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Select a build from the <span class="T2">Build</span> list or type the name for a new one.</p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Select an environment from the <span class="T2">Environment</span> list.</p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Click <span class="T2">Add</span>.</p></li></ol><p class="Textbody">Once you have an environment to test in and some test cases to test, you are now ready to begin testing. You do this by creating a test run. The easiest way to do this is from within your test plan. Click the <span class="T5">Create a New Test Run</span><span class="T6"> link in the Test Runs section of your plan. You can also create a run by clicking the </span><span class="T5">New Run</span><span class="T6"> link in the footer and entering your plan number.</span></p><p class="P19">You will be presented with a list of CONFIRMED test cases from your test plan. You can select only the ones you want included or all of them at once using the select all link. If you want to limit the list to only include test cases that meet certain criteria, you can use the filter to narrow down the list. If you have a lot of test cases, you can use the paging features in the table of test cases to view more than the default 25 at a time. This is important as the only test cases that will be included are those that are visible on the screen and have a check in the box next to the case ID. If you do not know which test cases to apply, or do not wish to do so at this time, you can always add test cases later. </p><p class="P19">Next you need to provide a summary and select a build. If you forgot to create the build before, you can simply type the name of a new build in the <span class="T2">New</span> box and it will be added to the product. You can then edit the build later to add a milestone. Finally you need to select an environment. You do this by typing the name of your environment in the <span class="T2">Environment</span> box. As you type, a list of environments from your product that match will appear. You can also click the drop down arrow to view a list of all environments in your product. </p><p class="P19">Once you have completed the form, click the <span class="T2">Add</span> button to be taken to your new run.</p><h5 class="Heading5"><a name="Viewing_Your_Test_Run" />Viewing Your Test Run </h5><p class="Textbody">As with the other objects, you will notice an overview section at the top of your run. This contains similar information as found in the test case and test plan with one notable exception: the progress bar. This will show you a percentage of completed test cases with the colors representing statuses.  </p><p class="Textbody">Below this section you will see the Test Case Run Logs. This table represents the test cases you will be testing each row represents a single case-run. You will notice the expander arrows next to each row in the table. Click on this to expand the case-run form. Take note of the <span class="T2">Filter</span> and <span class="T2">Report</span> expanders as well. You can use the filter much like you did when choosing the test cases to include in your run, except this provides more options for narrowing the list of case runs visible at a time.</p><h5 class="Heading5"><a name="Adding_Cases" />Adding Cases</h5><p class="Textbody">There are two ways to add test cases to your test run. The first deals with adding test cases that are not already part of this run but are in the test plan the run belongs to. You do this by clicking the <span class="T2">Add Cases</span> button below the case-run table. This will take you back to the list of test cases you saw when creating your test run excluding any test cases in your plan that are already in this run. </p><p class="Textbody">The second method deals with adding a second (or third or more) instance of a test case with a different build and/or environment combination. To do this, enter the test case ID's separated by commas in the box above the table but below the filter. You then select a build and an environment from the available drop-down lists and click the New Case-Run button. You also have the option of adding them from a list, similar to above, except that test cases that are currently part of the run will be included. Do this by clicking the <span class="T5">Add several at once</span><span class="T6"> link.</span></p><h5 class="Heading5"><a name="Editing_Test_Run_Fields" />Editing Test Run Fields</h5><p class="Textbody">As with test cases and test plans, you can update any of the values you applied when you created the test run in the form at the bottom of the page. Note that changing the build and environment will not affect the case-runs already in the run but it will apply to any test cases added after the change. Changes to these fields are tracked and a history is kept much the same way as with test plans and test cases. Clicking the <span class="T2">History</span> button will display this history.</p><h1 class="Heading1"><a name="Running_Your_Tests" />Running Your Tests</h1><p class="Textbody">As a tester, you will likely spend most of your time running tests and recording the results from the test run page. When you first open a run the test cases are represented in a table as case-runs. Clicking the expander arrow next to each test case will expand the test case-run form. Your run may included only those test cases that are required for a specific testing priority, or for a given tester. Or, your test run may include a larger set of test cases that represents an entire test cycle. On a given day, you may only want to test the highest priority test cases and skip lower priorities for later in the process. Or you may just want to run regression tests on the set of previously failed test cases. You can do this using the filters.  </p><h5 class="Heading5"><a name="Filtering_Your_Test_Cases_in_a_Run" />Filtering Your Test Cases in a Run</h5><p class="Textbody">Expand the <span class="T2">Filter </span><span class="T3">by clicking the expander triangle next to the filter. You will notice a number of options for filtering your test cases including:</span></p><ul style="margin-left:1.25cm;"><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Status </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Category </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Build </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Environments </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Priorities </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Components </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Assignee </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Tags </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Case summary. </p></li></ul><p class="P27">Testopia remember your filters so that the next time you view this run it will apply the last filter you used. To clear the filter and return to the full list click the <span class="T2">Clear</span> button.</p><h5 class="Heading5"><a name="Sorting_Test_Cases" />Sorting Test Cases</h5><p class="Textbody">You can sort the list of test cases by clicking on any of the table column headings. You can also sort on the summary by clicking any of the <span class="T2">Summary </span><span class="T3">field headers. If you wish to create a custom sort order for your test cases, type a number to index on in the </span><span class="T2">Index</span><span class="T3"> fields and click </span><span class="T2">Change</span><span class="T3">. Sorting on this field will then display your cases in ascending order of the indexes you supplied.</span></p><p class="P27">Currently Testopia only supports ascending sorts. Support for descending sorts are planned for future releases. </p><h5 class="Heading5"><a name="Passing_and_Failing_Test_Cases" />Passing and Failing Test Cases</h5><p class="Textbody">Once you are ready to begin testing, expand the first test case in your list and read the <span class="T2">Action</span> and <span class="T2">Expected Results</span><span class="T3"> for this case. You can then perform the test. If the expected outcome is achieved you can pass the test by clicking the green check or </span><span class="T2">PASSED</span><span class="T3"> button: </span><span class="T3"><img width="18" height="18" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr3" /></span><span class="T3">.</span></p><div class="P27">If the results were not expected or an error occurred, you can fail the test by clicking the red X or <span class="T2">FAILED</span> button: <img width="18" height="18" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr3" />.</div><p class="P27">Explanations of the other statuses appear at the end of this document. </p><h5 class="Heading5"><a name="Adding_Notes" />Adding Notes</h5><p class="P27">Updating the status will add a line to the notes field with the time of the change and who made it. You can add additional notes by typing them in the <span class="T2">Add Note</span> field and clicking <span class="T2">Append Note</span>.</p><h5 class="Heading5"><a name="Attaching_Bugs" />Attaching Bugs</h5><p class="P27">If a test case has failed, or for any other reason, you may want to attach a bug to this test. You can attach existing bugs or create new ones. To attach an existing bug, type the bug number in the box and click <span class="T2">Attach Bug</span>. The bug will be displayed in the <span class="T2">Bugs Detected</span> field. If you wish to log a new bug, click the <span class="T2">New </span>button. You will be taken to the enter bug page with information about the test case already provided in the form. You can now provide any additional details and submit the bug. This is done in a new window so that you do not lose your place in testing. To return to your run, close the new window.</p><h5 class="Heading5"><a name="Reassigning_Tests" />Reassigning Tests</h5><p class="Textbody">The assignee field is used to help testers track their own test cases. If you wish to change the assignee of a particular test case, you can do so by entering their Bugzilla user name in the assignee field and clicking <span class="T2">Assign</span>. Updating test cases is not limited by assignee. Anyone with rights to edit the case-run can pass or fail the test. If a test case is closed (PASSED, FAILED, or BLOCKED), the name of the person who performed the action is captured in the <span class="T2">Tested By</span> field. </p><h5 class="Heading5"><a name="Changing_Build_or_Environment_on_a_Test_Case" />Changing Build or Environment on a Test Case</h5><p class="Textbody">Testopia is designed to be flexible. Testing organizations vary greatly on modes and methodologies. For this purpose, test runs were designed to allow the greatest flexibility possible as to how tests are run. Some groups will create a single test run for each build and environment combination they encounter. Others will want a monolithic test run that represents an entire product release. In this case you can update the build and environments on individual test cases in your run. Each time you do, the appropriate case-run record is returned, if one exists, or is created if it does not. A note is appended with the time of the change as well as who made the change. If a new record is created, the status is set to IDLE and you are ready to test with your new build or environment selection. For any given run, the case-runs displayed are the last ones that were updated. In essence however, the case-run table represents a two dimensional view of a three dimensional object. Changing the build or environment bring the corresponding record to the forefront. This should be kept in mind when running reports on case runs as what you see in a run is only the surface of what data may be included. </p><h5 class="Heading5"><a name="Classic_View" />Classic View</h5><p class="Textbody">The test run page uses Javascript and AJAX technology to provide a more seamless user experience while running your tests. If you have trouble with the forms or would like a simpler view of your case runs, you may use the <span class="T2">classic interface</span>.  This provides a view of a single test case-run at a time. From here you can update any of the fields mentioned above and also attach files to the test case. </p><h5 class="Heading5"><a name="Deleting_Case-Runs" />Deleting Case-Runs</h5><p class="Textbody">Sometimes you might mistakingly add a test case to a run that does not belong or you may select an invalid build and environment combination. In these cases it is easiest to remove them by deleting the case-run all together. You must have the proper permissions to do so and the administrator needs to allow this in the parameters. To delete a single case run, click the <span class="T5">Delete</span><span class="T6"> link on the standard form, or click the </span><span class="T7">Delete</span><span class="T6"> button on the classic form. You will be prompted to confirm the action before the record is removed.</span></p><h5 class="Heading5"><a name="Updating_Multiple_Cases_at_Once" />Updating Multiple Cases at Once</h5><p class="Textbody">You can update a group of case-runs at once by clicking the <span class="T5">Update Multiple</span><span class="T6"> link below the table of cases. From here you can change the status, attach bugs, update build or environment attributes, and even delete a whole list at once. </span></p><h5 class="Heading5"><a name="Wrapping_Up" />Wrapping Up</h5><p class="Textbody">Once all tests in a run are complete, you should set the status on the run to STOPPED. This will prevent further updates to case-runs in the run. </p><h1 class="Heading1"><a name="Getting_Around_Testopia" />Getting Around Testopia</h1><p class="Textbody">Navigating Testopia is done using the links in the Bugzilla footer. You can use the QuickSearch box to quickly jump to any case, run, plan or environment. To do so simply type the object's ID number, or part of the name or summary, prefixed by a type identifier. Following is the list of identifiers: </p><div style="text-align:left"><table border="0" cellspacing="0" cellpadding="0" class="Table1"><colgroup><col width="256" /><col width="256" /></colgroup><tr><td style="text-align:left;width:2.3083in; " class="Table1A1"><p class="TableHeading">Object </p></td><td style="text-align:left;width:2.3083in; " class="Table1B1"><p class="TableHeading">Prefix </p></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST CASE</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><p class="P29">(Optional for cases)  </p><ul style="margin-left:1.25cm;"><li class="P30" style="margin-left:0cm;"><p class="P30" style="margin-left:0cm;">case  </p></li><li class="P30" style="margin-left:0cm;"><p class="P30" style="margin-left:0cm;">TC  </p></li><li class="P31" style="margin-left:0cm;"><p class="P31" style="margin-left:0cm;">c  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST PLAN</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P32" style="margin-left:0cm;"><p class="P32" style="margin-left:0cm;">plan  </p></li><li class="P32" style="margin-left:0cm;"><p class="P32" style="margin-left:0cm;">TP  </p></li><li class="P33" style="margin-left:0cm;"><p class="P33" style="margin-left:0cm;">p  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST RUN</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P34" style="margin-left:0cm;"><p class="P34" style="margin-left:0cm;">run  </p></li><li class="P34" style="margin-left:0cm;"><p class="P34" style="margin-left:0cm;">TR  </p></li><li class="P35" style="margin-left:0cm;"><p class="P35" style="margin-left:0cm;">r  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST RUN ENVIRONMENT</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P36" style="margin-left:0cm;"><p class="P36" style="margin-left:0cm;">env  </p></li><li class="P36" style="margin-left:0cm;"><p class="P36" style="margin-left:0cm;">TE  </p></li><li class="P37" style="margin-left:0cm;"><p class="P37" style="margin-left:0cm;">e  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST CASE-RUN</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P38" style="margin-left:0cm;"><p class="P38" style="margin-left:0cm;">caserun  </p></li><li class="P38" style="margin-left:0cm;"><p class="P38" style="margin-left:0cm;">TCR  </p></li><li class="P39" style="margin-left:0cm;"><p class="P39" style="margin-left:0cm;">cr  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TAGS</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P40" style="margin-left:0cm;"><p class="P40" style="margin-left:0cm;">tag  </p></li></ul></td></tr></table></div><p class="Textbody"><br />So for example, to find test run 45 you could type <span class="T10">r 45</span> or <span class="T10">tr 45</span> or <span class="T10">run 45.</span></p><p class="P23">To find environments with 'Linux' in the name you could type <span class="T10">e:linux </span>or <span class="T10">TE Linux</span>.</p><h2 class="P41"><a name="Searching" />Searching</h2><p class="P23">Bugzilla has very powerful searching capabilities. Testopia has applied the Bugzilla search engine to searching for test cases, plans, runs, environments, and case-runs. Each of these has its own set of search parameters that can be used to narrow the scope of a search. To perform a search, click the <span class="T5">S</span><span class="T8">earch</span><span class="T5"> </span>link in the footer and then click the tab representing the object you wish to search from.. From here you select the parameters you wish to query on and click the <span class="T2">Submit</span> button. This will take you to the corresponding list page for that object.</p><h5 class="Heading5"><a name="Sorting_Search_Results" />Sorting Search Results</h5><p class="P23">Search results are paged and sortable. To sort, click the column header of the corresponding field you wish to sort on. This will return the list in ascending order. Descending sorts are not currently supported but are planned. </p><h5 class="Heading5"><a name="Paging" />Paging</h5><p class="P23">By default, Testopia will display 25 records at a time. You can use the links at the bottom of the list to navigate from one page of search results to another or use the <span class="T2">Jump To Page</span> button to jump directly to a page of results. You change the number of records you view at a time by selecting an option from the page size drop down. Lastly, if there are not too many records, you can opt to view all of the records at once using the <span class="T5">View All</span><span class="T6"> link. </span></p><h5 class="Heading5"><a name="Batch_Processing" />Batch Processing</h5><p class="Textbody">From the search results page of cases, runs, plans, and case-runs, you can update a batch of objects at once. Do this by selecting which objects to update by checking its box and then updating the fields at the bottom of the form. For example, with test cases, you can apply changes to virtually any fields as well as add these cases to test runs or link them to a set of plans. You can also export test cases as CSV or XML. More on this later. </p><h5 class="Heading5"><a name="Saved_Searches" />Saved Searches</h5><p class="Textbody">Like Bugzilla, Testopia offers the user the opportunity to save a search for later retrieval. You do this by typing a name in the <span class="T10">save search as</span> field and clicking the <span class="T2">Save Search</span> button. Saved searches appear below the other Testopia links in the footer. You can remove a saved search by running it and clicking the <span class="T5">Delete saved query</span><span class="T6"> link at the bottom of the search results page.</span></p><h2 class="Heading2"><a name="Reporting" />Reporting</h2><p class="Textbody">As with searching, Testopia has modified the Bugzilla reporting engine to provide basic tabular reports based on a set of search criteria. These reports can be run on test cases, runs, plans, and case-runs. To run a report, click the <span class="T5">Reports</span> link in the footer and click the tab corresponding to the object you wish to report on. Select the fields for the horizontal and vertical axes of the report  and then select your search criteria. The default report is in the form of tabular data. You can then switch between bar and line graph modes or export the data as a CSV (comma separated values) file which can be opened in a spreadsheet.</p><p class="Textbody">In addition to these generic reports, certain objects have other reports associated with them. These are accessed from the object pages directly.  </p><h5 class="Heading5"><a name="Plan_Reports" />Plan Reports</h5><h9 class="P42"><a name="Build_Coverage_Report" />Build Coverage Report</h9><p class="Textbody">This Report is designed to show builds that are not being covered in testing. It breaks down each run, displaying the status of the latest case-run for a given build. If there are builds that are not being covered, no status will display for any runs for that build. This report is not very practical for plans with very large numbers of test cases. </p><h9 class="P42"><a name="Top_Bugs" />Top Bugs</h9><p class="Textbody">This report displays the bugs found in test cases within the test plan ordered by the bugs attached to the most test cases. In other words, which bugs are failing the most test cases. </p><h9 class="P42"><a name="Bugs_Found_In_This_Plan" />Bugs Found In This Plan</h9><p class="Textbody">This generates a bug list of all the bugs attached to any case in this plan. </p><h9 class="P42"><a name="Printable_Percentage_Report" />Printable Percentage Report</h9><p class="Textbody">This report displays the pass/fail percentages of the plan by run, build, and environment. </p><h5 class="Heading5"><a name="Test_Case_Reports" />Test Case Reports</h5><h9 class="P42"><a name="Estimated_vs_Actual_Time" />Estimated vs Actual Time</h9><p class="Textbody">Test cases can have a time estimate associated with them. This can then be used in conjunction with the case-runs for that case to determine the actual running time. To do this, test case-runs must be placed in the RUNNING state when a test is started. This then starts the stopwatch so to speak for that case in that run. When a case is passed or failed the difference of the two times is calculated. The average of all case-runs in all runs for this case is then used to calculate this report. </p><h9 class="P42"><a name="Historic_Status_Breakdown" />Historic Status Breakdown</h9><p class="Textbody">This pie chart represents the percentage of all case-runs for this case divided by status. </p><h2 class="Heading2"><a name="Cloning" />Cloning</h2><p class="Textbody">Often it is desirable to copy test information for use in a new development cycle. Testopia allows you to clone test cases, test run, and whole test plans, allowing you more efficiently move from one product release to another. Cloning is performed by clicking the <span class="T2">Clone</span> button on the object you wish to clone.</p><h5 class="Heading5"><a name="Cloning_Test_Plans" />Cloning Test Plans</h5><p class="Textbody">To clone a test plan: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Navigate to the plan you wish to clone and click the <span class="T2">Clone</span> button.</p></li><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Enter a name for the new plan or accept the default. </p></li><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Choose a product and product version to clone to. </p></li><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Select the clone options </p></li><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Click <span class="T2">Clone</span>.</p></li></ol><p class="Textbody">When cloning a test plan, you have the option to copy attachments, the plan document, any tags, and the plans access control list. You have the option of either copying the test cases, or creating links to the existing test cases. Copying the test cases will produce a new set of test cases with new Ids whereas linking will allow you to make modifications to your test cases and have then reflected everywhere.  </p><p class="Textbody">If you choose to copy the test cases, you are also given the option to apply yourself as the author of the new cases. </p><h5 class="Heading5"><a name="Cloning_Test_Cases" />Cloning Test Cases</h5><p class="Textbody">To clone a test case: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">Navigate to the test case you wish to clone and click the <span class="T2">Clone</span> button.</p></li><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">Select a clone method. </p></li><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">If copying, check the box to copy within the plans already associated </p><ol style="margin-left:0.75cm;list-style-type:decimal; "><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">Enter the plan ids of any additional test plans you wish to copy to </p></li><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">Select clone options </p></li></ol></li><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">If linking, enter the ids of any plans you with to link this case to. </p></li></ol><p class="Textbody">As with cloning plans, you have the option of making yourself the author of the copy. You can choose to copy the attachments, tags, components, and document. </p><h5 class="Heading5"><a name="Cloning_a_Run" />Cloning a Run</h5><p class="Textbody">To clone a test run: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Navigate to the test run you wish to clone and click the <span class="T2">Clone</span> button.</p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Enter a summary for the copy. </p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Choose a plan within the product to clone to. </p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Choose a product version and build. </p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Select clone options. </p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Click the <span class="T2">Clone</span> button.</p></li></ol><p class="Textbody">In addition to the options to copy the tags and making yourself the manager of the cloned run, you have the option of copying over the test cases. You can limit the clone to only include test cases of a certain status. For instance you may want to only include cases that failed in the cloned run. </p><h2 class="Heading2"><a name="Deleting" />Deleting</h2><p class="Textbody">It is possible to delete test cases, plans, runs and case-runs. To delete, you must have the allow-test-deletion parameter turned on and have the proper rights. Bugzilla admins (members of the admin group) can delete regardless of the parameter settings and have rights to delete anything in the Testopia system. </p><p class="Textbody">To delete an object, click the Delete button on that objects page. You will be taken to a confirmation screen detailing what other objects will be deleted, if any, as a result of deleting this object. To confirm, click the <span class="T2">Delete This Test</span> button. Deleting in Testopia is irreversible. If you wish to simply hide an object instead you can do so using the methods outlined below:</p><h9 class="Heading9"><a name="Test_Cases" />Test Cases</h9><p class="Textbody">To hide a test case from search results, place it in the DISABLED status.  </p><h9 class="Heading9"><a name="Test_Plans" />Test Plans</h9><p class="Textbody">To hide test plans from search results, you can archive them by clicking the <span class="T2">Archive</span> button on the plan page. </p><h9 class="Heading9"><a name="Test_Runs" />Test Runs</h9><p class="Textbody">To hide test runs, place them in the STOPPED state.  </p><h1 class="Heading1"><a name="Importing_and_Exporting" />Importing and Exporting</h1><p class="Textbody">Test cases can be exported as either XML or in Comma Separated Value formats. To export a test cases, click the appropriate format button under the <span class="T2">Export</span> section found at the bottom of the test plan page, the test case page, or the case search results page.</p><p class="Textbody">Exporting in CSV allows you to open you test cases in a spreadsheet where you can manipulate the values and generate custom reports. </p><p class="Textbody">Exporting as XML allows you to import your test cases into other Testopia installations or into custom database applications. </p><h5 class="Heading5"><a name="Importing_Test_Cases" />Importing Test Cases</h5><p class="Textbody">You can import test cases from other Testopia installations or from other test case management systems using the tr_importxml.pl script. In order to be eligible for import, your exported test cases must first comply with the Testopia document type definition found in the testopia.dtd file. This can be done by using XML stylesheets to transform the XML to match the DTD. This is outside the scope of this manual, but information on this subject is readily available via the web. </p><p class="Textbody">To import test cases, run the tr_importxml.pl script with the path to your test case XML file. More details can be found on the project wiki at </p><p class="Textbody">        <a href="http://wiki.mozilla.org/Testopia:Documentation:XMLImport">http://wiki.mozilla.org/Testopia:Documentation:XMLImport</a> </p><h1 class="Heading1"><a name="Testopia_Security" />Testopia Security</h1><p class="Textbody">Like Bugzilla, Testopia provides several methods for restricting access to test data. Because test data is often more forward looking than bug reports, Testopia requires that users log in to see any test objects. There are several layers of security that a user must pass through to view those objects however. These are determined in part by Bugzilla group membership, but mostly by the test plan access control list. </p><h2 class="Heading2"><a name="The_Testers_Group" />The Testers Group</h2><p class="Textbody">When you first install Testopia, it will create a Bugzilla group called 'Testers'. Members of this group have access to view and update all test plans and their associated objects such as cases and runs. Membership in this group is required in order to create new test plans, clone test plans, and  administer environments. If the <span class="T2">testopia-allow-group-member-deletes</span><span class="T3"> parameter is on, members of this group will also have rights to delete any object in Testopia. Membership in this group is checked first and supersedes the access control lists for individual plans.</span></p><h2 class="Heading2"><a name="Test_Plan_Access_Control_Lists" />Test Plan Access Control Lists</h2><p class="Textbody">In addition to the Testers group, each test plan maintains it's own access control list which can be used to allow or deny access to test plans based on email domain or explicit inclusion. Each test plan has its own access list. For a user that is not in the Testers group to access a test plan or any associated cases, runs, or case runs, he or she must be included on the list either by matching a regular expression, or explicit inclusion. To edit the access control list for a plan, navigate to the test plan and click the <span class="T5">Edit Access Controls</span><span class="T6"> link in the over view section.</span></p><h5 class="Heading5"><a name="User_Regular_Expression" />User Regular Expression</h5><p class="Textbody">Users with login names (email addresses) matching a supplied regular expression can be given rights to a particular test plan. The regular expression should be crafted with care to prevent unintentional access to the test plan by outsiders. For example, to grant access to your test plan by all users at acme.com you would supply the following regular expression: </p><p class="Textbody">        <span class="T14">^.*@acme\.com$</span></p><p class="Textbody">To provide access to all users at acme.com and foo.org you would use: </p><p class="Textbody">        <span class="T14">^.*@(acme\.com|foo\.org)$</span></p><p class="Textbody">To provide public access (all users) you would use: </p><p class="Textbody">        <span class="T14">.*</span></p><p class="Textbody">An empty regular expression does not match anything meaning leaving this field blank will mean the test plan will rely solely on explicit membership. </p><p class="Textbody">Once you have supplied the regular expression, you must select the access level.  </p><h5 class="Heading5"><a name="Explicit_Inclusion" />Explicit Inclusion</h5><p class="Textbody">If you do not wish to grant access to a whole group at once, you can add individual users by entering their Bugzilla login in the field provided and clicking the <span class="T2">Add User</span> button. This allows the most fine grained control as to who can do what within your test plan. However, if you add a user that matches the regular expression they will have the greater of the two rights.</p><h2 class="Heading2"><a name="Access_Rights" />Access Rights</h2><p class="Textbody">Users on the test plan access control lists can be granted rights to read, write, delete, and admin test plans and their associated objects. </p><h5 class="Heading5"><a name="Read" />Read </h5><p class="ListContents">Allows viewing rights to the plan and all test cases, test runs, and test case-runs associated with it. Test cases linked to more than one plan will be visible to users in both plans. </p><h5 class="Heading5"><a name="Write" />Write </h5><p class="ListContents">Implies Read. Allows rights to modify the plan and associated cases, runs, and case-runs.  </p><p class="ListContents">Test cases linked to more than one plan will not be writable unless the user has write rights in all plans. </p><h5 class="Heading5"><a name="Delete" />Delete </h5><p class="ListContents">Implies Read and Write. Allows rights to delete the plan and associated cases, runs, and case-runs. Test cases linked to more than one plan will not be deletable unless the user has delete rights in all plans. </p><h5 class="Heading5"><a name="Admin" />Admin </h5><p class="P46">Implies Read, Write, and Delete. Allows rights to modify the plan's access controls.  </p><h1 class="Heading1"><a name="Tags" />Tags</h1><p class="Textbody">Testopia utilizes a tagging mechanism to help organize test objects. Unlike the traditional method of placing things into virtual folders, tags allow a many-to-many relationship by allowing multiple objects to have the same tag while allowing each object to have multiple tags. </p><p class="Textbody">Tags are a novel approach to categorizing objects. They have become very popular with numerous web popular web tools and have met with much success. Tags are similar to keywords in Bugzilla but do not require an administrator to create. The act of tagging an object creates the tag which can then be used anywhere. </p><p class="Textbody">The idea behind tags is that each user can categorize each item to his or her own liking without destroying other users' categorizations. Test cases, plans, and runs can all have tags associated with them. Though tags are not directly associated with a product, Testopia uses a smart typing approach to recommend tags based on relationships to other objects within the same product. </p><p class="Textbody">Tags have a knowledge of who added them to a particular object as well, allowing users to manage the tags that they have created. </p><h5 class="Heading5"><a name="Adding_Tags_to_an_Object" />Adding Tags to an Object</h5><p class="Textbody">To add a tag to a test case, run, or plan, begin typing in the <span class="T2">Tag</span> field. If what you type matches any other tags that others have applied within the product associated with this object, it will appear up in the drop down list. You can then either select a tag that matches or type your own new tag. Clicking the Add button will then attach your tag to the object.</p><h5 class="Heading5"><a name="Viewing_Tags" />Viewing Tags</h5><p class="Textbody">To see a list of your tags click the <span class="T5">Tags</span><span class="T6"> link in the header above the tags section in any object. From this screen you have the option to look up tags based on product or entered by another user.</span></p><h1 class="Heading1"><a name="Using_Testopia_With_Automated_Test_Scripts" />Using Testopia With Automated Test Scripts</h1><p class="Textbody">Testopia provides a web service XML RPC that utilizes the SOAP protocol to interact with Testopia objects via an automated script. Documentation for this feature is available on the project wiki at <a href="http://wiki.mozilla.org/Testopia:Documentation:XMLRPC">http://wiki.mozilla.org/Testopia:Documentation:XMLRPC</a> </p><h1 class="Heading1"><a name="Field_Descriptions" />Field Descriptions</h1><h3 class="Heading3"><a name="Test_Plans" />Test Plans</h3><p class="Definition">Name </p><p class="List1End">        Short descriptor for a test plan. Does not need to be unique.</p><p class="Definition">Product </p><p class="List1End">        Bugzilla product that this plan is associated with.</p><p class="Definition">Product Version </p><p class="List1End">        The Bugzilla product version. Used as the default for new runs.</p><p class="Definition">Type </p><p class="List1End">        The testing type for this test plan. Possible values include system, integration, unit, functional and acceptance. This list is modifiable by the Bugzilla admins from the Testopai Admin link.</p><p class="Definition">Archive </p><p class="List1End">        If this bit is set to true, the plan will be archived and not display in searches by default.To archive a plan click the <span class="T2">Archive</span> button. To unarchive click <span class="T2">Unarchive</span>.</p><p class="Definition">Plan Document </p><p class="List1End">        This is document that spells out the type of testing and testing methods used for this plan.</p><p class="Definition">Tags </p><p class="List1End">        See tags description above.</p><h3 class="Heading3"><a name="Test_Cases" />Test Cases</h3><p class="Definition">Summary </p><p class="List1End">        A short description of the test case.</p><p class="Definition">Default Tester </p><p class="List1End">        The person who will be assigned to this test case when a new run is created in which this case is included.</p><p class="Definition">Alias </p><p class="List1End">        A unique string that can be used to identify this test case. This can be used in place of the test case ID but must be globally unique to the database.</p><p class="Definition">Requirement </p><p class="List1End">        The requirement number or URL to a document containing the requirement this test case is designed to test.</p><p class="Definition">Status </p><p class="List1End">        Test case status determines whether this test case can be included in new test runs.</p><ul style="margin-left:1cm;"><li class="P47" style="margin-left:0cm;"><p class="P47" style="margin-left:0.25cm;"><span class="T2">PROPOSED</span> – This test case is a work in progress and has not been reviewed for accuracy. It is therefore not ready to be included in test runs.</p></li><li class="P47" style="margin-left:0cm;"><p class="P47" style="margin-left:0.25cm;"><span class="T2">CONFIRMED</span> – Test case has passed review and is ready to be included in future test runs. Only test cases with this status can be included in new test runs.</p></li><li class="P47" style="margin-left:0cm;"><p class="P47" style="margin-left:0.25cm;"><span class="T2">DISABLED</span> – This test case is no longer applicable to current testing.</p></li></ul><p class="Definition">Priority </p><p class="List1End">        This denotes the level of testing. Higher priority test cases should be run first and more often then lower priorities.</p><p class="Definition">Category </p><p class="List1End">        The product category that this test case belongs to. Each product has a default category. Additional categories can be added which can be used to further classify your test cases. Because this is a product attribute, this list will be the same for all plans in a given product.</p><p class="Definition">Estimated Time </p><p class="List1End">        The estimated time in HH:MM:SS format that this test case should take to complete.</p><p class="Definition">Add To Runs </p><p class="List1End">        Entering a run ID here will include this test case in a test run if it is not already included. You can also enter a comma separated list of run numbers to add to multiple runs at once.</p><p class="Definition">Automatic </p><p class="List1End">        Test cases can be either Automatic or Manual. Automatic test cases are run by a script while manual test cases are performed by a tester.</p><p class="Definition">Script </p><p class="List1End">        If this is an automatic test case, you can enter the name of the script that runs this test case. TESTOPIA DOES NOT RUN YOUR SCRIPT FOR YOU. You must run your script and capture the results to send to Testopia. You can use the XMLRPC interface to have your script update the test case-run results automatically.</p><p class="Definition">Arguments </p><p class="List1End">        If there are specific arguments sent to the script that apply to this test case, they can be stored here. TESTOPIA DOES NOT RUN YOUR SCRIPTS FOR YOU. This field is only used to store the information. The XMLRPC can be used by your script to capture this from the test case.</p><p class="Definition">Attach Bugs </p><p class="List1End">        You can attach bugs to your test cases. This field accepts a comma separated list of bug numbers.</p><p class="Definition">Depends on </p><p class="List1End">        If this test case requires other test cases be run before this one, their case numbers should appear here. Enter a list of comma separated case numbers to add dependencies.</p><p class="Definition">Blocks </p><p class="List1End">        If this test case prevents others from being run their ID numbers will appear here. This field accepts a comma separated list of case numbers.</p><p class="Definition">Set Up </p><p class="List1End">        This field details the steps that are necessary to prepare to run a test</p><p class="Definition">Break Down </p><p class="List1End">        This field details the steps required to reset the test case to a known state in preparation for the next run.</p><p class="Definition">Action </p><p class="List1End">        This field lists the steps of testing. </p><p class="Definition">Expected Results </p><p class="List1End">        This details the expected outcomes of a test. </p><p class="Definition">Component </p><p class="List1End">        You can associate Bugzilla components to your test cases. Because testing might be across multiple components and products, you can add multiple components from any product. Selecting the product from the drop down list displays the components available. Click Add to associate the selected component with the test case.</p><p class="Definition">Tags </p><p class="List1End">        See above for a description.</p><h3 class="Heading3"><a name="Test_Runs" />Test Runs</h3><p class="Definition">Product Version </p><p class="List1End">        This is the Bugzilla product version that this test run is testing.</p><p class="Definition">Plan Version </p><p class="List1End">        This is the version of the plan document that this test run is using.</p><p class="Definition">Manager </p><p class="List1End">        The user in charge of this test run</p><p class="Definition">Build </p><p class="List1End">        The default product build. This is applied to test cases added to the run.</p><p class="Definition">Status </p><p class="List1End">        Determines if this test run is active. </p><ul style="margin-left:1cm;"><li class="P48" style="margin-left:0cm;"><p class="P48" style="margin-left:0.25cm;">RUNNING – This test run is still active. Test cases in this run can be updated. </p></li><li class="P48" style="margin-left:0cm;"><p class="P48" style="margin-left:0.25cm;">STOPPED – Test cases in a stopped run cannot be modified. </p></li></ul><p class="Definition">Environment </p><p class="List1End">        This is the environment in use for this test run. Test cases added to this run will receive this environment. Environments must be created using the Environment editor before a test run can be created.</p><p class="Definition">Summary </p><p class="List1End">        A short description of this test run</p><p class="Definition">Notes </p><p class="List1End">        This field is a place to make notes and observations about this run.</p><h3 class="Heading3"><a name="Test_Case-Runs" />Test Case-Runs</h3><p class="Definition">Status </p><p class="List1End">        The status of a case-run determined by whether it passed or failed or is in some other state.</p><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">IDLE</span>: This is the default status. Case has not yet been examined.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">PASSED</span>: This test case met the requirement or ran as expected.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">FAILED</span>: This test case did not run as expected or produced an unhandled exception.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">RUNNING</span>: This test case is currently being examined.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">PAUSED</span>: This status is used to denote a problem with the test case itself that prevents the test from being completed.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">BLOCKED</span>: This test case has a dependency that failed.</div><p class="P49"> </p><p class="P49"> </p><p class="Definition">Index </p><p class="List1End">        A user defined sort index. This can be used to place your test cases in a specific order.</p><p class="Definition">Add Notes </p><p class="List1End">        This is a place to append notes to the case-run. </p><p class="Definition">Notes </p><p class="List1End">        This field combines the notes from all case-runs records for this case in this run as well as status change history.</p><p class="Definition">Update bug status </p><p class="List1End">        With this box checked, bugs that are attached to this test case in the RESOLVED FIXED state will be automatically placed in the REOPENED state if the test case fails or into the VERIFIED FIXED state if it passes. </p><p class="Definition">Attach Bugs </p><p class="List1End">        This field allows you to attach bugs to this test case. Enter a comma separated list of bug numbers to attach more than one bug at a time.</p><p class="Definition">Assignee </p><p class="List1End">        This is the person assigned to run this test case.</p><p class="Definition">Tested By </p><p class="List1End">        This is the person that actually ran the test. This is updated when a test case is placed into the PASSED, FAILED, or BLOCKED status.</p><p class="Definition">Close Date </p><p class="List1End">        The time this test case was closed (PASSED, FAILED, or BLOCKED)</p><p class="Definition">Build </p><p class="List1End">        The product build used for this test case-run.</p><p class="Definition">Environment </p><p class="List1End">        The product environment used for this test case run.</p><p class="Textbody"> </p><p class="Textbody">        </p><h1 class="P12"><a name="Glossary" />Glossary</h1><div style="text-align:left"><table border="0" cellspacing="0" cellpadding="0" class="Table2"><colgroup><col width="131" /><col width="140" /><col width="451" /></colgroup><tr><td style="text-align:left;width:1.1757in; " class="Table2A1"><p class="TableHeading">Term </p></td><td style="text-align:left;width:1.259in; " class="Table2A1"><p class="TableHeading">Objects </p></td><td style="text-align:left;width:4.0646in; " class="Table2C1"><p class="TableHeading">Description </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Action </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents">Test Case </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The list of steps that a test case must complete. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Alias </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents">Test Case </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A globally unique string that identifies a test case in conjunction with the test case ID.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Archive </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents">Test Plan </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">Test plans may be archived and hidden from regular searches. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Arguments </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents">Test Case </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A list of parameters to send to an automatic test script . </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Assignee </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The person responsible for applying a status to a test case-run </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Blocks </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A test case that blocks another test case. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">BLOCKED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run indicating the prerequisite test case failed. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Build </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">In software testing, a string denoting the compiled results of a period of development.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Category </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A property of a product that is used to classify test cases. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Clone </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">An exact replica of data between two objects. In Testopia you can clone plans, runs, and cases. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Component </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A Bugzilla component. An attribute of a product. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">CONFIRMED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a case. Confirmed test cases have been approved for use in test runs. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Default Tester </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The default person responsible for applying a status to the test case-run for a given test case. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Dependency </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">Test cases can be dependent on other test cases. There are two types of relationships, depends on and blocks. A test case that is blocked by another should not be examined before the prerequisite test case as success is determined in part by the outcome of the predecessor. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Depends on </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">Sets up a dependency between test cases. Depends on lists the test cases that a particular test case requires to be completed before this case. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">DISABLED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case denoting it is no longer used for active testing. Similar to archival for a plan. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Expected Results </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The expected results upon completing the action of a test case. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Environment </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A list of the surrounding conditions that a test run is performed in. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">FAILED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case failed in the given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">IDLE </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case has not been examined in the given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Manager </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The person in charge of a given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Milestone </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A Bugzilla object. A property of a product that implies when a given bug or feature will be fixed or included. Testopia builds are associated with milestones. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">PASSED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case has met the conditions of success detailed in the Expected Results of the test case in the given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">PAUSED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case has been under examination in the given run and is on hold. Used primarily for performance tests that may span long time periods. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Plan Document </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The information of a test plan detailing what the test plan will cover for what by when. Depending on the level of scrutiny required it can be very verbose. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Plan Version </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The version of the plan document used for a particular run.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Priority </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The Bugzilla priority. Test cases can be assigned a priority similar to bugs. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">PROPOSED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case that denotes it has not yet been approved for use in test runs.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Requirement </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A field of a test case provided to capture information about a requirement. Typically an ID of a requirement in a separate requirement tracking system. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">RUNNING </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case is in the process of being examined in the given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Running </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test run. Running test runs can have case-runs updated and implies that there is further testing to be done in the run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Script </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A path to an external automated test script for a given test case. Testopia does not run this script, the field is only provided as a way of informing the user where to find it. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Stopped </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test run. Stopped test runs can not have case-runs updated. This status denotes the run is complete. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Tag </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A user defined string used to classify test plans, cases, and runs.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Test Case </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A list of conditions and expected results for success for a particular feature or object under scrutiny. Test cases are associated with one or more test plans and with zero or more test runs. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Test Case-run </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The union of a test case and a test run. Each time a test case is included in a new test run, an entry is made for it in the test case-runs table. This captures whether the test case passed or failed in the given run. Each case-run should be associated with only one build for a given status.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Test Plan </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The defining object in Testopia. Organizes the other objects in Testopia. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Test Run </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The instance of performance in Testopia. Each run is associated with a single plan and environment. It contains a list of test cases to be examined and stores the results in the case-runs table.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Tested By </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The person who examined and applied a status to a given case-run </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Type </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The plan type. Plan types might include System, Unit, Integration etc. Each plan can be of only one type. </p></td></tr></table></div><p class="Textbody"> </p><h1 class="P12"><a name="Getting_Help" />Getting Help</h1><p class="Textbody">There are a number of resources for getting help in Testopia. You should first check out the FAQ on the wiki for additional pointers not included in this manual. If your problem is not there, asking your question on the mailing lists or in the chat room are your next best options. Please do not email the developers directly with support questions. They are busy people like you who have other commitments and cannot expect to be available at all times. Besides, asking your questions in a public forum allow more people the chance to respond and might get you a solution more quickly. </p><h5 class="Heading5"><a name="Mailing_Lists" />Mailing Lists</h5><ul style="margin-left:1.25cm;"><li class="P50" style="margin-left:0cm;"><p class="P50" style="margin-left:0.25cm;"><a href="mailto:support-webtools@lists.mozilla.org">support-webtools@lists.mozilla.org</a></p></li><li class="P50" style="margin-left:0cm;"><p class="P50" style="margin-left:0.25cm;"><a href="mailto:dev-apps-webtools@lists.mozilla.org">dev-apps-webtools@lists.mozilla.org</a></p></li></ul><h5 class="Heading5"><a name="IRC_Chatroom" />IRC Chatroom</h5><p class="Textbody">        <a href="irc://irc.mozilla.org/testopia">irc://irc.mozilla.org/testopia</a></p><h5 class="Heading5"><a name="Wiki" />Wiki</h5><p class="Textbody">        <a href="http://wiki.mozilla.org/Testopia">http://wiki.mozilla.org/Testopia</a> </p><h5 class="Heading5"><a name="Project_Home_Page" />Project Home Page</h5><p class="P51">        <a href="http://mozilla.org/projects/testopia">http://mozilla.org/projects/testopia</a></p><h3 class="Heading3"><a name="Reporting_Bugs" />Reporting Bugs</h3><p class="Textbody">Testopia is still a work in progress. As such, it still has a lot of bugs to be worked out. If you encounter a bug or find some way to make Testopia better, please log it at  </p><p class="Textbody">        <a href="http://bugzilla.mozilla.org/enter_bug.cgi?product=Testopia">http://bugzilla.mozilla.org/enter_bug.cgi?product=Testopia</a></p><p class="Textbody">Be sure to include steps to reproduce the problem and what browser you are using to access Testopia.  </p><h1 class="P12"><a name="Bibliography" />Bibliography</h1><p class="Standard">Copeland, L. (2004). A Practitioner's Guide to Software Test Design  </p><p class="Standard">        Norwood, MA: Artech House</p><p class="Standard"> </p><p class="Standard">IEEE Std 829-1998 IEEE Standard for Software Test Documentation (n.d). </p><p class="Standard">        Retrieved February 28, 2007 from         <a href="http://standards.ieee.org/reading/ieee/std_public/description/se/829-1998_desc.html">http://standards.ieee.org/reading/ieee/std_public/description/se/829-1998_desc.html</a></p><p class="Standard"> </p><p class="Standard">Lohmeyer, J. (2004, April 27). Open-Source Bug Tracking with Bugzilla. Linux Journal. </p><p class="Standard">        Retrieved February 27, 2007, from <a href="http://www.linuxjournal.com/taxonomy/term/8">http://www.linuxjournal.com/article/7216</a></p><p class="Standard"> </p><p class="Standard">Meyers, G.J. (2004). The Art of Software Testing, Second Edition </p><p class="Standard">        Hoboken, NJ: John Wiley & Sons.</p><p class="Standard"> </p><p class="Standard">Runnels, D.L. (1999). <span class="T15">How to Write Better Test Cases</span></p><p class="Standard"><span class="T15">        </span>Retrieved September, 2006 from</p><p class="Standard"><a href="http://www.stickyminds.com/getfile.asp?ot=XML&id=2136&fn=XDD2136filelistfilename1%2Epdf">http://www.stickyminds.com/getfile.asp?ot=XML&id=2136&fn=XDD2136filelistfilename1%2Epdf</a> </p><p class="P52"> </p><p class="Standard">Sherry, R.(2006, August).Testopia </p><p class="Standard">        Retrieved January 23, 2007 from         <a href="http://www.rosiesherry.com/softwaretesting/show/Testopia">http://www.rosiesherry.com/softwaretesting/show/Testopia</a> </p><p class="Standard"> </p><p class="Standard">Why Software Testing is Important ??? - Good one! (June 6, 2006). </p><p class="Standard">        Retrieved January 23, 2007 from </p><p class="Standard">        <a href="http://techiecorner.blogspot.com/2006/06/why-softwaretesting-is-important-good.html">http://techiecorner.blogspot.com/2006/06/why-softwaretesting-is-important-good.html</a> </p><p class="P53"> </p></body></html> \ No newline at end of file + </style></head><body dir="ltr"><p class="P1"> </p><div class="P2"><img width="247" height="304" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr1" /></div><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2">Software Testing With Testopia </p><p class="P3">By Greg Hendricks </p><p class="P3"><a href="mailto:gregaryh@gmail.com">gregaryh@gmail.com</a></p><p class="P3"> </p><p class="P3"><a href="http://mozilla.org/projects/testopia">http://mozilla.org/projects/testopia</a></p><p class="Standard"> </p><p class="P4">Table of Contents </p><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Introduction</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Testopia - Test Case Management</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Testopia and Bugzilla</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>The Mozilla Foundation and the Testopia Project</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Installation</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Requirements at a Glance</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P8"><colgroup><col style="width: 5.1244in" /></colgroup><tr><td>   Recommended version Where to get it</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Database</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Additional Perl Modules</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Libraries</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Client</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>What You Need to Know</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Downloading and Installing</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Upgrading From Testopia 1.0.x</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Configuration</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Using Testopia</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Why Test?</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>What Types of Testing can Testopia Help You With?</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Black Box Testing</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>White box and Automated Testing</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Getting Started</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>The Big Picture</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Plans</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Run Environments</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Builds</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Case-Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Testing In Testopia</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Start With a Plan</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing A Test Plan</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Attaching Files</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Editing Plan Fields</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing Plan History</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Adding Categories and Builds</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Creating Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Shortcut – Creating a Test Case</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Adding and Removing Components and Tags</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing Test Case-Run Results</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Attaching Files</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Attaching Bugs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Editing Case Fields</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Test Case Dependencies</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Creating Environments</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Environment Administration</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P11"><colgroup><col style="width: 5.9102in" /></colgroup><tr><td>Categories</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P11"><colgroup><col style="width: 5.9102in" /></colgroup><tr><td>Elements</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P11"><colgroup><col style="width: 5.9102in" /></colgroup><tr><td>Properties</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P11"><colgroup><col style="width: 5.9102in" /></colgroup><tr><td>Property Values</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Creating Your Environment</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Creating A Test Run</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Shortcut – Creating a Test Run</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing Your Test Run </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Adding Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Editing Test Run Fields</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Running Your Tests</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Filtering Your Test Cases in a Run</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Sorting Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Passing and Failing Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Adding Notes</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Attaching Bugs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Reassigning Tests</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Changing Build or Environment on a Test Case</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Classic View</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Deleting Case-Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Updating Multiple Cases at Once</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Wrapping Up</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Getting Around Testopia</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Searching</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Sorting Search Results</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Paging</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Batch Processing</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Saved Searches</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Reporting</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Plan Reports</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Build Coverage Report</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Top Bugs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Bugs Found In This Plan</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Printable Percentage Report</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Test Case Reports</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Estimated vs Actual Time</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Historic Status Breakdown</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Cloning</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Cloning Test Plans</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Cloning Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Cloning a Run</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Deleting</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Test Plans</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P9"><colgroup><col style="width: 4.928in" /></colgroup><tr><td>Test Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Importing and Exporting</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Importing Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Testopia Security</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>The Testers Group</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Test Plan Access Control Lists</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>User Regular Expression</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Explicit Inclusion</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P7"><colgroup><col style="width: 6.3035in" /></colgroup><tr><td>Access Rights</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Read </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Write </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Delete </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Admin </td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Tags</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Adding Tags to an Object</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P6"><colgroup><col style="width: 5.7138in" /></colgroup><tr><td>Viewing Tags</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Using Testopia With Automated Test Scripts</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Field Descriptions</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Test Plans</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Test Cases</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Test Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P10"><colgroup><col style="width: 6.1071in" /></colgroup><tr><td>Test Case-Runs</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Glossary</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Getting Help</td></tr></table><table border="0" cellspacing="0" cellpadding="0" class="P5"><colgroup><col style="width: 6.5in" /></colgroup><tr><td>Bibliography</td></tr></table><h1 class="P12"><a name="Introduction" />Introduction</h1><p class="Textbody">Testing, especially software testing, can be a tedious and overwhelming task. Often there are many levels of testing requirements and many iterations during a project life cycle. Keeping track of the results of tests is important both to the customer, and the developer. Customers want to know that their requirements are being met and developers want to know if there are bugs that they missed. Testing is an important part of the software development process since “Software should be predictable and consistent, offering no surprises to users” (Meyers 2004, ch 1). </p><h5 class="Heading5"><a name="Testopia_-_Test_Case_Management" />Testopia - Test Case Management</h5><p class="Textbody">Test case management is the process of tracking test outcomes on a set of test cases for a given set of environments and development iterations. To do this effectively, an organizational structure needs to be set in place to track test cases and their outcomes in a given test scenario. Testopia was developed to provide a central repository for the collaborative efforts of distributed testers. It serves as both a test case repository and management system. Testopia is designed to meet the needs of software testers from all sizes of groups and organizations.  </p><p class="Textbody">Though Testopia was designed primarily for software testing, it can be used to track any type of test cases. Also, being open source, Testopia can be easily adapted to fit just about any testing model. </p><h2 class="Heading2"><a name="Testopia_and_Bugzilla" />Testopia and Bugzilla</h2><p class="Textbody">Mozilla's Bugzilla bug tracking system is one of the most popular open source issue tracking systems available. Bugzilla “provides an easy to use, easy to maintain and cost effective solution with a rich feature set that easily can compete with its proprietary counterparts” (Lohmeyer). </p><p class="Textbody">Test cases are, and should be, closely tied to defects. As defects are found, test cases should be written to verify that the defect is fixed in future releases. To this end Testopia was designed as an add-on extension to Bugzilla. This allows a single user experience and point of product management for both defect tracking and test case management. </p><h2 class="Heading2"><a name="The_Mozilla_Foundation_and_the_Testopia_Project" />The Mozilla Foundation and the Testopia Project</h2><p class="Textbody">Testopia began life as Bugzilla Testrunner. It was written by Maciej Maczynski in 2001 and later ownership passed to Ed Fuentetaja who passed development duties to Greg Hendricks in 2006. It was renamed Testopia in March 2006 prior to release of version 1.0 in May. It was adopted as a Mozilla project and now resides at <a href="http://mozilla.org/projects/testopia">http://mozilla.org/projects/testopia</a>.</p><p class="Textbody">Since May 2006, Testopia has been increasing in popularity among testers in the open source community as well as in other organizations. In a recent blog posting, Rosie Sherry, a respected software testing expert, states that “This is probably the most comprehensive open source test management system and once up and running provides everything needed of a test management system” (Sherry 2006). </p><h1 class="P12"><a name="Installation" />Installation</h1><h2 class="Heading2"><a name="Requirements_at_a_Glance" />Requirements at a Glance</h2><h8 class="Heading8"><a name="Recommended_versionWhere_to_get_it" />                        Recommended version        Where to get it</h8><p class="Textbody">Bugzilla                2.22.2                                <a href="http://bugzilla.org/downloads">http://bugzilla.org/downloads</a></p><h9 class="Heading9"><a name="Database" />Database</h9><p class="Textbody">MySQL                5.0                                <a href="http://mysql.com/">http://mysql.com</a></p><h9 class="Heading9"><a name="Additional_Perl_Modules" />Additional Perl Modules</h9><p class="Textbody">JSON                                                        http://cpan.org</p><p class="Textbody">Text::Diff                                                <a href="http://cpan.org/">http://cpan.org</a></p><h9 class="Heading9"><a name="Libraries" />Libraries</h9><p class="Textbody">Dojo toolkit                0.4.1                                <a href="http://dojotoolkit.org/">http://dojotoolkit.org/</a> </p><h9 class="Heading9"><a name="Client" />Client</h9><p class="Textbody">Firefox                 2.0+                                <a href="http://getfirefox.com/">http://getfirefox.com</a></p><h2 class="Heading2"><a name="What_You_Need_to_Know" />What You Need to Know</h2><p class="Textbody">As our development has moved forward, we have decided to try to keep abreast of the latest stable release from Bugzilla (currently 2.22). This gives us a stable code base to work from. Developing plugins or extensions for any software is like trying to hit a moving target. This decision allows us to focus our time more on releasing new features often and early rather than back porting. However, this means that most major feature will not be back ported to earlier versions unless and until we have time to do so. Anyone wishing to help in this effort is more than welcome. </p><p class="Textbody">Though Bugzilla officially supports MySQL and Postgres databases, Testopia has only been tested with MySQL. Patches are welcome to make Testopia Postgres compliant. </p><p class="Textbody">Likewise, Testopia has only been thoroughly tested using Firefox browsers. This is not because we don't care about other browser platforms, but because we lack the time and resources to attempt thorough testing in other browsers. Testopia should run fine on mast modern browsers.  If issues arise however, please log them at bugzilla.mozilla.org </p><p class="Textbody">Testopia makes use of some cutting edge AJAX technology provided by the Dojo toolkit. Our philosophy is that it is better to focus more processing on the client than to tie up the server. Dojo places some extra weight on the client, but makes interactions with the server faster. This increases the load on the client machine however, which means the need for faster processing power and more memory. Trying to run Testopia on a Pentium 2 with 128 MB of RAM will probably not be the best user experience.  </p><h2 class="Heading2"><a name="Downloading_and_Installing" />Downloading and Installing</h2><p class="Textbody">Testopia is an extension to Bugzilla. It goes without saying then that you should have Bugzilla up and running first. Instructions for installing Bugzilla can be found at <a href="http://bugzilla.org/">http://bugzilla.org</a> as well as in the package you downloaded. Basically all you need is to unzip the package and run checksetup.pl and follow any instructions that come up.</p><p class="Textbody">Once you have bugzilla successfully installed you need to do the following to get Testopia up and running: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;">Download the testopia tarball from ftp://ftp.mozilla.org </p></li><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;">Copy the testopia tar ball into your bugzilla's root directory. </p></li><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;">Untar  </p><ol style="margin-left:0.75cm;list-style-type:decimal; "><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;"><span class="SourceText">tar xzvf testopia-<release>.tar.gz</span></p></li></ol></li><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;">Run tr_install.pl  </p><ol style="margin-left:0.75cm;list-style-type:decimal; "><li class="P13" style="margin-left:0cm;"><p class="P13" style="margin-left:0.25cm;"><span class="SourceText">perl tr_install.pl</span></p></li></ol></li><li class="P14" style="margin-left:0cm;"><p class="P14" style="margin-left:0.25cm;"><span class="T1">Download Dojo (If installing from CVS)</span></p></li></ol><p class="P15"><span class="T1">The easiest way to install dojo is from their subversion repository. Instructions are found in the DOJO_INSTALL_HELP file inside the testopia/dojo directory.</span></p><p class="Textbody">The tr_install script sets up the database tables, patches your code, and sets up the Testers group in Bugzilla. Whenever you update Testopia, you should run tr_install and checksetup again. </p><p class="Textbody">You should now be able to See the Testopia links in the Bugzilla footer after logging into Bugzilla. Make sure you update the new Testers group to include any users that are going to need access to test cases.  </p><h2 class="Heading2"><a name="Upgrading_From_Testopia_1.0.x" />Upgrading From Testopia 1.0.x</h2><p class="Textbody">To upgrade an existing release of Testopia, you can simply follow the steps outlined above. Running tr_install will upgrade your database and set any file permissions. You can also upgrade to the latest CVS tip using the cvs_update.sh script located in the testopia/scripts directory. </p><p class="Textbody">Upgrading from Testrunner (v0.7 and prior) is not supported.  </p><h1 class="Heading1"><a name="Configuration" />Configuration</h1><p class="Textbody">Testopia adds a number of additional parameters to the Bugzilla Parameters page. They are located under the Testopia tab. If you are installing Testopia with a new installation of Bugzilla, you should be sure to set the <span class="T2">urlbase </span><span class="T3">parameter. Following is a list of required Testopia parameters and their explanations:</span></p><p class="P16">allow-test-deletion</p><p class="List1End"><span class="T3">        I</span>f this option is on, users can delete objects including plans and cases. Delete rights are maintained by the plan access control lists.</p><p class="P16">testopia-allow-group-member-deletes</p><p class="List1End"><span class="T3">        </span>If this option is on, members of the Testers group will be allowed to delete test objects. This overrides settings for individuals in the Testers group.</p><p class="P16">testopia-default-plan-testers-regexp</p><p class="List1End">        This is the default regular expression for granting access to new test plans.</p><p class="P16">default-test-case-status</p><p class="List1End">        Default status for newly created test cases.</p><h1 class="Heading1"><a name="Using_Testopia" />Using Testopia</h1><h2 class="Heading2"><a name="Why_Test_3F" />Why Test?</h2><p class="Textbody">The following example illustrates why software testing is so important: </p><p class="Textbody">Taken from <a href="http://techiecorner.blogspot.com/">http://techiecorner.blogspot.com</a> .</p><p class="Quotations">In March 1992, a man living in Newtown near Boston, Massachusetts, received a bill for his as yet unused credit card stating that he owed $0.00. He ignored it and threw it away. </p><p class="Quotations">In April, he received another and threw that one away too.<br />The following month, the credit card company sent him a very nasty note stating they were going to cancel his card if he didn't send them $0.00 by return of post. He called them and talked to them; they said it was a computer error and told him they'd take care of it.</p><p class="Quotations">The following month, our hero decided that it was about time that he tried out the troublesome credit card figuring that if there were purchases on his account it would put an end to his ridiculous predicament. However, in the first store that he produced his credit card in payment for his purchases, he found that his card had been canceled. </p><p class="Quotations">He called the credit card company who apologized for the computer error once again and said that they would take care of it. The next day he got a bill for $0.00 stating that payment was now overdue. Assuming that, having spoken to the credit card company only the previous day, the latest bill was yet another mistake, he ignored it, trusting that the company would be as good as their word and sort the problem out.<br />The next month, he got a bill for $0.00 stating that he had 10 days to pay his account or the company would have to take steps to recover the debt.</p><p class="Quotations">Finally giving in, he thought he would play the company at their own game and mailed them a cheque for $0.00. The computer duly processed his account and returned a statement to the effect that he now owed the credit card company nothing at all. </p><p class="Quotations">A week later, the man's bank called him asking him what he was doing writing a cheque for $0.00. After a lengthy explanation, the bank replied that the $0.00 cheque had caused their cheque processing software to fail. The bank could now not process ANY cheques from ANY of their customers that day because the cheque for $0.00 was causing the bank's computer to crash. </p><p class="Quotations">The following month, the man received a letter from the credit card company claiming that his cheque had bounced and that he now owed them $0.00 and unless he sent a cheque by return of post them would be taking steps to recover the debt. </p><p class="P17">Though never proven to be true, this rather humorous anecdote explains the impact that untested software can have. In the case of both the credit card company and the bank, this seemingly minor issue may have cost both institutions significant sums of money in lost transactions and down time, to say nothing of the frustration of the customer. </p><p class="P17">Many times software errors cause only minor inconveniences. Other times they can have serious consequences. Think of the life support systems on the space shuttle or the flight control systems on an airliner. Software has become such an integral part of our lives that many times we don't realize how much we depend on  it until something goes wrong.</p><h2 class="Heading2"><a name="What_Types_of_Testing_can_Testopia_Help_You_With_3F" />What Types of Testing can Testopia Help You With?</h2><p class="Textbody">There are two general classifications of software testing: black box and white box. </p><p class="Quotations"><span class="T4">Black box testing is a strategy in which testing is based solely on the requirements and specifications. Unlike its complement, white box testing, black box testing requires no knowledge of the internal paths, structure, or implementation of the software under test</span> (Copeland, 2004,Sec I).</p><p class="Textbody"> </p><h5 class="Heading5"><a name="Black_Box_Testing" />Black Box Testing</h5><p class="Textbody">Testopia was designed primarily for this type of testing. Requirements are translated directly into test cases to be applied by the testers to the software being developed. If a requirement is not met, the test case fails; if it is met, it passes. </p><h5 class="Heading5"><a name="White_box_and_Automated_Testing" />White box and Automated Testing</h5><p class="Textbody">Though not specifically designed to handle white box tests (which are often automated), Testopia can still provide a repository for test results. Each test case can have an associated script and test logs can be attached to a test case to show the results of testing. </p><h1 class="Heading1"><a name="Getting_Started" />Getting Started</h1><h3 class="Heading3"><a name="The_Big_Picture" />The Big Picture</h3><div class="Textbody"><img width="693" height="563" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr2" /></div><p class="Textbody">Since Testopia is an extension to Bugzilla, it relies on many of the same objects that Bugzilla uses to track bugs. In order to use Testopia you first need to set up products and versions using the Bugzilla product editor. Testopia makes use of Bugzilla's target milestones feature as well so you may want to turn this optional field on in the parameters. </p><p class="Textbody">Testopia is comprised of several objects that are interdependent. Together, they make managing the testing procedure possible. Lets look at each of these in turn. </p><h2 class="Heading2"><a name="Test_Plans" />Test Plans</h2><p class="Textbody">At the top of the Testopia hierarchy are test plans. Before you can do anything else in Testopia, you need a test plan. Test plans are associated with a single product in Bugzilla, though you can have multiple test plans for each product. Your test plan will serve as the storage point for all related test cases and test runs and it will act as the dashboard for your testing. It will also serve to determine who will have access to update test cases. </p><h2 class="Heading2"><a name="Test_Cases" />Test Cases</h2><p class="Textbody">Test cases are the heart of all testing. Test cases spell out what steps to take while running a test and what outcomes to expect. If a particular run through the steps fails to produce the expected outcome, the test fails. Test cases are semi-independent in Testopia. Each test case can be associated with multiple test plans so care should be taken to ensure that updating a test case does not interfere with testing in another test plan than your own. A list of associated test plans is displayed with each test case though, so this should not be too difficult. </p><p class="Textbody">Test cases are divided into categories. You can define as many categories for your product as you like from the test plan page. These should not be confused with components however. Each product in Bugzilla is divided into components and you can apply multiple components to each test case, however each test case can belong to only one category at a time. </p><h2 class="Heading2"><a name="Test_Runs" />Test Runs</h2><p class="Textbody">Test runs are the focal point of the testing effort. Once you have defined a set of test cases, you are ready to run through those tests in a test run. Each run is associated with a single test plan and can consist of any number of test cases from that plan. Before we can run any test however, we need to have a couple more items first. </p><h2 class="Heading2"><a name="Test_Run_Environments" />Test Run Environments</h2><p class="Textbody">If test cases are the 'what' of testing, then environments are the 'where'. No test runs in a vacuum. Where you run your test is as important as how you run it. Software often is designed to run on specific hardware under specific conditions. These conditions are captured in the test environment. Environments are applied to test runs directly, but can be applied to test cases indirectly as we will see. </p><h2 class="Heading2"><a name="Builds" />Builds</h2><p class="Textbody">Software development is usually an iterative affair. Developers write code which is then compiled and included in a system. As bugs and enhancement requests come in, the developer rewrites portions over again to fix or enhance a product. In Testopia, each iteration is called a build. Builds are often associated with milestones of the project. This is reflected in the build's relationship to Bugzilla's target milestones object. Regardless of whether you use target milestones in Bugzilla, you need to define at least one build for your product before you can begin a test run. </p><h2 class="Heading2"><a name="Test_Case-Runs" />Test Case-Runs</h2><p class="Textbody">A test case-run is the record of how a particular test case fared in a particular run for a given build in a given environment. When you create a test run, records for each test case in that run are created. By default these take on the build and environment of the test run, however, it is possible to change these attributes on a particular case-run, essentially creating a new case-run for each combination. This is desirable in situations where most test cases are fairly generic in environmental scope but single test cases might require specific conditions. It also aids in iterative testing as each test case then be updated in a single run rather than having to create new runs to test the failed cases. </p><h1 class="Heading1"><a name="Testing_In_Testopia" />Testing In Testopia</h1><h2 class="Heading2"><a name="Start_With_a_Plan" />Start With a Plan</h2><p class="Textbody">All testing should start with a test plan. In most cases this will take the form of a document that details the purpose, structure, and methods that will be employed in testing. The IEEE has put together a standard document template for test plans (IEEE Standard 829-1998 for Software Test Documentation). Whether you decide to use a formal template such as this or not, having a rough outline of what your purpose for testing is will help those who test this in the future know what you were looking for in your testing. </p><p class="Textbody">To create a new test plan in Testopia: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Click the '<span class="T5">New Plan</span>' link in the Bugzilla footer</p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Enter a name for this test plan. </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Select a product from the product drop-down list </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Select a type for this plan (descriptions of types below) </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Select a product version. This will be the default version for new runs. </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Type or paste your plan document into the Plan Document Editor </p></li><li class="P18" style="margin-left:0cm;"><p class="P18" style="margin-left:0.25cm;">Click the <span class="T2">Add</span> button</p></li></ol><p class="Textbody">Once you have done this, you will be taken to your newly created test plan.  </p><h5 class="Heading5"><a name="Viewing_A_Test_Plan" />Viewing A Test Plan</h5><p class="Textbody">At the top of your new plan, you will see an overview section detailing much of the information you entered on the new plan form. In addition to this however, you will see such things as the plan author, when it was created, and what version of the document you are viewing. </p><p class="Textbody">Below the overview section is the place for viewing categories and builds associated with this plan's product. You also have an area where you can add tags and view existing tags on this plan. We will discuss tags at greater length later. </p><p class="Textbody">From here you may wish to create some categories for your test cases and add some builds before you begin creating test cases. </p><h5 class="Heading5"><a name="Attaching_Files" />Attaching Files</h5><p class="Textbody">Once you have created your test plan, you can upload attachments to it. To create an attachment, simply click the browse button and locate the file you wish to attach, type a description in the Description field and click the attach button.  </p><p class="Textbody">Attachments are treated very much the same as they are in Bugzilla. The size limit will be determined by the max-attachment-size parameter the same as it is for Bugzilla </p><p class="Textbody">To edit an attachment click the edit link. This takes you to a page where you can set the description, filename, and mime-type for the attachment as well as view it if it is a viewable type or download it otherwise. </p><h5 class="Heading5"><a name="Editing_Plan_Fields" />Editing Plan Fields</h5><p class="Textbody">With the possible exception of product, you can edit any of the values that you supplied when you created your test plan buy scrolling down to the Attributes section or by clicking the '<span class="T5">Edit Plan Attributes</span><span class="T6">' link in the overview section. You are able to edit the product field as long as there are no test runs associated with this plan yet. Once you have created a test run you will not be able to update the product attribute unless you delete the run first.</span></p><h5 class="Heading5"><a name="Viewing_Plan_History" />Viewing Plan History</h5><p class="P19">Any changes made to plan values are captured and a history is kept so that as test circumstances change over the course of a development cycle, you can know what applied for a given set of tests in time. This also serves to thwart unintentional changes to your test plan since each change captures when it happened and who performed it. To view this history click the <span class="T2">History</span><span class="T3"> button.</span></p><p class="P19">Changes to the plan document are handled a little differently. A full version is kept for each change and it is possible to view the differences between versions by selecting which versions you want to compare and clicking the <span class="T2">Compare</span><span class="T3"> button on the plan history page.</span></p><h2 class="Heading2"><a name="Adding_Categories_and_Builds" />Adding Categories and Builds</h2><p class="Textbody">Categories are used to classify your test cases. Each product has a default category and it is up to you want to use categories to divide up your test cases. Since you can also apply product components to a test case, you may find that this suffices.<span class="T6"> Before you can create a test run however, you have to specify at least one build. To add a build or category you can click the </span><span class="T5">add</span><span class="T6"> link found below each of these fields from the test plan page. The fields are fairly self explanatory. In the case of builds however, you have the option of hiding the build by unchecking the A</span><span class="T7">ctive</span><span class="T6"> box.. This will hide it from the build list used when creating a run.</span></p><p class="P19">To edit categories and builds, click the links above their respective fields on the test plan. From here you can edit individual builds and categories or remove them. </p><h1 class="Heading1"><a name="Creating_Test_Cases" />Creating Test Cases</h1><p class="Textbody">Once you have a plan to store them in, you can start entering your test cases. Click the <span class="T5">Create a New Test Case</span><span class="T6"> link on the plan page or click the </span><span class="T5">New Case</span><span class="T6"> link in the footer to begin.</span></p><h5 class="Heading5"><a name="Shortcut__E2_80_93_Creating_a_Test_Case" />Shortcut – Creating a Test Case</h5><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Click <span class="T5">Create a New Test Case</span> on the plan page or <span class="T5">New Case</span> from the footer</p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Enter a short description of your test case in the <span class="T2">Summary</span> field</p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Select a <span class="T2">Category</span></p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Add a default tester or select a component to assign the test case to the Bugzilla QA Contact for that component. </p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">List the steps for testing in the <span class="T2">Action</span> field</p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Provide the expected outcomes in the <span class="T2">Expected Results</span> field</p></li><li class="P20" style="margin-left:0cm;"><p class="P20" style="margin-left:0.25cm;">Click the <span class="T2">Add</span> button.</p></li></ol><p class="P19">Because it is possible to have a single test case linked to multiple test plans, you can select which plans you wish to link your new case to. For now, we only have one so we will only see a single check box.  </p><p class="P19">First you need to write a short summary of your test case in the summary field. Notice the options for the other fields here as well. Descriptions of each can be found at the end of this document. The only required field here is the summary, however you may want to apply a default tester and a requirement at this time. Selecting a component at the right will automatically set the default tester based on the Bugzilla QA contact of that component. </p><p class="P19">Though not required at this point, you should supply your list of testing steps in the <span class="T2">Action </span><span class="T3">field and the list of expected outcomes in the </span><span class="T2">Expected Results</span><span class="T3"> field. To do this, click the </span><span class="T8">Edit Document</span><span class="T3"> link under the appropriate field. This will display a WYSIWYG editing area where you can type or paste your values. For tips on writing good test cases refer to D.L Runnels' </span><a href="http://www.stickyminds.com/getfile.asp?ot=XML&id=2136&fn=XDD2136filelistfilename1.pdfL"><span class="T9">How to Write Better Test Cases</span></a></p><p class="P21">From here you are taken to your test case. You will notice a link at the top giving you the option of creating another test case for this plan at this time.  </p><h5 class="Heading5"><a name="Adding_and_Removing_Components_and_Tags" />Adding and Removing Components and Tags</h5><p class="P21">Once again, you are offered an overview detailing the information for this test case at a glance. Below that you have the option of adding additional components to this test case. Because some testing is cross product, you have the option to add components from any product in Bugzilla to your test case. You can also remove a component by selecting it from the list and clicking the <span class="T2">Remove</span> button. </p><p class="P21">As with plans you also can apply tags to your test cases. This will be described later. </p><h5 class="P22"><a name="Viewing_Test_Case-Run_Results" />Viewing Test Case-Run Results</h5><p class="P21">Below this section will display a history of this test case in all runs and their status as to whether they passed or failed in those runs. You also will see a graph representing the percentage of pass/fail across all runs.  </p><h5 class="Heading5"><a name="Attaching_Files" />Attaching Files</h5><p class="Textbody">Just like test plans, you can attach files to your test cases. This works the same as for test plans. </p><h5 class="Heading5"><a name="Attaching_Bugs" />Attaching Bugs</h5><p class="Textbody">Unlike test plans, you have the option of attaching Bugzilla bugs to your test cases. Each test case can have multiple bugs attached. To attach a bug, enter the bug number in the field and click the <span class="T2">Commit</span><span class="T3"> button. A table of attached bugs is displayed.</span></p><h5 class="Heading5"><a name="Editing_Case_Fields" />Editing Case Fields</h5><p class="Textbody">As with test plans, you can update any of the values you entered while creating the plan. A history of these changes is also kept which you can view by clicking the <span class="T2">History</span><span class="T3"> button near the top of the test case. </span></p><h5 class="Heading5"><a name="Test_Case_Dependencies" />Test Case Dependencies</h5><p class="Textbody">Test cases have the concept of dependencies. Often when testing a set of test cases, the order in which you test is determined by what tests came before. It is also often the case that if a given test case fails, it prevents other test cases from being run successfully at all. You can represent those relationships here using the <span class="T2">blocks </span><span class="T3"> and </span><span class="T2">depends on</span><span class="T3"> fields. If this test potentially blocks the execution of another test case, you would enter that other test case's id in the </span><span class="T2">blocks</span><span class="T3"> field. If this test case requires some other test case be run first you can enter that other test case's id in the </span><span class="T2">depends on </span><span class="T3"> field. If a test case that blocks another test case fails, and both of them are in a single run, the blocked test case will automatically receive a status of </span><span class="T2">BLOCKED</span><span class="T3">.</span></p><h2 class="Heading2"><a name="Creating_Environments" />Creating Environments</h2><p class="Textbody">As mentioned above, environments are the <span class="T10">where </span><span class="T11">in testing. </span>In software testing in particular, this might include such things as which operating system and what hardware platform a test was conducted on.. Environments can be as broad or narrow as you define them. The most basic environment consists of an OS and platform chosen from Bugzilla's lists of these objects. However it can be much more complicated such as a suite of applications and other products. It could be a browser or other client package.</p><p class="Textbody">Creating an environment in Testopia requires two steps. The first involves defining a set of variables to be used in your environment. The second is to create the environment from the set of possible elements. </p><h3 class="Heading3"><a name="Environment_Administration" />Environment Administration</h3><p class="Textbody">When you first install Testopia, you must first define the set of environment variables that will be used to construct your environments.  To access these, click the <span class="T12">Environment Variables</span> link in the footer. The environment variables are arranged in a hierarchy of objects that is represented as a tree.  There are four major levels: Category, Element,  Property, and Property Values.</p><h4 class="Heading4"><a name="Categories" />Categories</h4><p class="Textbody">Environment Categories are similar to test case categories in that they provide a sorting mechanism for your environment elements. Each category is associated with a single product or in the special bucket labeled <span class="T10">–ALL-- . </span><span class="T11">The –All-- denotes all products, meaning it holds categories of elements that are not specific to any product.</span></p><p class="P23">When you first install Testopia you will see that the –ALL-- bucket contains two Categories, OS and Platform. Expanding these you will see that there are elements representing each of the OS and Platform values defined in Bugzilla. This is list is generated at the time you first install Testopia and is maintained separately from the Bugzilla lists thereafter.  </p><p class="P23">To create a category, right click on the product or –ALL-- and choose <span class="T10">Add Category</span>. You can then click on the newly create category in the tree which will pop up a form that allows you to edit the category name or change the product it is associated with.</p><h4 class="Heading4"><a name="Elements" />Elements</h4><p class="Textbody">Once you have a category defined for your product or the –ALL-- bucket, you can add elements to that category. Elements are the crux of what makes up your environment. To create an element, right click on the category you wish to add it to and choose <span class="T10">create element. </span></p><p class="P23">This will create an element labeled “New Element” which you can edit by clicking on it in the tree, or right clicking and choosing <span class="T10">Edit. </span></p><p class="P23">Elements can be nested inside other elements. To create a sub element, right click on the element and choose <span class="T10">Add Element</span>. You can edit this child element in the same manner as its parent. You can create as many levels of elements as you need to represent the complexity of your environment.</p><h4 class="Heading4"><a name="Properties" />Properties</h4><p class="Textbody">Properties describe your element. You can add properties to your elements by right clicking the element and choosing <span class="T10">Add Property</span>.  You can add as many properties to your elements as you need. Properties cannot be nested however.</p><p class="Textbody">To edit your property, click on it in the tree or right click on it and choose <span class="T10">Edit</span><span class="T11">.</span></p><h4 class="Heading4"><a name="Property_Values" />Property Values</h4><p class="Textbody">Once you have defined a property for your element, you will need to provide a list of values from which to select for you environment. Right click on your property and choose <span class="T10">Add Value </span><span class="T11">to create a value for your property. You can edit property values by right clicking and choosing Edit, or by clicking on one of the values under your property.</span></p><p class="P23">You can change the name or reorder the list of values from the form provided. You must hit Save Changes in order for you changes to be committed.  </p><h2 class="Heading2"><a name="Creating_Your_Environment" />Creating Your Environment</h2><p class="Textbody">Once you have set up the elements that will be used in your environment, you can now create environments with those elements. </p><p class="Textbody">Click the <span class="T12">New Environment</span><span class="T11"> link in the footer. </span></p><p class="P23">You are prompted to name your environment and choose a product for it. The product is used only for classification. It does not limit your choices of which elements can be placed in your environment. </p><p class="P23">Clicking <span class="T2">Create</span> will take you to the environment editor. Here you will see two trees, one representing your new environment and the other containing the list of variables from which to choose. Your environment will consist of the elements you defined earlier. To add an element, find it in the list and simply drag it onto your environment tree. The order does not matter. You can grab child elements at any level, but dragging an element with children will bring the children as well. </p><p class="P23">Once you have selected the elements for your environment, you can now select which of the property values apply to your environment. Expand the element and property and simply click the value you wish to use. It will have a star placed next to it to show your selection. </p><p class="P23">To remove an element, right click on it and choose R<span class="T10">emove</span>.</p><p class="P23">All changes to your tree are saved immediately.  </p><p class="P23"> </p><h1 class="Heading1"><a name="Creating_A_Test_Run" />Creating A Test Run</h1><h5 class="Heading5"><a name="Shortcut__E2_80_93_Creating_a_Test_Run" />Shortcut – Creating a Test Run</h5><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P24" style="margin-left:0cm;"><p class="P24" style="margin-left:0.25cm;">Click the <span class="T5">Create a New Test Run</span><span class="T6"> link on your test plan or the </span><span class="T5">New Run</span><span class="T6"> link in the footer.</span></p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Select which test cases to include. Use the filter to narrow your scope and the paging links to view more or fewer test cases. </p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Enter a summary for this test run. </p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Select a build from the <span class="T2">Build</span> list or type the name for a new one.</p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Select an environment from the <span class="T2">Environment</span> list.</p></li><li class="P25" style="margin-left:0cm;"><p class="P25" style="margin-left:0.25cm;">Click <span class="T2">Add</span>.</p></li></ol><p class="Textbody">Once you have an environment to test in and some test cases to test, you are now ready to begin testing. You do this by creating a test run. The easiest way to do this is from within your test plan. Click the <span class="T5">Create a New Test Run</span><span class="T6"> link in the Test Runs section of your plan. You can also create a run by clicking the </span><span class="T5">New Run</span><span class="T6"> link in the footer and entering your plan number.</span></p><p class="P19">You will be presented with a list of CONFIRMED test cases from your test plan. You can select only the ones you want included or all of them at once using the select all link. If you want to limit the list to only include test cases that meet certain criteria, you can use the filter to narrow down the list. If you have a lot of test cases, you can use the paging features in the table of test cases to view more than the default 25 at a time. This is important as the only test cases that will be included are those that are visible on the screen and have a check in the box next to the case ID. If you do not know which test cases to apply, or do not wish to do so at this time, you can always add test cases later. </p><p class="P19">Next you need to provide a summary and select a build. If you forgot to create the build before, you can simply type the name of a new build in the <span class="T2">New</span> box and it will be added to the product. You can then edit the build later to add a milestone. Finally you need to select an environment. You do this by typing the name of your environment in the <span class="T2">Environment</span> box. As you type, a list of environments from your product that match will appear. You can also click the drop down arrow to view a list of all environments in your product. </p><p class="P19">Once you have completed the form, click the <span class="T2">Add</span> button to be taken to your new run.</p><h5 class="Heading5"><a name="Viewing_Your_Test_Run" />Viewing Your Test Run </h5><p class="Textbody">As with the other objects, you will notice an overview section at the top of your run. This contains similar information as found in the test case and test plan with one notable exception: the progress bar. This will show you a percentage of completed test cases with the colors representing statuses.  </p><p class="Textbody">Below this section you will see the Test Case Run Logs. This table represents the test cases you will be testing each row represents a single case-run. You will notice the expander arrows next to each row in the table. Click on this to expand the case-run form. Take note of the <span class="T2">Filter</span> and <span class="T2">Report</span> expanders as well. You can use the filter much like you did when choosing the test cases to include in your run, except this provides more options for narrowing the list of case runs visible at a time.</p><h5 class="Heading5"><a name="Adding_Cases" />Adding Cases</h5><p class="Textbody">As mentioned earlier, you can add test cases to your run by clicking the <span class="T2">Add Cases</span> button below the case-run table. This will take you back to the list of test cases you saw when creating your test run excluding any test cases in your plan that are already in this run. </p><h5 class="Heading5"><a name="Editing_Test_Run_Fields" />Editing Test Run Fields</h5><p class="Textbody">As with test cases and test plans, you can update any of the values you applied when you created the test run in the form at the bottom of the page. Note that changing the build and environment will not affect the case-runs already in the run but it will apply to any test cases added after the change. Changes to these fields are tracked and a history is kept much the same way as with test plans and test cases. Clicking the <span class="T2">History</span> button will display this history.</p><h1 class="Heading1"><a name="Running_Your_Tests" />Running Your Tests</h1><p class="Textbody">As a tester, you will likely spend most of your time running tests and recording the results from the test run page. When you first open a run the test cases are represented in a table as case-runs. Clicking the expander arrow next to each test case will expand the test case-run form. Your run may included only those test cases that are required for a specific testing priority, or for a given tester. Or, your test run may include a larger set of test cases that represents an entire test cycle. On a given day, you may only want to test the highest priority test cases and skip lower priorities for later in the process. Or you may just want to run regression tests on the set of previously failed test cases. You can do this using the filters.  </p><h5 class="Heading5"><a name="Filtering_Your_Test_Cases_in_a_Run" />Filtering Your Test Cases in a Run</h5><p class="Textbody">Expand the <span class="T2">Filter </span><span class="T3">by clicking the expander triangle next to the filter. You will notice a number of options for filtering your test cases including:</span></p><ul style="margin-left:1.25cm;"><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Status </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Category </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Build </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Environments </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Priorities </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Components </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Assignee </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Tags </p></li><li class="P26" style="margin-left:0cm;"><p class="P26" style="margin-left:0.25cm;">Case summary. </p></li></ul><p class="P27">Testopia remember your filters so that the next time you view this run it will apply the last filter you used. To clear the filter and return to the full list click the <span class="T2">Clear</span> button.</p><h5 class="Heading5"><a name="Sorting_Test_Cases" />Sorting Test Cases</h5><p class="Textbody">You can sort the list of test cases by clicking on any of the table column headings. You can also sort on the summary by clicking any of the <span class="T2">Summary </span><span class="T3">field headers. If you wish to create a custom sort order for your test cases, type a number to index on in the </span><span class="T2">Index</span><span class="T3"> fields and click </span><span class="T2">Change</span><span class="T3">. Sorting on this field will then display your cases in ascending order of the indexes you supplied.</span></p><p class="P27">Currently Testopia only supports ascending sorts. Support for descending sorts are planned for future releases. </p><h5 class="Heading5"><a name="Passing_and_Failing_Test_Cases" />Passing and Failing Test Cases</h5><p class="Textbody">Once you are ready to begin testing, expand the first test case in your list and read the <span class="T2">Action</span> and <span class="T2">Expected Results</span><span class="T3"> for this case. You can then perform the test. If the expected outcome is achieved you can pass the test by clicking the green check or </span><span class="T2">PASSED</span><span class="T3"> button: </span><span class="T3"><img width="18" height="18" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr3" /></span><span class="T3">.</span></p><div class="P27">If the results were not expected or an error occurred, you can fail the test by clicking the red X or <span class="T2">FAILED</span> button: <img width="18" height="18" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr3" />.</div><p class="P27">Explanations of the other statuses appear at the end of this document. </p><h5 class="Heading5"><a name="Adding_Notes" />Adding Notes</h5><p class="P27">Updating the status will add a line to the notes field with the time of the change and who made it. You can add additional notes by typing them in the <span class="T2">Add Note</span> field and clicking <span class="T2">Append Note</span>.</p><h5 class="Heading5"><a name="Attaching_Bugs" />Attaching Bugs</h5><p class="P27">If a test case has failed, or for any other reason, you may want to attach a bug to this test. You can attach existing bugs or create new ones. To attach an existing bug, type the bug number in the box and click <span class="T2">Attach Bug</span>. The bug will be displayed in the <span class="T2">Bugs Detected</span> field. If you wish to log a new bug, click the <span class="T2">New </span>button. You will be taken to the enter bug page with information about the test case already provided in the form. You can now provide any additional details and submit the bug. This is done in a new window so that you do not lose your place in testing. To return to your run, close the new window.</p><h5 class="Heading5"><a name="Reassigning_Tests" />Reassigning Tests</h5><p class="Textbody">The assignee field is used to help testers track their own test cases. If you wish to change the assignee of a particular test case, you can do so by entering their Bugzilla user name in the assignee field and clicking <span class="T2">Assign</span>. Updating test cases is not limited by assignee. Anyone with rights to edit the case-run can pass or fail the test. If a test case is closed (PASSED, FAILED, or BLOCKED), the name of the person who performed the action is captured in the <span class="T2">Tested By</span> field. </p><h5 class="Heading5"><a name="Changing_Build_or_Environment_on_a_Test_Case" />Changing Build or Environment on a Test Case</h5><p class="Textbody">Testopia is designed to be flexible. Testing organizations vary greatly on modes and methodologies. For this purpose, test runs were designed to allow the greatest flexibility possible as to how tests are run. Some groups will create a single test run for each build and environment combination they encounter. Others will want a monolithic test run that represents an entire product release. In this case you can update the build and environments on individual test cases in your run. Each time you do, the appropriate case-run record is returned, if one exists, or is created if it does not. A note is appended with the time of the change as well as who made the change. If a new record is created, the status is set to IDLE and you are ready to test with your new build or environment selection. For any given run, the case-runs displayed are the last ones that were updated. In essence however, the case-run table represents a two dimensional view of a three dimensional object. Changing the build or environment bring the corresponding record to the forefront. This should be kept in mind when running reports on case runs as what you see in a run is only the surface of what data may be included. </p><h5 class="Heading5"><a name="Classic_View" />Classic View</h5><p class="Textbody">The test run page uses Javascript and AJAX technology to provide a more seamless user experience while running your tests. If you have trouble with the forms or would like a simpler view of your case runs, you may use the <span class="T2">classic interface</span>.  This provides a view of a single test case-run at a time. From here you can update any of the fields mentioned above and also attach files to the test case. </p><h5 class="Heading5"><a name="Deleting_Case-Runs" />Deleting Case-Runs</h5><p class="Textbody">Sometimes you might mistakingly add a test case to a run that does not belong or you may select an invalid build and environment combination. In these cases it is easiest to remove them by deleting the case-run all together. You must have the proper permissions to do so and the administrator needs to allow this in the parameters. To delete a single case run, click the <span class="T5">Delete</span><span class="T6"> link on the standard form, or click the </span><span class="T7">Delete</span><span class="T6"> button on the classic form. You will be prompted to confirm the action before the record is removed.</span></p><h5 class="Heading5"><a name="Updating_Multiple_Cases_at_Once" />Updating Multiple Cases at Once</h5><p class="Textbody">You can update a group of case-runs at once by clicking the <span class="T5">Update Multiple</span><span class="T6"> link below the table of cases. From here you can change the status, attach bugs, update build or environment attributes, and even delete a whole list at once. </span></p><h5 class="Heading5"><a name="Wrapping_Up" />Wrapping Up</h5><p class="Textbody">Once all tests in a run are complete, you should set the status on the run to STOPPED. This will prevent further updates to case-runs in the run. </p><h1 class="Heading1"><a name="Getting_Around_Testopia" />Getting Around Testopia</h1><p class="Textbody">Navigating Testopia is done using the links in the Bugzilla footer. You can use the QuickSearch box to quickly jump to any case, run, plan or environment. To do so simply type the object's ID number, or part of the name or summary, prefixed by a type identifier. Following is the list of identifiers: </p><div style="text-align:left"><table border="0" cellspacing="0" cellpadding="0" class="Table1"><colgroup><col width="256" /><col width="256" /></colgroup><tr><td style="text-align:left;width:2.3083in; " class="Table1A1"><p class="TableHeading">Object </p></td><td style="text-align:left;width:2.3083in; " class="Table1B1"><p class="TableHeading">Prefix </p></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST CASE</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><p class="P29">(Optional for cases)  </p><ul style="margin-left:1.25cm;"><li class="P30" style="margin-left:0cm;"><p class="P30" style="margin-left:0cm;">case  </p></li><li class="P30" style="margin-left:0cm;"><p class="P30" style="margin-left:0cm;">TC  </p></li><li class="P31" style="margin-left:0cm;"><p class="P31" style="margin-left:0cm;">c  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST PLAN</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P32" style="margin-left:0cm;"><p class="P32" style="margin-left:0cm;">plan  </p></li><li class="P32" style="margin-left:0cm;"><p class="P32" style="margin-left:0cm;">TP  </p></li><li class="P33" style="margin-left:0cm;"><p class="P33" style="margin-left:0cm;">p  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST RUN</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P34" style="margin-left:0cm;"><p class="P34" style="margin-left:0cm;">run  </p></li><li class="P34" style="margin-left:0cm;"><p class="P34" style="margin-left:0cm;">TR  </p></li><li class="P35" style="margin-left:0cm;"><p class="P35" style="margin-left:0cm;">r  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST RUN ENVIRONMENT</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P36" style="margin-left:0cm;"><p class="P36" style="margin-left:0cm;">env  </p></li><li class="P36" style="margin-left:0cm;"><p class="P36" style="margin-left:0cm;">TE  </p></li><li class="P37" style="margin-left:0cm;"><p class="P37" style="margin-left:0cm;">e  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TEST CASE-RUN</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P38" style="margin-left:0cm;"><p class="P38" style="margin-left:0cm;">caserun  </p></li><li class="P38" style="margin-left:0cm;"><p class="P38" style="margin-left:0cm;">TCR  </p></li><li class="P39" style="margin-left:0cm;"><p class="P39" style="margin-left:0cm;">cr  </p></li></ul></td></tr><tr><td style="text-align:left;width:2.3083in; " class="Table1A2"><p class="P28"><span class="T13">TAGS</span> </p></td><td style="text-align:left;width:2.3083in; " class="Table1B2"><ul style="margin-left:1.25cm;"><li class="P40" style="margin-left:0cm;"><p class="P40" style="margin-left:0cm;">tag  </p></li></ul></td></tr></table></div><p class="Textbody"><br />So for example, to find test run 45 you could type <span class="T10">r 45</span> or <span class="T10">tr 45</span> or <span class="T10">run 45.</span></p><p class="P23">To find environments with 'Linux' in the name you could type <span class="T10">e:linux </span>or <span class="T10">TE Linux</span>.</p><h2 class="P41"><a name="Searching" />Searching</h2><p class="P23">Bugzilla has very powerful searching capabilities. Testopia has applied the Bugzilla search engine to searching for test cases, plans, runs, environments, and case-runs. Each of these has its own set of search parameters that can be used to narrow the scope of a search. To perform a search, click the <span class="T5">S</span><span class="T8">earch</span><span class="T5"> </span>link in the footer and then click the tab representing the object you wish to search from.. From here you select the parameters you wish to query on and click the <span class="T2">Submit</span> button. This will take you to the corresponding list page for that object.</p><h5 class="Heading5"><a name="Sorting_Search_Results" />Sorting Search Results</h5><p class="P23">Search results are paged and sortable. To sort, click the column header of the corresponding field you wish to sort on. This will return the list in ascending order. Descending sorts are not currently supported but are planned. </p><h5 class="Heading5"><a name="Paging" />Paging</h5><p class="P23">By default, Testopia will display 25 records at a time. You can use the links at the bottom of the list to navigate from one page of search results to another or use the <span class="T2">Jump To Page</span> button to jump directly to a page of results. You change the number of records you view at a time by selecting an option from the page size drop down. Lastly, if there are not too many records, you can opt to view all of the records at once using the <span class="T5">View All</span><span class="T6"> link. </span></p><h5 class="Heading5"><a name="Batch_Processing" />Batch Processing</h5><p class="Textbody">From the search results page of cases, runs, plans, and case-runs, you can update a batch of objects at once. Do this by selecting which objects to update by checking its box and then updating the fields at the bottom of the form. For example, with test cases, you can apply changes to virtually any fields as well as add these cases to test runs or link them to a set of plans. You can also export test cases as CSV or XML. More on this later. </p><h5 class="Heading5"><a name="Saved_Searches" />Saved Searches</h5><p class="Textbody">Like Bugzilla, Testopia offers the user the opportunity to save a search for later retrieval. You do this by typing a name in the <span class="T10">save search as</span> field and clicking the <span class="T2">Save Search</span> button. Saved searches appear below the other Testopia links in the footer. You can remove a saved search by running it and clicking the <span class="T5">Delete saved query</span><span class="T6"> link at the bottom of the search results page.</span></p><h2 class="Heading2"><a name="Reporting" />Reporting</h2><p class="Textbody">As with searching, Testopia has modified the Bugzilla reporting engine to provide basic tabular reports based on a set of search criteria. These reports can be run on test cases, runs, plans, and case-runs. To run a report, click the <span class="T5">Reports</span> link in the footer and click the tab corresponding to the object you wish to report on. Select the fields for the horizontal and vertical axes of the report  and then select your search criteria. The default report is in the form of tabular data. You can then switch between bar and line graph modes or export the data as a CSV (comma separated values) file which can be opened in a spreadsheet.</p><p class="Textbody">In addition to these generic reports, certain objects have other reports associated with them. These are accessed from the object pages directly.  </p><h5 class="Heading5"><a name="Plan_Reports" />Plan Reports</h5><h9 class="P42"><a name="Build_Coverage_Report" />Build Coverage Report</h9><p class="Textbody">This Report is designed to show builds that are not being covered in testing. It breaks down each run, displaying the status of the latest case-run for a given build. If there are builds that are not being covered, no status will display for any runs for that build. This report is not very practical for plans with very large numbers of test cases. </p><h9 class="P42"><a name="Top_Bugs" />Top Bugs</h9><p class="Textbody">This report displays the bugs found in test cases within the test plan ordered by the bugs attached to the most test cases. In other words, which bugs are failing the most test cases. </p><h9 class="P42"><a name="Bugs_Found_In_This_Plan" />Bugs Found In This Plan</h9><p class="Textbody">This generates a bug list of all the bugs attached to any case in this plan. </p><h9 class="P42"><a name="Printable_Percentage_Report" />Printable Percentage Report</h9><p class="Textbody">This report displays the pass/fail percentages of the plan by run, build, and environment. </p><h5 class="Heading5"><a name="Test_Case_Reports" />Test Case Reports</h5><h9 class="P42"><a name="Estimated_vs_Actual_Time" />Estimated vs Actual Time</h9><p class="Textbody">Test cases can have a time estimate associated with them. This can then be used in conjunction with the case-runs for that case to determine the actual running time. To do this, test case-runs must be placed in the RUNNING state when a test is started. This then starts the stopwatch so to speak for that case in that run. When a case is passed or failed the difference of the two times is calculated. The average of all case-runs in all runs for this case is then used to calculate this report. </p><h9 class="P42"><a name="Historic_Status_Breakdown" />Historic Status Breakdown</h9><p class="Textbody">This pie chart represents the percentage of all case-runs for this case divided by status. </p><h2 class="Heading2"><a name="Cloning" />Cloning</h2><p class="Textbody">Often it is desirable to copy test information for use in a new development cycle. Testopia allows you to clone test cases, test run, and whole test plans, allowing you more efficiently move from one product release to another. Cloning is performed by clicking the <span class="T2">Clone</span> button on the object you wish to clone.</p><h5 class="Heading5"><a name="Cloning_Test_Plans" />Cloning Test Plans</h5><p class="Textbody">To clone a test plan: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Navigate to the plan you wish to clone and click the <span class="T2">Clone</span> button.</p></li><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Enter a name for the new plan or accept the default. </p></li><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Choose a product and product version to clone to. </p></li><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Select the clone options </p></li><li class="P43" style="margin-left:0cm;"><p class="P43" style="margin-left:0.25cm;">Click <span class="T2">Clone</span>.</p></li></ol><p class="Textbody">When cloning a test plan, you have the option to copy attachments, the plan document, any tags, and the plans access control list. You have the option of either copying the test cases, or creating links to the existing test cases. Copying the test cases will produce a new set of test cases with new Ids whereas linking will allow you to make modifications to your test cases and have then reflected everywhere.  </p><p class="Textbody">If you choose to copy the test cases, you are also given the option to apply yourself as the author of the new cases. </p><h5 class="Heading5"><a name="Cloning_Test_Cases" />Cloning Test Cases</h5><p class="Textbody">To clone a test case: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">Navigate to the test case you wish to clone and click the <span class="T2">Clone</span> button.</p></li><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">Select a clone method. </p></li><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">If copying, check the box to copy within the plans already associated </p><ol style="margin-left:0.75cm;list-style-type:decimal; "><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">Enter the plan ids of any additional test plans you wish to copy to </p></li><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">Select clone options </p></li></ol></li><li class="P44" style="margin-left:0cm;"><p class="P44" style="margin-left:0.25cm;">If linking, enter the ids of any plans you with to link this case to. </p></li></ol><p class="Textbody">As with cloning plans, you have the option of making yourself the author of the copy. You can choose to copy the attachments, tags, components, and document. </p><h5 class="Heading5"><a name="Cloning_a_Run" />Cloning a Run</h5><p class="Textbody">To clone a test run: </p><ol style="margin-left:1.25cm;list-style-type:decimal; "><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Navigate to the test run you wish to clone and click the <span class="T2">Clone</span> button.</p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Enter a summary for the copy. </p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Choose a plan within the product to clone to. </p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Choose a product version and build. </p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Select clone options. </p></li><li class="P45" style="margin-left:0cm;"><p class="P45" style="margin-left:0.25cm;">Click the <span class="T2">Clone</span> button.</p></li></ol><p class="Textbody">In addition to the options to copy the tags and making yourself the manager of the cloned run, you have the option of copying over the test cases. You can limit the clone to only include test cases of a certain status. For instance you may want to only include cases that failed in the cloned run. </p><h2 class="Heading2"><a name="Deleting" />Deleting</h2><p class="Textbody">It is possible to delete test cases, plans, runs and case-runs. To delete, you must have the allow-test-deletion parameter turned on and have the proper rights. Bugzilla admins (members of the admin group) can delete regardless of the parameter settings and have rights to delete anything in the Testopia system. </p><p class="Textbody">To delete an object, click the Delete button on that objects page. You will be taken to a confirmation screen detailing what other objects will be deleted, if any, as a result of deleting this object. To confirm, click the <span class="T2">Delete This Test</span> button. Deleting in Testopia is irreversible. If you wish to simply hide an object instead you can do so using the methods outlined below:</p><h9 class="Heading9"><a name="Test_Cases" />Test Cases</h9><p class="Textbody">To hide a test case from search results, place it in the DISABLED status.  </p><h9 class="Heading9"><a name="Test_Plans" />Test Plans</h9><p class="Textbody">To hide test plans from search results, you can archive them by clicking the <span class="T2">Archive</span> button on the plan page. </p><h9 class="Heading9"><a name="Test_Runs" />Test Runs</h9><p class="Textbody">To hide test runs, place them in the STOPPED state.  </p><h1 class="Heading1"><a name="Importing_and_Exporting" />Importing and Exporting</h1><p class="Textbody">Test cases can be exported as either XML or in Comma Separated Value formats. To export a test cases, click the appropriate format button under the <span class="T2">Export</span> section found at the bottom of the test plan page, the test case page, or the case search results page.</p><p class="Textbody">Exporting in CSV allows you to open you test cases in a spreadsheet where you can manipulate the values and generate custom reports. </p><p class="Textbody">Exporting as XML allows you to import your test cases into other Testopia installations or into custom database applications. </p><h5 class="Heading5"><a name="Importing_Test_Cases" />Importing Test Cases</h5><p class="Textbody">You can import test cases from other Testopia installations or from other test case management systems using the tr_importxml.pl script. In order to be eligible for import, your exported test cases must first comply with the Testopia document type definition found in the testopia.dtd file. This can be done by using XML stylesheets to transform the XML to match the DTD. This is outside the scope of this manual, but information on this subject is readily available via the web. </p><p class="Textbody">To import test cases, run the tr_importxml.pl script with the path to your test case XML file. More details can be found on the project wiki at </p><p class="Textbody">        <a href="http://wiki.mozilla.org/Testopia:Documentation:XMLImport">http://wiki.mozilla.org/Testopia:Documentation:XMLImport</a> </p><h1 class="Heading1"><a name="Testopia_Security" />Testopia Security</h1><p class="Textbody">Like Bugzilla, Testopia provides several methods for restricting access to test data. Because test data is often more forward looking than bug reports, Testopia requires that users log in to see any test objects. There are several layers of security that a user must pass through to view those objects however. These are determined in part by Bugzilla group membership, but mostly by the test plan access control list. </p><h2 class="Heading2"><a name="The_Testers_Group" />The Testers Group</h2><p class="Textbody">When you first install Testopia, it will create a Bugzilla group called 'Testers'. Members of this group have access to view and update all test plans and their associated objects such as cases and runs. Membership in this group is required in order to create new test plans, clone test plans, and  administer environments. If the <span class="T2">testopia-allow-group-member-deletes</span><span class="T3"> parameter is on, members of this group will also have rights to delete any object in Testopia. Membership in this group is checked first and supersedes the access control lists for individual plans.</span></p><h2 class="Heading2"><a name="Test_Plan_Access_Control_Lists" />Test Plan Access Control Lists</h2><p class="Textbody">In addition to the Testers group, each test plan maintains it's own access control list which can be used to allow or deny access to test plans based on email domain or explicit inclusion. Each test plan has its own access list. For a user that is not in the Testers group to access a test plan or any associated cases, runs, or case runs, he or she must be included on the list either by matching a regular expression, or explicit inclusion. To edit the access control list for a plan, navigate to the test plan and click the <span class="T5">Edit Access Controls</span><span class="T6"> link in the over view section.</span></p><h5 class="Heading5"><a name="User_Regular_Expression" />User Regular Expression</h5><p class="Textbody">Users with login names (email addresses) matching a supplied regular expression can be given rights to a particular test plan. The regular expression should be crafted with care to prevent unintentional access to the test plan by outsiders. For example, to grant access to your test plan by all users at acme.com you would supply the following regular expression: </p><p class="Textbody">        <span class="T14">^.*@acme\.com$</span></p><p class="Textbody">To provide access to all users at acme.com and foo.org you would use: </p><p class="Textbody">        <span class="T14">^.*@(acme\.com|foo\.org)$</span></p><p class="Textbody">To provide public access (all users) you would use: </p><p class="Textbody">        <span class="T14">.*</span></p><p class="Textbody">An empty regular expression does not match anything meaning leaving this field blank will mean the test plan will rely solely on explicit membership. </p><p class="Textbody">Once you have supplied the regular expression, you must select the access level.  </p><h5 class="Heading5"><a name="Explicit_Inclusion" />Explicit Inclusion</h5><p class="Textbody">If you do not wish to grant access to a whole group at once, you can add individual users by entering their Bugzilla login in the field provided and clicking the <span class="T2">Add User</span> button. This allows the most fine grained control as to who can do what within your test plan. However, if you add a user that matches the regular expression they will have the greater of the two rights.</p><h2 class="Heading2"><a name="Access_Rights" />Access Rights</h2><p class="Textbody">Users on the test plan access control lists can be granted rights to read, write, delete, and admin test plans and their associated objects. </p><h5 class="Heading5"><a name="Read" />Read </h5><p class="ListContents">Allows viewing rights to the plan and all test cases, test runs, and test case-runs associated with it. Test cases linked to more than one plan will be visible to users in both plans. </p><h5 class="Heading5"><a name="Write" />Write </h5><p class="ListContents">Implies Read. Allows rights to modify the plan and associated cases, runs, and case-runs.  </p><p class="ListContents">Test cases linked to more than one plan will not be writable unless the user has write rights in all plans. </p><h5 class="Heading5"><a name="Delete" />Delete </h5><p class="ListContents">Implies Read and Write. Allows rights to delete the plan and associated cases, runs, and case-runs. Test cases linked to more than one plan will not be deletable unless the user has delete rights in all plans. </p><h5 class="Heading5"><a name="Admin" />Admin </h5><p class="P46">Implies Read, Write, and Delete. Allows rights to modify the plan's access controls.  </p><h1 class="Heading1"><a name="Tags" />Tags</h1><p class="Textbody">Testopia utilizes a tagging mechanism to help organize test objects. Unlike the traditional method of placing things into virtual folders, tags allow a many-to-many relationship by allowing multiple objects to have the same tag while allowing each object to have multiple tags. </p><p class="Textbody">Tags are a novel approach to categorizing objects. They have become very popular with numerous web popular web tools and have met with much success. Tags are similar to keywords in Bugzilla but do not require an administrator to create. The act of tagging an object creates the tag which can then be used anywhere. </p><p class="Textbody">The idea behind tags is that each user can categorize each item to his or her own liking without destroying other users' categorizations. Test cases, plans, and runs can all have tags associated with them. Though tags are not directly associated with a product, Testopia uses a smart typing approach to recommend tags based on relationships to other objects within the same product. </p><p class="Textbody">Tags have a knowledge of who added them to a particular object as well, allowing users to manage the tags that they have created. </p><h5 class="Heading5"><a name="Adding_Tags_to_an_Object" />Adding Tags to an Object</h5><p class="Textbody">To add a tag to a test case, run, or plan, begin typing in the <span class="T2">Tag</span> field. If what you type matches any other tags that others have applied within the product associated with this object, it will appear up in the drop down list. You can then either select a tag that matches or type your own new tag. Clicking the Add button will then attach your tag to the object.</p><h5 class="Heading5"><a name="Viewing_Tags" />Viewing Tags</h5><p class="Textbody">To see a list of your tags click the <span class="T5">Tags</span><span class="T6"> link in the header above the tags section in any object. From this screen you have the option to look up tags based on product or entered by another user.</span></p><h1 class="Heading1"><a name="Using_Testopia_With_Automated_Test_Scripts" />Using Testopia With Automated Test Scripts</h1><p class="Textbody">Testopia provides a web service XML RPC that utilizes the SOAP protocol to interact with Testopia objects via an automated script. Documentation for this feature is available on the project wiki at <a href="http://wiki.mozilla.org/Testopia:Documentation:XMLRPC">http://wiki.mozilla.org/Testopia:Documentation:XMLRPC</a> </p><h1 class="Heading1"><a name="Field_Descriptions" />Field Descriptions</h1><h3 class="Heading3"><a name="Test_Plans" />Test Plans</h3><p class="Definition">Name </p><p class="List1End">        Short descriptor for a test plan. Does not need to be unique.</p><p class="Definition">Product </p><p class="List1End">        Bugzilla product that this plan is associated with.</p><p class="Definition">Product Version </p><p class="List1End">        The Bugzilla product version. Used as the default for new runs.</p><p class="Definition">Type </p><p class="List1End">        The testing type for this test plan. Possible values include system, integration, unit, functional and acceptance. This list is modifiable by the Bugzilla admins from the Testopai Admin link.</p><p class="Definition">Archive </p><p class="List1End">        If this bit is set to true, the plan will be archived and not display in searches by default.To archive a plan click the <span class="T2">Archive</span> button. To unarchive click <span class="T2">Unarchive</span>.</p><p class="Definition">Plan Document </p><p class="List1End">        This is document that spells out the type of testing and testing methods used for this plan.</p><p class="Definition">Tags </p><p class="List1End">        See tags description above.</p><h3 class="Heading3"><a name="Test_Cases" />Test Cases</h3><p class="Definition">Summary </p><p class="List1End">        A short description of the test case.</p><p class="Definition">Default Tester </p><p class="List1End">        The person who will be assigned to this test case when a new run is created in which this case is included.</p><p class="Definition">Alias </p><p class="List1End">        A unique string that can be used to identify this test case. This can be used in place of the test case ID but must be globally unique to the database.</p><p class="Definition">Requirement </p><p class="List1End">        The requirement number or URL to a document containing the requirement this test case is designed to test.</p><p class="Definition">Status </p><p class="List1End">        Test case status determines whether this test case can be included in new test runs.</p><ul style="margin-left:1cm;"><li class="P47" style="margin-left:0cm;"><p class="P47" style="margin-left:0.25cm;"><span class="T2">PROPOSED</span> – This test case is a work in progress and has not been reviewed for accuracy. It is therefore not ready to be included in test runs.</p></li><li class="P47" style="margin-left:0cm;"><p class="P47" style="margin-left:0.25cm;"><span class="T2">CONFIRMED</span> – Test case has passed review and is ready to be included in future test runs. Only test cases with this status can be included in new test runs.</p></li><li class="P47" style="margin-left:0cm;"><p class="P47" style="margin-left:0.25cm;"><span class="T2">DISABLED</span> – This test case is no longer applicable to current testing.</p></li></ul><p class="Definition">Priority </p><p class="List1End">        This denotes the level of testing. Higher priority test cases should be run first and more often then lower priorities.</p><p class="Definition">Category </p><p class="List1End">        The product category that this test case belongs to. Each product has a default category. Additional categories can be added which can be used to further classify your test cases. Because this is a product attribute, this list will be the same for all plans in a given product.</p><p class="Definition">Estimated Time </p><p class="List1End">        The estimated time in HH:MM:SS format that this test case should take to complete.</p><p class="Definition">Add To Runs </p><p class="List1End">        Entering a run ID here will include this test case in a test run if it is not already included. You can also enter a comma separated list of run numbers to add to multiple runs at once.</p><p class="Definition">Automatic </p><p class="List1End">        Test cases can be either Automatic or Manual. Automatic test cases are run by a script while manual test cases are performed by a tester.</p><p class="Definition">Script </p><p class="List1End">        If this is an automatic test case, you can enter the name of the script that runs this test case. TESTOPIA DOES NOT RUN YOUR SCRIPT FOR YOU. You must run your script and capture the results to send to Testopia. You can use the XMLRPC interface to have your script update the test case-run results automatically.</p><p class="Definition">Arguments </p><p class="List1End">        If there are specific arguments sent to the script that apply to this test case, they can be stored here. TESTOPIA DOES NOT RUN YOUR SCRIPTS FOR YOU. This field is only used to store the information. The XMLRPC can be used by your script to capture this from the test case.</p><p class="Definition">Attach Bugs </p><p class="List1End">        You can attach bugs to your test cases. This field accepts a comma separated list of bug numbers.</p><p class="Definition">Depends on </p><p class="List1End">        If this test case requires other test cases be run before this one, their case numbers should appear here. Enter a list of comma separated case numbers to add dependencies.</p><p class="Definition">Blocks </p><p class="List1End">        If this test case prevents others from being run their ID numbers will appear here. This field accepts a comma separated list of case numbers.</p><p class="Definition">Set Up </p><p class="List1End">        This field details the steps that are necessary to prepare to run a test</p><p class="Definition">Break Down </p><p class="List1End">        This field details the steps required to reset the test case to a known state in preparation for the next run.</p><p class="Definition">Action </p><p class="List1End">        This field lists the steps of testing. </p><p class="Definition">Expected Results </p><p class="List1End">        This details the expected outcomes of a test. </p><p class="Definition">Component </p><p class="List1End">        You can associate Bugzilla components to your test cases. Because testing might be across multiple components and products, you can add multiple components from any product. Selecting the product from the drop down list displays the components available. Click Add to associate the selected component with the test case.</p><p class="Definition">Tags </p><p class="List1End">        See above for a description.</p><h3 class="Heading3"><a name="Test_Runs" />Test Runs</h3><p class="Definition">Product Version </p><p class="List1End">        This is the Bugzilla product version that this test run is testing.</p><p class="Definition">Plan Version </p><p class="List1End">        This is the version of the plan document that this test run is using.</p><p class="Definition">Manager </p><p class="List1End">        The user in charge of this test run</p><p class="Definition">Build </p><p class="List1End">        The default product build. This is applied to test cases added to the run.</p><p class="Definition">Status </p><p class="List1End">        Determines if this test run is active. </p><ul style="margin-left:1cm;"><li class="P48" style="margin-left:0cm;"><p class="P48" style="margin-left:0.25cm;">RUNNING – This test run is still active. Test cases in this run can be updated. </p></li><li class="P48" style="margin-left:0cm;"><p class="P48" style="margin-left:0.25cm;">STOPPED – Test cases in a stopped run cannot be modified. </p></li></ul><p class="Definition">Environment </p><p class="List1End">        This is the environment in use for this test run. Test cases added to this run will receive this environment. Environments must be created using the Environment editor before a test run can be created.</p><p class="Definition">Summary </p><p class="List1End">        A short description of this test run</p><p class="Definition">Notes </p><p class="List1End">        This field is a place to make notes and observations about this run.</p><h3 class="Heading3"><a name="Test_Case-Runs" />Test Case-Runs</h3><p class="Definition">Status </p><p class="List1End">        The status of a case-run determined by whether it passed or failed or is in some other state.</p><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">IDLE</span>: This is the default status. Case has not yet been examined.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">PASSED</span>: This test case met the requirement or ran as expected.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">FAILED</span>: This test case did not run as expected or produced an unhandled exception.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">RUNNING</span>: This test case is currently being examined.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">PAUSED</span>: This status is used to denote a problem with the test case itself that prevents the test from being completed.</div><div class="P49"><img width="30" height="30" alt="" src="file:///home/ghendricks/workspace/bnc-3.0/testopia/doc/" class="fr4" /> - <span class="T2">BLOCKED</span>: This test case has a dependency that failed.</div><p class="P49"> </p><p class="P49"> </p><p class="Definition">Index </p><p class="List1End">        A user defined sort index. This can be used to place your test cases in a specific order.</p><p class="Definition">Add Notes </p><p class="List1End">        This is a place to append notes to the case-run. </p><p class="Definition">Notes </p><p class="List1End">        This field combines the notes from all case-runs records for this case in this run as well as status change history.</p><p class="Definition">Update bug status </p><p class="List1End">        With this box checked, bugs that are attached to this test case in the RESOLVED FIXED state will be automatically placed in the REOPENED state if the test case fails or into the VERIFIED FIXED state if it passes. </p><p class="Definition">Attach Bugs </p><p class="List1End">        This field allows you to attach bugs to this test case. Enter a comma separated list of bug numbers to attach more than one bug at a time.</p><p class="Definition">Assignee </p><p class="List1End">        This is the person assigned to run this test case.</p><p class="Definition">Tested By </p><p class="List1End">        This is the person that actually ran the test. This is updated when a test case is placed into the PASSED, FAILED, or BLOCKED status.</p><p class="Definition">Close Date </p><p class="List1End">        The time this test case was closed (PASSED, FAILED, or BLOCKED)</p><p class="Definition">Build </p><p class="List1End">        The product build used for this test case-run.</p><p class="Definition">Environment </p><p class="List1End">        The product environment used for this test case run.</p><p class="Textbody"> </p><p class="Textbody">        </p><h1 class="P12"><a name="Glossary" />Glossary</h1><div style="text-align:left"><table border="0" cellspacing="0" cellpadding="0" class="Table2"><colgroup><col width="131" /><col width="140" /><col width="451" /></colgroup><tr><td style="text-align:left;width:1.1757in; " class="Table2A1"><p class="TableHeading">Term </p></td><td style="text-align:left;width:1.259in; " class="Table2A1"><p class="TableHeading">Objects </p></td><td style="text-align:left;width:4.0646in; " class="Table2C1"><p class="TableHeading">Description </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Action </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents">Test Case </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The list of steps that a test case must complete. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Alias </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents">Test Case </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A globally unique string that identifies a test case in conjunction with the test case ID.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Archive </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents">Test Plan </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">Test plans may be archived and hidden from regular searches. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Arguments </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents">Test Case </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A list of parameters to send to an automatic test script . </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Assignee </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The person responsible for applying a status to a test case-run </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Blocks </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A test case that blocks another test case. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">BLOCKED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run indicating the prerequisite test case failed. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Build </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">In software testing, a string denoting the compiled results of a period of development.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Category </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A property of a product that is used to classify test cases. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Clone </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">An exact replica of data between two objects. In Testopia you can clone plans, runs, and cases. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Component </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A Bugzilla component. An attribute of a product. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">CONFIRMED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a case. Confirmed test cases have been approved for use in test runs. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Default Tester </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The default person responsible for applying a status to the test case-run for a given test case. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Dependency </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">Test cases can be dependent on other test cases. There are two types of relationships, depends on and blocks. A test case that is blocked by another should not be examined before the prerequisite test case as success is determined in part by the outcome of the predecessor. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Depends on </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">Sets up a dependency between test cases. Depends on lists the test cases that a particular test case requires to be completed before this case. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">DISABLED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case denoting it is no longer used for active testing. Similar to archival for a plan. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Expected Results </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The expected results upon completing the action of a test case. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Environment </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A list of the surrounding conditions that a test run is performed in. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">FAILED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case failed in the given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">IDLE </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case has not been examined in the given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Manager </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The person in charge of a given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Milestone </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A Bugzilla object. A property of a product that implies when a given bug or feature will be fixed or included. Testopia builds are associated with milestones. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">PASSED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case has met the conditions of success detailed in the Expected Results of the test case in the given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">PAUSED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case has been under examination in the given run and is on hold. Used primarily for performance tests that may span long time periods. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Plan Document </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The information of a test plan detailing what the test plan will cover for what by when. Depending on the level of scrutiny required it can be very verbose. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Plan Version </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The version of the plan document used for a particular run.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Priority </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The Bugzilla priority. Test cases can be assigned a priority similar to bugs. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">PROPOSED </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case that denotes it has not yet been approved for use in test runs.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Requirement </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A field of a test case provided to capture information about a requirement. Typically an ID of a requirement in a separate requirement tracking system. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">RUNNING </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test case-run. Denotes the test case is in the process of being examined in the given run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Running </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test run. Running test runs can have case-runs updated and implies that there is further testing to be done in the run. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Script </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A path to an external automated test script for a given test case. Testopia does not run this script, the field is only provided as a way of informing the user where to find it. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Stopped </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A status of a test run. Stopped test runs can not have case-runs updated. This status denotes the run is complete. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Tag </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A user defined string used to classify test plans, cases, and runs.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Test Case </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">A list of conditions and expected results for success for a particular feature or object under scrutiny. Test cases are associated with one or more test plans and with zero or more test runs. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Test Case-run </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The union of a test case and a test run. Each time a test case is included in a new test run, an entry is made for it in the test case-runs table. This captures whether the test case passed or failed in the given run. Each case-run should be associated with only one build for a given status.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Test Plan </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The defining object in Testopia. Organizes the other objects in Testopia. </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Test Run </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The instance of performance in Testopia. Each run is associated with a single plan and environment. It contains a list of test cases to be examined and stores the results in the case-runs table.  </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Tested By </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The person who examined and applied a status to a given case-run </p></td></tr><tr><td style="text-align:left;width:1.1757in; " class="Table2A2"><p class="TableContents">Type </p></td><td style="text-align:left;width:1.259in; " class="Table2A2"><p class="TableContents"> </p></td><td style="text-align:left;width:4.0646in; " class="Table2C2"><p class="TableContents">The plan type. Plan types might include System, Unit, Integration etc. Each plan can be of only one type. </p></td></tr></table></div><p class="Textbody"> </p><h1 class="P12"><a name="Getting_Help" />Getting Help</h1><p class="Textbody">There are a number of resources for getting help in Testopia. You should first check out the FAQ on the wiki for additional pointers not included in this manual. If your problem is not there, asking your question on the mailing lists or in the chat room are your next best options. Please do not email the developers directly with support questions. They are busy people like you who have other commitments and cannot expect to be available at all times. Besides, asking your questions in a public forum allow more people the chance to respond and might get you a solution more quickly. </p><h5 class="Heading5"><a name="Mailing_Lists" />Mailing Lists</h5><ul style="margin-left:1.25cm;"><li class="P50" style="margin-left:0cm;"><p class="P50" style="margin-left:0.25cm;"><a href="mailto:support-webtools@lists.mozilla.org">support-webtools@lists.mozilla.org</a></p></li><li class="P50" style="margin-left:0cm;"><p class="P50" style="margin-left:0.25cm;"><a href="mailto:dev-apps-webtools@lists.mozilla.org">dev-apps-webtools@lists.mozilla.org</a></p></li></ul><h5 class="Heading5"><a name="IRC_Chatroom" />IRC Chatroom</h5><p class="Textbody">        <a href="irc://irc.mozilla.org/testopia">irc://irc.mozilla.org/testopia</a></p><h5 class="Heading5"><a name="Wiki" />Wiki</h5><p class="Textbody">        <a href="http://wiki.mozilla.org/Testopia">http://wiki.mozilla.org/Testopia</a> </p><h5 class="Heading5"><a name="Project_Home_Page" />Project Home Page</h5><p class="P51">        <a href="http://mozilla.org/projects/testopia">http://mozilla.org/projects/testopia</a></p><h3 class="Heading3"><a name="Reporting_Bugs" />Reporting Bugs</h3><p class="Textbody">Testopia is still a work in progress. As such, it still has a lot of bugs to be worked out. If you encounter a bug or find some way to make Testopia better, please log it at  </p><p class="Textbody">        <a href="http://bugzilla.mozilla.org/enter_bug.cgi?product=Testopia">http://bugzilla.mozilla.org/enter_bug.cgi?product=Testopia</a></p><p class="Textbody">Be sure to include steps to reproduce the problem and what browser you are using to access Testopia.  </p><h1 class="P12"><a name="Bibliography" />Bibliography</h1><p class="Standard">Copeland, L. (2004). A Practitioner's Guide to Software Test Design  </p><p class="Standard">        Norwood, MA: Artech House</p><p class="Standard"> </p><p class="Standard">IEEE Std 829-1998 IEEE Standard for Software Test Documentation (n.d). </p><p class="Standard">        Retrieved February 28, 2007 from         <a href="http://standards.ieee.org/reading/ieee/std_public/description/se/829-1998_desc.html">http://standards.ieee.org/reading/ieee/std_public/description/se/829-1998_desc.html</a></p><p class="Standard"> </p><p class="Standard">Lohmeyer, J. (2004, April 27). Open-Source Bug Tracking with Bugzilla. Linux Journal. </p><p class="Standard">        Retrieved February 27, 2007, from <a href="http://www.linuxjournal.com/taxonomy/term/8">http://www.linuxjournal.com/article/7216</a></p><p class="Standard"> </p><p class="Standard">Meyers, G.J. (2004). The Art of Software Testing, Second Edition </p><p class="Standard">        Hoboken, NJ: John Wiley & Sons.</p><p class="Standard"> </p><p class="Standard">Runnels, D.L. (1999). <span class="T15">How to Write Better Test Cases</span></p><p class="Standard"><span class="T15">        </span>Retrieved September, 2006 from</p><p class="Standard"><a href="http://www.stickyminds.com/getfile.asp?ot=XML&id=2136&fn=XDD2136filelistfilename1%2Epdf">http://www.stickyminds.com/getfile.asp?ot=XML&id=2136&fn=XDD2136filelistfilename1%2Epdf</a> </p><p class="P52"> </p><p class="Standard">Sherry, R.(2006, August).Testopia </p><p class="Standard">        Retrieved January 23, 2007 from         <a href="http://www.rosiesherry.com/softwaretesting/show/Testopia">http://www.rosiesherry.com/softwaretesting/show/Testopia</a> </p><p class="Standard"> </p><p class="Standard">Why Software Testing is Important ??? - Good one! (June 6, 2006). </p><p class="Standard">        Retrieved January 23, 2007 from </p><p class="Standard">        <a href="http://techiecorner.blogspot.com/2006/06/why-softwaretesting-is-important-good.html">http://techiecorner.blogspot.com/2006/06/why-softwaretesting-is-important-good.html</a> </p><p class="P53"> </p></body></html> \ No newline at end of file