<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.6/uma.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1" xmi:id="-XV4rH8guz_Py0zgFgqXCsw" name="testing_a_method_asset,_ytd9kKDhEd-nMJcdx60YsA" guid="-XV4rH8guz_Py0zgFgqXCsw" changeDate="2010-11-23T15:42:11.325-0800" version="7.5.0">
  <mainDescription>&lt;h3>&#xD;
    1.0 Introduction&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Testing&amp;nbsp;method assets is important because errors tend to build up over time.&amp;nbsp; Some reasons for errors are:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        parallel work on method assets that have dependencies&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        forgetting to make updates to all dependent plug-ins&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        inexperienced method authors&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Before releasing a method asset, there are a number of types of tests that should be executed.&amp;nbsp; These are&#xD;
    described in the following sections.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    2.0 Tools&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    The following tools can be helpful for testing.&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        IBM(R) Rational(R) Method Composer - adds features useful for testing that aren't available in EPF Composer, such&#xD;
        as BIRT reporting and spell checking.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Funduc Search and replace - excellent tool for global search and replace&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Parasoft(R) WebKing(R) - checks for accessibility, spelling&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Adobe(R) Dreamweaver(R) - fully-featured HTML editor&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Scooter Software Beyond Compare - tool for comparing files and directories&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        IBM Automated Content Testing - scripts that check for a variety of issues and inconsistencies.&amp;nbsp; This is part&#xD;
        of the Rational Method Authoring Quality Assessor packaged service asset.&lt;br />&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h3>&#xD;
    3.0 Orphans/Invalid Files/Dependencies&#xD;
&lt;/h3>&#xD;
&lt;h4>&#xD;
    Invalid files&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Search and delete files left by&amp;nbsp;Windows or&amp;nbsp;the version control system.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    *.keep - IBM(R) Rational(R) ClearCase(R)&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    thumbs - Microsoft(R) Windows(R)&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Also, many file types are difficult to translate, and so we try to standardize on jpg for graphics and keep all text in&#xD;
    xmi or xml formats.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    IBM Automated Content Testing provides a script &quot;Test for File Types&quot; which lists non-standard file types.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    All elements are categorized&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Browse the &quot;all practices&quot; configuration for disciplines and domains&amp;nbsp;and confirm that the &quot;uncategorized&quot; category&#xD;
    is empty.&lt;br />&#xD;
    Work product slots are an exception.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Orphan files&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Make a copy of the library and delete all packages, custom categories, processes. Do not delete the plug-ins, as that&#xD;
    will delete all files including orphans.&amp;nbsp; Any remaining xmi files must be orphans, and should be removed from&#xD;
    ClearCase. Caution – get the team to confirm before doing the delete – the problem may be that the file should be added&#xD;
    back in rather than be removed.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Orphan resource files&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Try RMC's &quot;Edit&amp;gt;Clean Resources&quot; in a copy of the library, then use beyond compare to determine what changes were&#xD;
    made.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    All tasks and work products have a responsible role&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Browse the published web site looking at each role and work product.&amp;nbsp; Can create BIRT reports to detect this.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    IBM Automated Content Testing includes a report &quot;Check for Primary Performer&quot; that reports on tasks that have no&#xD;
    primary role and work products that have no responsible role.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    All tasks have an input and output work product&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Strictly speaking, a task might not have any input work products, but generally if a task is missing inputs and/or&#xD;
    outputs, it is usually an oversight.&amp;nbsp; Browse the published web site looking at each task.&amp;nbsp; Can create BIRT&#xD;
    reports to detect this.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    IBM Automated Content Testing includes a report &quot;Check for Input and Output Artifact&quot; that reports on tasks that are&#xD;
    missing inputs and outputs.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Unreferenced core elements&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Every element in &quot;core&quot; should be referenced by at least once practice in the library.&lt;br />&#xD;
    A BIRT report can be used for this.&amp;nbsp; Unused elements should be moved out of the release.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    External broken links&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Choose the publishing option to check external hyperlinks.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Dependency Testing&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Publish each practice on its own (can use the RMC Process Builder).&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Confirm that there are no broken link errors (there may be errors if, for example, there is a link to a guideline, but&#xD;
    that guideline is not explicitly attached to any elements in the plug-in).&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Create a configuration that has no practices, just Core.&amp;nbsp; Confirm that there are no errors (that no core plug-ins&#xD;
    depend on practice plug-ins).&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Confirm that there are no unnecessary dependencies.&amp;nbsp; Publish a configuration with all practices, but no assign&#xD;
    plug-ins or definition plug-ins for those assignments.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    4.0 Method composer error reports and logs&#xD;
&lt;/h3>&#xD;
&lt;h4>&#xD;
    Publication errors&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Fix or explain every error in the publication log for each of the available configurations.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Configuration errors&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Fix or explain every error and warning in the error log tab for each of the available configurations.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Library problem view&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Fix or explain every error in the library problem view.&lt;br />&#xD;
    - open every configuration to make sure errors are loaded&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Library validation&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Enable Preferences/Method/Authoring/Debug/Enable method library validation.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Run &quot;Validate Method Library&quot;.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    View the logs and correct any errors.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    5.0 Regression testing&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    When upgrading to a new version of Method Composer, check that contributes, extends, replace work as expected.&amp;nbsp;&#xD;
    Find an example in the library, confirm it works as expected.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Use Beyond Compare to list the differences in the published sites. Confirm that the changes were expected.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    6.0 Standards&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    The tests below describe how to test and correct the most common violations of authoring standards.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    File naming conventions&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Use windows search and scan for mixed-case file names, spaces in filenames, or long filenames.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Bad HTML&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Microsoft fonts: Search for MsoNormal, Font-family, and Microsoft to detect Microsoft word originated HTML. Use word&#xD;
    cleanup macro in Method Composer, Dreamweaver and manual means to clean it up.&lt;br />&#xD;
    &lt;br />&#xD;
    Extra fonts on links (inserted by old version of Method Composer)&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Search for font color=&quot;#0000ff and check if is part of a link. If lots, use search/replace script to do a global&#xD;
    replace.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Bad character testing&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Certain non-ASCII characters cause problems with some browsers and translation tools.&amp;nbsp; The most common problem&#xD;
    characters are curly quotes and bullets inserted when pasting from Microsoft(R) Word(R).&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Use search and replace – search for [~-ÿ]. For any unexpected characters, replace with correct characters.&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        curly single and double quotes - replace with straight quotes typed from the keyboard (&quot; and ')&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        bullets and dash/emdash&amp;nbsp;- replace with hyphen&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        guillemets - replace with double angle brackets &amp;lt;&amp;lt; &amp;gt;&amp;gt;&amp;gt;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Remember that the XMI files contain escaped HTML, so be careful with characters that are defined with an ampersand,&#xD;
    such as trademarks&amp;nbsp;- in XMI you may need an additional ampersand.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Brief descriptions&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Run a BIRT report to extract brief descriptions.&amp;nbsp; Everything except checklists should have brief descriptions.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Project and directory names&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    When using workspaces, it is easy for plug-in name, plug-in folder name, and plug-in project names to become&#xD;
    inconsistent.&amp;nbsp; Use search-replace to find all plug-in names and project names.&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        search for methodplugin*name in all plugin.xmi files&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        search for &amp;lt;NAME&amp;gt; tags&amp;nbsp;in all .project files&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Copy results into a text file (including filenames), remove non-name text, sort in Excel, and look for differences&#xD;
    between directories, project names, and plug-in names.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Version and copyright information&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Every practice and the library as a whole should have a &quot;release info&quot; page that describes the latest release.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Confirm that these pages are included in the published configurations' views&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        In EPF Composer&amp;nbsp;- you need to check the views by hand&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In Rational Method Composer&amp;nbsp;&amp;nbsp;- you need to check that every &quot;release_info&quot; page is tagged&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Confirm that every plug-in has the appropriate copyright (open source has EPF copyright, company owned content has&#xD;
    company copyright), and confirm it publishes correctly.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Confirm that licencing/legal information is attached and publishes.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Accessibility&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Use Parasoft WebKing to check compliance with accessibility standards.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Spelling/Grammar/Readiness for translation&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Spell check is provided by Rational Method Composer on a per element and per plug-in basis.&amp;nbsp; You can also check an&#xD;
    entire library using WebKing.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    IBM Automated Content Testing also has a script &quot;Style Search&quot; that checks for common style problems, such as words&#xD;
    that are difficult to translate.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Content that is intended to be translated has to go through additional checks in order to ensure that it will work with&#xD;
    translation memory tools.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    For example, IBM uses IBM internal tools - SEGCHK to check for grammar errors, and CHKPII for bad characters, prior to&#xD;
    translation.&amp;nbsp;Commercial translation tools will have their own validation tools.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Browser Compatibility&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Open up a published configuration in the supported browsers and compare each kind of page. A work product, a guideline,&#xD;
    a checklist, a task and an activity with an activity diagram and work breakdown structure. Confirm that they look&#xD;
    reasonably similar - that no odd fonts are appearing, that text is readable, links are working, and so on.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Then expand your screen to as large as possible (to allow maximum viewing of each page) and use the keypad to open each&#xD;
    page in the treebrowser and confirm that nothing strange appears (missing graphics, corrupted HTML, and so on).&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Publication options&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Review the publication options, and confirm that they are correct.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Make sure the feedback for each configuration is directed to the right location, and works after publishing.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Synchronization&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Confirm that processes that require synchronization have been synchronized after any and all method content was&#xD;
    finalized.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Index, glossary, search&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Confirm that the index, glossary, and search all work.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Supporting plug-ins&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Confirm that the &quot;is_supporting&quot; flag has been used correctly on core plug-ins.&amp;nbsp;Publish a configuration that only&#xD;
    has a few practices, and look for additional elements that don't belong, such as&amp;nbsp;unused roles, unused tasks, and&#xD;
    unused work products.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Locking&#xD;
&lt;/h4>Confirm that the released library has all plug-ins locked so that users that extend the library do no inadvertently&#xD;
modify them.&lt;br />&#xD;
&lt;br />&#xD;
&lt;h3>&#xD;
    7.0 Rational Method Composer-only Tests&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    The following tests do not apply to EPF Composer.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Process Builders&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Confirm that process builders work correctly.&lt;br />&#xD;
    - all practices are presented in the builders&lt;br />&#xD;
    - every practice has a brief description that is readable in the builder, and matches the brief description for the&#xD;
    practice.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Confirm that the &quot;all practices&quot; configuration matches what is displayed by the IBM practices builder.&amp;nbsp; (The&#xD;
    builder may do further decomposition to identify alternative practices).&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Orphaned tags&#xD;
&lt;/h4>Unused tags should be found and removed.</mainDescription>
</org.eclipse.epf.uma:ContentDescription>
