<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8438568837369228733</id><updated>2011-04-21T17:48:05.664-07:00</updated><title type='text'>Software Testing (Manaul &amp; Automation)</title><subtitle type='html'>This blog is to share information on following topics 
- Manual &amp;amp; Automation software testing
- Different frameworks used in automation
- Different tools used for automating manual test cases
- New test automation tools analysis (e.g. Selenium, AutoIt, SOA Test, WATiJ etc)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vaibhavst.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vaibhavst.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vaibhav Tavarageri</name><uri>http://www.blogger.com/profile/17348246290428180608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_lBfqxZz35ZM/TCY--jTds5I/AAAAAAAAGao/7vxL7ba-NDk/S220/DSC05934.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8438568837369228733.post-8521872707027076929</id><published>2008-05-23T00:05:00.000-07:00</published><updated>2008-05-23T00:06:34.230-07:00</updated><title type='text'>Flight reservation Master Test plan</title><content type='html'>Follow below link for Master Test plan, its just an example &lt;br /&gt;&lt;br /&gt;http://docs.google.com/Doc?id=dgtthv5g_76g8rm3ngm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8438568837369228733-8521872707027076929?l=vaibhavst.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vaibhavst.blogspot.com/feeds/8521872707027076929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8438568837369228733&amp;postID=8521872707027076929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/8521872707027076929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/8521872707027076929'/><link rel='alternate' type='text/html' href='http://vaibhavst.blogspot.com/2008/05/flight-reservation-master-test-plan.html' title='Flight reservation Master Test plan'/><author><name>Vaibhav Tavarageri</name><uri>http://www.blogger.com/profile/17348246290428180608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_lBfqxZz35ZM/TCY--jTds5I/AAAAAAAAGao/7vxL7ba-NDk/S220/DSC05934.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8438568837369228733.post-9134153284463303209</id><published>2008-05-22T23:48:00.000-07:00</published><updated>2011-01-03T09:00:14.175-08:00</updated><title type='text'></title><content type='html'> &lt;H2 CLASS="western" ALIGN=CENTER STYLE="margin-top: 0in; background: #6a8fbd"&gt; Concepts:  Test Strategy&lt;/H2&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;A strategy for the testing portion of a project describes the general approach and objectives of the test activities. It includes which stages of testing (unit, integration and system) are to be addressed and which kinds of testing (function, performance, load, stress, etc.) are to be performed.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;The strategy defines:  &lt;/P&gt; &lt;UL&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-top: 0.19in; margin-bottom: 0in"&gt; 	Testing techniques and tools to be employed.  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;What test 	completion and success criteria are to be used. For example, the 	criteria might allow the software to progress to acceptance testing 	when 95 percent of the test cases have been successfully executed. 	Another criterion is code coverage. This criterion may, in a 	safety-critical system, be that 100% of the code should be covered 	by tests.  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0.19in"&gt;Special 	considerations affect resource requirements or have schedule 	implications such as:  	&lt;/P&gt; &lt;/UL&gt; &lt;UL&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-right: 1in; margin-bottom: 0in"&gt; 	The testing of interfaces to external systems.  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-right: 1in; margin-bottom: 0.19in"&gt; 	Simulating physical damage or security threat.  	&lt;/P&gt; &lt;/UL&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Some organizations have corporate test strategies defined. In which case, you work to apply those strategies to your specific project.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;The most important dimensions you should plan your test activities around are: &lt;/P&gt; &lt;UL&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-top: 0.19in; margin-bottom: 0in"&gt; 	What iteration you are you in, and what the goals of that iteration 	are.  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0.19in"&gt;What stage of 	test (unit test, integration test, system test) you are performing. 	You may work all stages of test in one iteration.  	&lt;/P&gt; &lt;/UL&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Now take a look at how the characteristics of your test activities can change depending on where you are in the above-mentioned &amp;quot;test dimensions&amp;quot;. There are of course many characteristics you could look at, such as resources needed and time spent, but at this point, focus on what is important to defining your test strategy:  &lt;/P&gt; &lt;UL&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-top: 0.19in; margin-bottom: 0in"&gt; 	Types of test (functional, stress, volume, performance, usability, 	distribution, and so on).  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;Evaluation 	criteria used (code-based test coverage, requirements-based test 	coverage, number of defects, mean time between failure, and so on.)  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0.19in"&gt;Testing 	techniques used (manual and automated)  	&lt;/P&gt; &lt;/UL&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;There is no general pattern for how the types of tests are distributed over the test cycles. Depending on the number of iterations, the size of the iteration, and what kind of project this is, you will focus on different types of tests.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;You will find that the system test stage has a strong focus on making sure you are covering all testable requirements expressed in terms of a set of test cases. This means your completion criteria will focus on requirements-based test coverage. In the integration and unit test stages, you will find code-based test coverage is a more appropriate completion criterion. The following figure shows how the use of these two types of test coverage measures can change as you develop new iterations of your software.  &lt;/P&gt; &lt;UL&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-top: 0.19in; margin-bottom: 0in"&gt; 	The test plan should define sets of completion criteria for unit 	test, integration test and system test.  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0.19in"&gt;You may have 	different sets of completion criteria defined for individual 	iterations.  	&lt;/P&gt; &lt;/UL&gt; &lt;P ALIGN=CENTER STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_73d7ws3hdj_b" NAME="testr001" ALIGN=BOTTOM WIDTH=320 HEIGHT=191 BORDER=0&gt;&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;In your project you should consider automating your tests as much as possible, specifically the kind of tests you repeat several times (regression tests). But keep in mind that it costs time and resources to create and maintain automated tests. There will always be some amount of manual testing in each project. The following figure illustrates when and in what stages of testing you will probably perform manual tests.&lt;/P&gt; &lt;P ALIGN=CENTER STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_74f5zbvq5s_b" NAME="testr002" ALIGN=BOTTOM WIDTH=320 HEIGHT=191 BORDER=0&gt;&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;&lt;B&gt;Example:&lt;/B&gt;&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;The following tables show when the different types of tests are identified, and provide an example of the completion criteria to define. The first table shows a &amp;quot;typical&amp;quot; MIS project:&lt;/P&gt; &lt;CENTER&gt; 	&lt;TABLE WIDTH=521 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=1 CELLSPACING=3&gt; 		&lt;COL WIDTH=71&gt; 		&lt;COL WIDTH=243&gt; 		&lt;COL WIDTH=113&gt; 		&lt;COL WIDTH=69&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=71&gt; 				&lt;P CLASS="western"&gt;&lt;B&gt;Iteration / test&lt;/B&gt;&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=243&gt; 				&lt;P CLASS="western"&gt;&lt;B&gt;System test&lt;/B&gt;&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=113&gt; 				&lt;P CLASS="western"&gt;&lt;B&gt;Integration test&lt;/B&gt;&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;&lt;B&gt;Unit test&lt;/B&gt;&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=71&gt; 				&lt;P CLASS="western"&gt;Iteration 1&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=243&gt; 				&lt;P CLASS="western"&gt;Automated performance testing for all use 				cases.&lt;BR&gt;&amp;middot; All planned tests have been executed.&lt;BR&gt;&amp;middot; 				All severity 1 defects have been addressed.&lt;BR&gt;All planned tests 				have been re-executed and no new severity 1 defects identified.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=113&gt; 				&lt;P CLASS="western"&gt;None&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;Informal testing&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=71&gt; 				&lt;P CLASS="western"&gt;Iteration 2&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=243&gt; 				&lt;P CLASS="western"&gt;Automated performance and functionality 				testing for all new use cases and the previous as regression 				test.&lt;BR&gt;&amp;middot; All planned tests have been executed.&lt;BR&gt;&amp;middot; 				All severity 1 and 2 defects have been addressed.&lt;BR&gt;&amp;middot; All 				planned tests have been re-executed and no new severity 1 or 2 				defects identified.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=113&gt; 				&lt;P CLASS="western"&gt;None&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;Informal testing&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=71&gt; 				&lt;P CLASS="western"&gt;Iteration 3&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=243&gt; 				&lt;P CLASS="western"&gt;Automated functionality and negative testing 				for all new use cases and all the previous as regression 				test.&lt;BR&gt;95% of test cases have to pass.&lt;BR&gt;&amp;middot; All planned 				tests have been executed.&lt;BR&gt;&amp;middot; All severity 1, 2, and 3 				defects identified.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=113&gt; 				&lt;P CLASS="western"&gt;Automated testing, 70% code coverage.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;Informal testing&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=71&gt; 				&lt;P CLASS="western"&gt;Iteration 4&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=243&gt; 				&lt;P CLASS="western"&gt;Automated functionality and negative testing 				for all use cases, manual testing for all parts that are not 				automated and all the previous as regression test.&lt;BR&gt;100% of 				test cases have to pass.&lt;BR&gt;&amp;middot; All planned tests have been 				executed.&lt;BR&gt;&amp;middot; All severity 1, 2, and 3 defects have been 				addressed.&lt;BR&gt;&amp;middot; All planned tests have been re-executed 				and no new severity 1 or 2 defects identified.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=113&gt; 				&lt;P CLASS="western"&gt;Automated testing, 80% code coverage.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;Informal testing&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 	&lt;/TABLE&gt; &lt;/CENTER&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;The second table shows types of test and completion criteria applied for a &amp;quot;typical&amp;quot; safety-critical system:&lt;/P&gt; &lt;CENTER&gt; 	&lt;TABLE WIDTH=521 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=1 CELLSPACING=3&gt; 		&lt;COL WIDTH=69&gt; 		&lt;COL WIDTH=194&gt; 		&lt;COL WIDTH=133&gt; 		&lt;COL WIDTH=100&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;&lt;B&gt;Iteration / test&lt;/B&gt;&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=194&gt; 				&lt;P CLASS="western"&gt;&lt;B&gt;System test&lt;/B&gt;&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=133&gt; 				&lt;P CLASS="western"&gt;&lt;B&gt;Integration test&lt;/B&gt;&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=100&gt; 				&lt;P CLASS="western"&gt;&lt;B&gt;Unit test&lt;/B&gt;&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;Iteration 1&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=194&gt; 				&lt;P CLASS="western"&gt;Automated performance testing for all use 				cases, 100% test-case coverage.&lt;BR&gt;&amp;middot; All planned tests 				have been executed.&lt;BR&gt;&amp;middot; All severity 1 defects have been 				addressed.&lt;BR&gt;&amp;middot; All planned tests have bee re-executed and 				no new defects identified.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=133&gt; 				&lt;P CLASS="western"&gt;None&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=100&gt; 				&lt;P CLASS="western"&gt;None&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;Iteration 2&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=194&gt; 				&lt;P CLASS="western"&gt;Automated performance, functionality and 				negative testing for all use cases, 100% test-case coverage.&lt;BR&gt;&amp;middot; 				All planned tests have been executed.&lt;BR&gt;&amp;middot; All severity 1 				or 2 defects have been addressed.&lt;BR&gt;&amp;middot; All planned tests 				have been re-executed and no new defects identified.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=133&gt; 				&lt;P CLASS="western"&gt;Automated performance testing&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=100&gt; 				&lt;P CLASS="western"&gt;Informal testing&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;Iteration 3&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=194&gt; 				&lt;P CLASS="western"&gt;Automated performance, functionality, negative 				usability and documentation testing for all use cases, 100% 				test-case coverage.&lt;BR&gt;&amp;middot; All planned tests have been 				executed.&lt;BR&gt;&amp;middot; All severity 1, 2, and 3 defects have been 				addressed.&lt;BR&gt;&amp;middot; All planned tests have been re-executed 				and no new defects identified.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=133&gt; 				&lt;P CLASS="western"&gt;Automated performance testing and the previous 				as regression test&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=100&gt; 				&lt;P CLASS="western"&gt;Automated testing, 70% code coverage&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 		&lt;TR VALIGN=TOP&gt; 			&lt;TD WIDTH=69&gt; 				&lt;P CLASS="western"&gt;Iteration 4&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=194&gt; 				&lt;P CLASS="western"&gt;Automated performance, functionality, negative 				usability and documentation testing for all use cases, 100% 				test-case coverage.&lt;BR&gt;&amp;middot; All planned tests have been 				executed.&lt;BR&gt;&amp;middot; All severity 1, 2, and 3 defects have been 				addressed.&lt;BR&gt;&amp;middot; All planned tests have been re-executed 				and no defects identified.&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=133&gt; 				&lt;P CLASS="western"&gt;Automated performance testing and the previous 				as regression testing&lt;/P&gt; 			&lt;/TD&gt; 			&lt;TD WIDTH=100&gt; 				&lt;P CLASS="western"&gt;Automated testing, 80% code coverage&lt;/P&gt; 			&lt;/TD&gt; 		&lt;/TR&gt; 	&lt;/TABLE&gt; &lt;/CENTER&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;&lt;BR&gt;&lt;BR&gt; &lt;/P&gt; &lt;H3 CLASS="western"&gt;Select appropriate implementation technique &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To determine the appropriate technique to 			implement the test.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Select the most appropriate technique to implement the test. For each test that you want to conduct, consider implementing at least one Test Script. In some instances, the implementation for a given test will span multiple Test Scripts. In others, a single Test Script will provide the implementation for multiple tests.  &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Typical methods for implementing Test Scripts include the manual, programming, recording and generation. Each method is discussed in the following sections.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;As with most approaches, we recommend you'll get more useful results if you use a mixture of the following techniques. While you don't need to use them all, you shouldn't confine yourself to using a single technique either.&lt;/P&gt; &lt;H4 CLASS="western"&gt;Manual Test Scripts &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=21 HEIGHT=16 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Many tests make sense to be conducted manually. Usability tests are an area where manual testing is in most cases a better solution than an automated one. Also tests that require validation of the accuracy and quality of the physical outputs from a software system generally require manual validation. As a general heuristic, it's a good idea to begin the first tests of a particular Target Test Item with a manual implementation; this approach allows the tester to learn about the target item, adapt to unexpected behavior from it, and apply human judgment to determine the next appropriate action to be taken.  &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Sometimes manually conducted tests will be subsequently automated and reused as part of a regression testing strategy. Note however that it isn't necessary or desirable&amp;mdash;or even possible&amp;mdash;to automate every test that you could otherwise conduct manually. Automation brings certain advantages in speed and accuracy of test execution, visibility and collation of detailed test outcomes and in efficiency of creating and maintaining complex tests, but like all useful tools, it isn't the solution to all your needs.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Automation comes with certain disadvantages: these basically amount to an absence of human judgment and reasoning during test execution. Current automation solutions don't have the cognitive abilities that a human does&amp;mdash;and it's arguably unlikely that they ever will. During implementation of a manual test, human reasoning can be applied to the observed system responses to stimulus. Automated test techniques and their supporting tools typically have minimal ability to notice the implications of certain system behaviors, and currently no ability to infer possible problems through deductive reasoning.&lt;/P&gt; &lt;H4 CLASS="western"&gt;Programmed Test Scripts &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=21 HEIGHT=16 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Arguably the method of choice practiced by most testers who use test automation. In it's purest form, this practice is performed in the same manner and using the same general principles as software programming. As such, most methods and tools used for software programming are generally applicable and useful to test automation programming.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Using either a standard software development environment (such as Microsoft Visual Studio or IBM Visual Age) or a specialized test automation development environment (such as the IDE provided with Rational Robot), the tester is free to harness the features and power of the development environment to best effect.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;The negative aspects of programming automated tests are related to the negative aspects of programming itself as a general technique. For programming to be effective, some consideration should be given to appropriate design: without this the implementation will likely fail. If the developed software will likely be modified by different people over time&amp;mdash;the usual situation&amp;mdash;then some consideration must be given to adopting a common style and form to be used in program development, and ensuring it's correct use. Arguably the two most important concerns relate to the misuse of this technique.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;First, there is a risk that a tester will become engrossed in the features of the programming environment, and spend too much time crafting elegant and sophisticated solutions to problems that could be achieved by simpler means. The result is that the tester wastes precious time on what are essentially programming tasks to the detriment of time that could be spent actually testing and evaluating the Target Test Items. It requires both discipline and experience to avoid this pitfall.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Secondly, there is the risk that the program code used to implement the test will itself have bugs introduced through human error or omission. Some of these bugs will be easy to debug and correct in the natural course of implementing the automated test: others won't. Just as errors can be elusive to detect in the Target Test Item, it can be equally difficult to detect errors in test automation software. Furthermore, errors may be introduced where algorithms used in the automated test implementation are based on the same faulty algorithms used by the software implementation itself. This results in errors going undetected, hidden by the false security of automated tests that apparently execute successfully. Mitigate this risk by using different algorithms in the automated tests wherever possible.&lt;/P&gt; &lt;H4 CLASS="western"&gt;Recorded or captured Test Scripts &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=21 HEIGHT=16 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;There are a number of test automation tools that provide the ability to record or capture human interaction with a software application and produce a basic Test Script. There are a number of different tool solutions for this. Most tools produce a Test Script implemented in some form of a high-level, normally editable, programming language. The most common designs work in one of the following ways:&lt;/P&gt; &lt;UL&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-top: 0.19in; margin-bottom: 0in"&gt; 	by capturing the interaction with the client UI of an application 	based on intercepting the inputs sent from the client hardware 	peripheral input devices: mouse, keyboard and so forth to the client 	operating system. In some solutions, this is done by intercepting 	high-level messages exchanged between the operating system and the 	device driver that describe the interactions in a somewhat 	meaningful way; in other solutions this is done by capturing 	low-level messages, often based at the level of time-based movements 	in mouse coordinates or key-up and key-down events.  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0.19in"&gt;by intercepting 	the messages sent and received across the network between the client 	application and one or more server applications. The successful 	interpretation of those messages relies typically on the use of 	standard, recognized messaging protocols, such as HTTP, SQL, Tuxedo 	and so forth. Some tools also allow the capture of &amp;quot;base&amp;quot; 	communications protocols such as TCP/IP, however it can be more 	complex to work with Test Scripts of this nature.  	&lt;/P&gt; &lt;/UL&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;While these techniques are generally useful to include as part of your approach to automated testing, some practitioners feel these techniques have limitations. One of the main concerns is that some tools simply capture application interaction and do nothing else. Without the additional inclusion of observation points that capture and compare system state during subsequent script execution, the basic Test Script cannot be considered to be a fully-formed test. Where this is the case, the initial recording will need to be subsequently augmented with additional custom program code to implement observation points within the Test Script.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Various authors have published books and essays on this and other concerns related to using test procedure record or capture as a test automation technique. To gain a more in-depth understanding of these issues, we recommend reviewing the work available on the Internet by the following authors: &lt;FONT COLOR="#003399"&gt;&lt;U&gt;&lt;A HREF="http://www.satisfice.com/"&gt;James Bach&lt;/A&gt;&lt;/U&gt;&lt;/FONT&gt;, &lt;FONT COLOR="#003399"&gt;&lt;U&gt;&lt;A HREF="http://www.kaner.com/articles.html"&gt;Cem Kaner&lt;/A&gt;&lt;/U&gt;&lt;/FONT&gt;, &lt;FONT COLOR="#003399"&gt;&lt;U&gt;&lt;A HREF="http://www.testing.com/articles.html"&gt;Brian Marick&lt;/A&gt;&lt;/U&gt;&lt;/FONT&gt; and &lt;FONT COLOR="#003399"&gt;&lt;U&gt;&lt;A HREF="http://www.io.com/~wazmo/papers/"&gt;Bret Pettichord&lt;/A&gt;&lt;/U&gt;&lt;/FONT&gt;, and the relevant content in the book &lt;I&gt;Lessons Learned in Software Testing&lt;/I&gt; &lt;FONT COLOR="#003399"&gt;&lt;U&gt;&lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/referenc.htm#KAN99"&gt;[KAN99]&lt;/A&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt; &lt;H4 CLASS="western"&gt;Generated Tests &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=21 HEIGHT=16 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Some of the more sophisticated test automation software enables the actual generation of various aspects of the test&amp;mdash;either the procedural aspects or the Test Data aspects of the Test Script&amp;mdash;based on generation algorithms. This type of automation can play a useful part in your test effort, but shouldn't be considered as the only approach used. Both Rational TestFactory and the Rational TestManager datapool generation feature are examples of implementations of this type of technology.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Set up test environment preconditions &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To ready the environment to the correct 			starting state.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Setup the test environment to ensure that all the needed components (hardware, software, tools, data, etc.) have been implemented and are in the test environment, ready in the correct state to enable the tests to be conducted. Typically this will involve some form of basic environment reset (e.g. Registry and other configuration files), restoration of underlying databases to known state, and so forth in addition to tasks such as loading paper into printers. While some tasks can be performed automatically, some aspects typically require human attention.&lt;/P&gt; &lt;H3 CLASS="western"&gt;(Optional) Manual walk-through of the test &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To verify all the required elements of the test 			are present and allow the test to be successfully implemented.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Especially applicable to automated Test Scripts, it can be beneficial to initially walk-through the test manually to confirm expected prerequisites are present. During the walk-through, you should verify the integrity of the environment, the software and the test design. The walk-through is most relevant where you are using an interactive recording technique, and least relevant where you are programming the Test Script.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Where the software is known to be sufficiently stable or mature, you way elect to skip this step where you deem the risk of problems occurring in the areas the manual walk-through addresses are relatively low.&lt;/P&gt; &lt;H4 CLASS="western"&gt;Identify and confirm appropriateness of Test Oracles &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;During this walk-through, confirm that the &lt;FONT COLOR="#003399"&gt;&lt;U&gt;&lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/glossary.htm#test_oracle" TARGET="_blank"&gt;&lt;I&gt;Test Oracles&lt;/I&gt;&lt;/A&gt;&lt;/U&gt;&lt;/FONT&gt; you plan to use are appropriate. Where they have not already been identified, now is the time for you to do so.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;You should try to confirm through alternative means that the chosen Test Oracle(s) will provide accurate and reliable results. For example, if you plan to validate test results using a field displayed via the application's GUI that indicates a database update has occurred, consider independently querying the back-end database to verify the state of the corresponding records in the database. Alternatively, you might ignore the results presented in an update confirmation dialog, and instead confirm the update by querying for the record through an alternative front-end function or operation.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Reset test environment and tools &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To ready the environment and the supporting 			tools to the correct starting state.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Next you should restore the environment back to it's original state. Typically this will involve some form of basic operating environment reset (e.g. Registry and other configuration files), restoration of underlying databases to a known state, and so forth in addition to tasks such as loading paper into printers. While some reset tasks can be performed automatically, some aspects typically require human attention.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Set the implementation options of the supporting tools. Depending on the sophistication of the tool, this may be many options to consider. Failing to set these options appropriately may reduce the usefulness and value of the resulting test assets. Where possible, you should try to store these tool options and settings so that they can be reloaded easily based on one or more predetermined profiles.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;In the case of automated test implementation tools, there may be many different settings to be considered. In the case of manual testing, it may be a simple matter of partitioning a new entry in a support system for logging results, signing into issue and changes request logging systems.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Implement the test &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To successfully implement a reusable Test 			Script and identify any necessary Change Requests.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Using the Test-Ideas List, one or more selected Test Cases or the Workload Analysis Model, begin to implement the test. Start by giving the test a uniquely identifiable name (if it does not already have one) and prepare the IDE, capture tool or document to begin recording the specific steps of the test. Work through the following sections as many times as are required to implement the test.&lt;/P&gt; &lt;H4 CLASS="western"&gt;Implement navigation actions &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=21 HEIGHT=16 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Program, record or generate the required navigation actions. Start by selecting your appropriate navigation method of choice. For most classes of system these days, a &amp;quot;Mouse&amp;quot; or other pointing device is the preferred and primary medium for navigation. For example, the pointing and scribing device used with a Personal Digital Assistants (PDA) is conceptually equivalent to a Mouse.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;The secondary navigation means is generally that of keyboard interaction. In most cases, navigation will be made up of a combination of mouse-driven and keyboard-driven actions.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;In some cases, you will need to consider voice-activated, light, visual and other forms of recognition. These can be more troublesome to automate tests against, and may require the addition of special test extensions to the application to allow audio and visual elements to be loaded and processed from file rather than captured dynamically.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;In some situations, you may want to&amp;mdash;or need to&amp;mdash;perform the same test using multiple navigation methods. There are different approaches you can take to achieve this, for example: automate all the tests using one method and manually perform all or some subset of the tests using others; separate the navigation aspects of the tests from the Test Data that characterize the specific test, providing and building a logical navigation interface that allows either method to be selected to drive the test; simply mix and match navigation methods.&lt;/P&gt; &lt;H4 CLASS="western"&gt;Implement observation points &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=21 HEIGHT=16 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;At each point in the Test Script where an observation should be taken, use the appropriate Test Oracle to capture the desired information. In many cases, the information gained from the observation point will need to be recorded and retained to be referenced during subsequent control points.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Where this is an automated test, decide how the observed information should be reported from the Test Script. In most cases it usually appropriate simply to record the observation in a central Test Log relative to it's delta-time from the start of the Test Script; in other cases specific observations might be output separately to a spreadsheet or data file for more sophisticated uses.&lt;/P&gt; &lt;H4 CLASS="western"&gt;Implement control points &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=21 HEIGHT=16 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;At each point in the Test Script where a control decision should be taken, obtain and assess the appropriate information to determine the correct branch for the flow of control to follow. The data retrieved form prior observation points are usually input to control points.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Where a control point occurs, and a decision made about the next action in the flow-of-control, we recommend you record the input values to the control point, and the resulting flow that is selected in the Test Log.&lt;/P&gt; &lt;H4 CLASS="western"&gt;Resolve implementation errors &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=21 HEIGHT=16 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H4&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;During test implementation, you'll encounter errors, omissions and other issues that need to be resolved before the test can be implemented completely. Identify each error you encounter and work through addressing them.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;In the case of test automation, this might include completion errors due to undeclared variables and functions, or invalid use of those functions. Work your way through the error listings from the compiler and other sources until the Test Script is free of syntactical and other obvious errors.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Establish external data sets &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To create and maintain data, stored externally 			to the test scripts, that are used by the test scripts during test 			execution.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;In many cases it's more appropriate to maintain your Test Data external to the Test Script. This provides flexibility, simplicity and security in Test Script and Test Data maintenance. External data sets provide value to test in the following ways:&lt;/P&gt; &lt;UL&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-top: 0.19in; margin-bottom: 0in"&gt; 	Test Data is external to the Test Script eliminating hard-coded 	references in the Test Script  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;external Test Data 	can be modified easily, usually with minimal Test Script impact  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;additional Test 	Cases can easily be supported by the Test Data with little or no 	Test Script modifications  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;external Test Data 	can be shared with many Test Scripts  	&lt;/P&gt; 	&lt;LI&gt;&lt;P CLASS="western" STYLE="margin-bottom: 0.19in"&gt;Test Scripts 	can be developed to use external Test Data to control the 	conditional branching logic within the Test Script.  	&lt;/P&gt; &lt;/UL&gt; &lt;H3 CLASS="western"&gt;Recover test environment to known state &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To ensure the environment is properly cleaned 			up after Test Script development.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt;Again, you should restore the environment back to it's original state. Typically this will involve some form of basic environment reset (e.g. Registry and other configuration files), restoration of underlying databases to known state, and so forth in addition to tasks such as loading paper into printers. While some tasks can be performed automatically, some aspects typically require human attention.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Setup tools and initiate test execution &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To verify the correct workings of the Test 			Script by executing the Test Script.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;When you have completed the basic implementation of the Test Script, it should be tested to ensure it implements the individual tests appropriately and that they execute properly.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;It's a good idea to perform this step using the same Build version of the software used to implement the Test Scripts. This eliminates the possibility of problems due to introduced errors in subsequent builds.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Resolve execution errors &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To stabilize the workings of the test when 			executed.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;It's pretty common that things done and approaches used during implementation will need some degree of &amp;quot;tweaking&amp;quot; to adjust the test to run in one or more Test Environment Configurations.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Be prepared to spend some time checking and the tests &amp;quot;function within tolerances&amp;quot; and adjusting them until they do before you declare the test as implemented. While you can delay step until later, we recommend that you don't: otherwise you could end up with a significant backlog of failures to subsequently be addressed.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Restore test environment to known state &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To leave the environment either the way you 			found it, or in the required state to implement the next test.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;While this step might seem trivial, but it's an important good habit to form to work effectively with the other testers on the team&amp;mdash;especially where the implementation environment is shared. It's also important to establish a routine that makes thinking of the system state second nature.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;While in a primarily manual testing effort, it's often simple to identify and fix environment restore problems, remember that test automation has much less ability to tolerate unanticipated problems with environment state.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Maintain traceability relationships &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To enable impact analysis and assessment 			reporting to be performed on the traced items.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Using the Traceability requirements outlined in the Test Plan, update the traceability relationships as required.&lt;/P&gt; &lt;H3 CLASS="western"&gt;Evaluate and verify your results &lt;FONT COLOR="#003399"&gt; &lt;A HREF="/C:/Program%20Files/Rational/RationalUnifiedProcess/process/activity/#Top"&gt;&lt;IMG SRC="http://docs.google.com/File?id=dgtthv5g_75grr6rmcq_b" NAME="top" ALIGN=BOTTOM WIDTH=27 HEIGHT=21 BORDER=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/H3&gt; &lt;TABLE WIDTH=566 BORDER=1 CELLPADDING=4 CELLSPACING=3&gt; 	&lt;COL WIDTH=59&gt; 	&lt;COL WIDTH=480&gt; 	&lt;TR VALIGN=TOP&gt; 		&lt;TD WIDTH=59&gt; 			&lt;P CLASS="western"&gt;&lt;FONT FACE="Arial, sans-serif"&gt;&lt;FONT SIZE=2&gt;&lt;B&gt;Purpose:&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; 		&lt;/TD&gt; 		&lt;TD WIDTH=480&gt; 			&lt;P CLASS="western"&gt;To verify that the activity has been completed 			appropriately and that the resulting artifacts are acceptable.&lt;/P&gt; 		&lt;/TD&gt; 	&lt;/TR&gt; &lt;/TABLE&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Now that you have completed the work, it is beneficial to verify that the work was of sufficient value, and that you did not simply consume vast quantities of paper. You should evaluate whether your work is of appropriate quality, and that it is complete enough to be useful to those team members who will make subsequent use of it as input to their work. Where possible, use the checklists provided in RUP to verify that quality and completeness are &amp;quot;good enough&amp;quot;.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Have the people performing the downstream activities that rely on your work as input take part in reviewing your interim work. Do this while you still have time available to take action to address their concerns. You should also evaluate your work against the key input artifacts to make sure you have represented them accurately and sufficiently. It may be useful to have the author of the input artifact review your work on this basis.&lt;/P&gt; &lt;P STYLE="margin-top: 0.19in; margin-bottom: 0.19in"&gt;Try to remember that that RUP is an iterative process and that in many cases artifacts evolve over time. As such, it is not usually necessary&amp;mdash;and is often counterproductive&amp;mdash;to fully-form an artifact that will only be partially used or will not be used at all in immediately subsequent work. This is because there is a high probability that the situation surrounding the artifact will change&amp;mdash;and the assumptions made when the artifact was created proven incorrect&amp;mdash;before the artifact is used, resulting in wasted effort and costly rework. Also avoid the trap of spending too many cycles on presentation to the detriment of content value. In project environments where presentation has importance and economic value as a project deliverable, you might want to consider using an administrative resource to perform presentation tasks.&lt;/P&gt; &lt;P CLASS="western" STYLE="margin-bottom: 0in"&gt;&lt;BR&gt; &lt;/P&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8438568837369228733-9134153284463303209?l=vaibhavst.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vaibhavst.blogspot.com/feeds/9134153284463303209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8438568837369228733&amp;postID=9134153284463303209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/9134153284463303209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/9134153284463303209'/><link rel='alternate' type='text/html' href='http://vaibhavst.blogspot.com/2008/05/concepts-test-strategy-strategy-for.html' title=''/><author><name>Vaibhav Tavarageri</name><uri>http://www.blogger.com/profile/17348246290428180608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_lBfqxZz35ZM/TCY--jTds5I/AAAAAAAAGao/7vxL7ba-NDk/S220/DSC05934.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8438568837369228733.post-4478013334840540535</id><published>2008-01-07T01:53:00.000-08:00</published><updated>2008-01-07T02:11:50.741-08:00</updated><title type='text'>File System Filter Driver Test Strategy</title><content type='html'>&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;meta http-equiv=Content-Type content="text/html; charset=windows-1252"&gt;&lt;br /&gt;&lt;meta name=ProgId content=Word.Document&gt;&lt;br /&gt;&lt;meta name=Generator content="Microsoft Word 11"&gt;&lt;br /&gt;&lt;meta name=Originator content="Microsoft Word 11"&gt;&lt;br /&gt;&lt;br /&gt;&lt;body lang=EN-US link=maroon vlink=purple style='tab-interval:.5in'&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=Section1&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;The purpose of this Post is to define the software&lt;br /&gt;testing scope and purpose for the File System Filter driver. This document will&lt;br /&gt;not include any test steps rather it will focus on the strategy and objectives&lt;br /&gt;of testing tasks. &lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;b style='mso-bidi-font-weight:normal'&gt;Filter Driver&lt;br /&gt;Functional Requirements:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul style='margin-top:0in' type=disc&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l7 level1 lfo1;tab-stops:list .5in'&gt;To&lt;br /&gt;     provide file mangling/unmangling to untrusted files.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;b style='mso-bidi-font-weight:normal'&gt;Filter Driver&lt;br /&gt;Behavioral Pre-Conditions: &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul style='margin-top:0in' type=disc&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l2 level1 lfo5;tab-stops:list .5in'&gt;A file&lt;br /&gt;     is indicated as untrusted by having a GreenFrame around the file icon.&lt;/li&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l2 level1 lfo5;tab-stops:list .5in'&gt;Applications&lt;br /&gt;     launched in the untrusted environment will have a GreenFrame around the&lt;br /&gt;     application window. &lt;/li&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l2 level1 lfo5;tab-stops:list .5in'&gt;Accessing&lt;br /&gt;     a trusted document from an untrusted “file open” window will open a&lt;br /&gt;     Read-Only copy of the file inside the untrusted environment.&lt;/li&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l2 level1 lfo5;tab-stops:list .5in'&gt;Trusted&lt;br /&gt;     files will not be able to open &lt;span class=GramE&gt;Untrusted&lt;/span&gt; files.&lt;br /&gt;     They will receive access denied. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;b style='mso-bidi-font-weight:normal'&gt;Client&lt;br /&gt;Configurations/Environment:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul style='margin-top:0in' type=disc&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l0 level1 lfo7;tab-stops:list .5in'&gt;Microsoft&lt;br /&gt;     Windows Versions&lt;/li&gt;&lt;br /&gt; &lt;ul style='margin-top:0in' type=circle&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo7;tab-stops:list 1.0in'&gt;WXP,&lt;br /&gt;      WXP SP1&lt;/li&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo7;tab-stops:list 1.0in'&gt;W2K&lt;br /&gt;      SP3, W2K SP4&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l0 level1 lfo7;tab-stops:list .5in'&gt;Microsoft&lt;br /&gt;     Office Suite&lt;/li&gt;&lt;br /&gt; &lt;ul style='margin-top:0in' type=circle&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo7;tab-stops:list 1.0in'&gt;Office&lt;br /&gt;      XP&lt;/li&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo7;tab-stops:list 1.0in'&gt;Office&lt;br /&gt;      2K&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l0 level1 lfo7;tab-stops:list .5in'&gt;3&lt;sup&gt;rd&lt;/sup&gt;&lt;br /&gt;     party applications&lt;/li&gt;&lt;br /&gt; &lt;ul style='margin-top:0in' type=circle&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo7;tab-stops:list 1.0in'&gt;Winzip&lt;br /&gt;      9.0&lt;/li&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo7;tab-stops:list 1.0in'&gt;Adobe&lt;br /&gt;      Acrobat, Acrobat Reader 6.0&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;b style='mso-bidi-font-weight:normal'&gt;Test Strategy: &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style='margin-top:0in' type=disc&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l9 level1 lfo8;tab-stops:list .5in'&gt;Verify&lt;br /&gt;     opening an untrusted file launches the application in the untrusted&lt;br /&gt;     environment.&lt;/li&gt;&lt;br /&gt; &lt;ul style='margin-top:0in' type=circle&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Application&lt;br /&gt;      window will have a GreenFrame around it indicating the file application&lt;br /&gt;      is running in the untrusted environment.&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;b style='mso-bidi-font-weight:normal'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul style='margin-top:0in' type=disc&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l9 level1 lfo8;tab-stops:list .5in'&gt;Verify&lt;br /&gt;     the user is able to perform the following functions on both local and&lt;br /&gt;     network drives:&lt;/li&gt;&lt;br /&gt; &lt;ul style='margin-top:0in' type=circle&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;&lt;span&lt;br /&gt;      style='mso-spacerun:yes'&gt; &lt;/span&gt;Edit and save an untrusted file&lt;/li&gt;&lt;br /&gt;  &lt;ul style='margin-top:0in' type=square&gt;&lt;br /&gt;   &lt;li class=MsoNormal style='mso-list:l9 level3 lfo8;tab-stops:list 1.5in'&gt;File&lt;br /&gt;       will remain as untrusted after making changes to the file.&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Cut&lt;br /&gt;      and Paste untrusted files from one location to another&lt;/li&gt;&lt;br /&gt;  &lt;ul style='margin-top:0in' type=square&gt;&lt;br /&gt;   &lt;li class=MsoNormal style='mso-list:l9 level3 lfo8;tab-stops:list 1.5in'&gt;File&lt;br /&gt;       will remain as untrusted in it’s new location&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Copy&lt;br /&gt;      and Paste untrusted file from one location to another.&lt;/li&gt;&lt;br /&gt;  &lt;ul style='margin-top:0in' type=square&gt;&lt;br /&gt;   &lt;li class=MsoNormal style='mso-list:l9 level3 lfo8;tab-stops:list 1.5in'&gt;File&lt;br /&gt;       will remain as untrusted in both locations.&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Drag&lt;br /&gt;      &amp;amp; Drop untrusted files from one location to another.&lt;/li&gt;&lt;br /&gt;  &lt;ul style='margin-top:0in' type=square&gt;&lt;br /&gt;   &lt;li class=MsoNormal style='mso-list:l9 level3 lfo8;tab-stops:list 1.5in'&gt;File&lt;br /&gt;       will remain as untrusted in its new location.&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Rename&lt;br /&gt;      an untrusted file.&lt;/li&gt;&lt;br /&gt;  &lt;ul style='margin-top:0in' type=square&gt;&lt;br /&gt;   &lt;li class=MsoNormal style='mso-list:l9 level3 lfo8;tab-stops:list 1.5in'&gt;File&lt;br /&gt;       will remain as untrusted after renaming the file.&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Delete&lt;br /&gt;      an untrusted file.&lt;/li&gt;&lt;br /&gt;  &lt;ul style='margin-top:0in' type=square&gt;&lt;br /&gt;   &lt;li class=MsoNormal style='mso-list:l9 level3 lfo8;tab-stops:list 1.5in'&gt;Untrusted&lt;br /&gt;       file will be placed inside the Recycling bin.&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul style='margin-top:0in' type=disc&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l9 level1 lfo8;tab-stops:list .5in'&gt;Verify&lt;br /&gt;     Guarded files no longer exists&lt;/li&gt;&lt;br /&gt; &lt;ul style='margin-top:0in' type=circle&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Files&lt;br /&gt;      &lt;span class=GramE&gt;with !!gb&lt;/span&gt; in the name should never appear as&lt;br /&gt;      untrusted files.&lt;/li&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Selecting&lt;br /&gt;      “Remove Access Restriction” from the context menu immediately makes a&lt;br /&gt;      file trusted.&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul style='margin-top:0in' type=disc&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l9 level1 lfo8;tab-stops:list .5in'&gt;Verify&lt;br /&gt;     after removing GreenBorder Protection from an untrusted file, all access&lt;br /&gt;     to this file is handled in the trusted environment.&lt;/li&gt;&lt;br /&gt; &lt;ul style='margin-top:0in' type=circle&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;File&lt;br /&gt;      icon no longer has GB frame around it.&lt;/li&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;“Remove&lt;br /&gt;      Access Restriction” verb from context menu is grayed out.&lt;/li&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;Content&lt;br /&gt;      can be accessed by non-gb clients&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style='margin-top:0in' type=disc&gt;&lt;br /&gt; &lt;li class=MsoNormal style='mso-list:l9 level1 lfo8;tab-stops:list .5in'&gt;Verify&lt;br /&gt;     an untrusted file cannot be viewed correctly with GB disabled.&lt;/li&gt;&lt;br /&gt; &lt;ul style='margin-top:0in' type=circle&gt;&lt;br /&gt;  &lt;li class=MsoNormal style='mso-list:l9 level2 lfo8;tab-stops:list 1.0in'&gt;User&lt;br /&gt;      will see mangled content when GB is disabled.&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;br /&gt;&lt;/html&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8438568837369228733-4478013334840540535?l=vaibhavst.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vaibhavst.blogspot.com/feeds/4478013334840540535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8438568837369228733&amp;postID=4478013334840540535' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/4478013334840540535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/4478013334840540535'/><link rel='alternate' type='text/html' href='http://vaibhavst.blogspot.com/2008/01/file-system-filter-driver-test-strategy.html' title='File System Filter Driver Test Strategy'/><author><name>Vaibhav Tavarageri</name><uri>http://www.blogger.com/profile/17348246290428180608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_lBfqxZz35ZM/TCY--jTds5I/AAAAAAAAGao/7vxL7ba-NDk/S220/DSC05934.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8438568837369228733.post-5233158575826025100</id><published>2007-08-08T00:24:00.000-07:00</published><updated>2007-08-08T00:28:16.126-07:00</updated><title type='text'>Programming Tutorials and Info Resources</title><content type='html'>This is a veritable link farm of learning material for folks wanting to beef up on their programming skills.  &lt;br /&gt;&lt;br /&gt;Be sure to work your way through the entire list to make sure you find all the materials related to the programming language that you are interested in.&lt;br /&gt;&lt;br /&gt;Here is the link&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infosyssec.net/infosyssec/prog1.htm"&gt;http://www.infosyssec.net/infosyssec/prog1.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8438568837369228733-5233158575826025100?l=vaibhavst.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vaibhavst.blogspot.com/feeds/5233158575826025100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8438568837369228733&amp;postID=5233158575826025100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/5233158575826025100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/5233158575826025100'/><link rel='alternate' type='text/html' href='http://vaibhavst.blogspot.com/2007/08/programming-tutorials-and-info.html' title='Programming Tutorials and Info Resources'/><author><name>Vaibhav Tavarageri</name><uri>http://www.blogger.com/profile/17348246290428180608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_lBfqxZz35ZM/TCY--jTds5I/AAAAAAAAGao/7vxL7ba-NDk/S220/DSC05934.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8438568837369228733.post-8257047734285301847</id><published>2007-07-18T04:06:00.000-07:00</published><updated>2007-07-18T04:24:19.481-07:00</updated><title type='text'>Whats your Automation Framework?</title><content type='html'>&lt;p&gt;I have seen an umpteen no of posts in every QTP group I visited asking about Test Automation frameworks. Here I would like to collate the useful inputs i received from various QTP groups and discussion forums.&lt;/p&gt;&lt;p&gt;The Keyword Driven framework consists of the basic components given below,&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Control File&lt;/li&gt;&lt;li&gt;Test Case File&lt;/li&gt;&lt;li&gt;Startup Script&lt;/li&gt;&lt;li&gt;Driver Script&lt;/li&gt;&lt;li&gt;Utility Script&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;1. Control File :&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Consists details of all the Test scenarios to be automated.&lt;/li&gt;&lt;li&gt;User will be able to select a specific scenario to execute based on turning on or off a flag in the Control File.&lt;/li&gt;&lt;li&gt;Control File is in the form of an excel worksheet and contains columns for Scenario ID,Execute (Y/N),Object Repository Path, Test Case File Path.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;2. Test Case File :&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Contains the detailed steps to be carried out for the execution of a test cases.&lt;/li&gt;&lt;li&gt;It is also in the form of an excel sheet and contains columns for Keyword, Object Name, Parameter.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;3. Startup Script :&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The Starup script is utilised for the initialization and reads the control files.&lt;/li&gt;&lt;li&gt;It then calls the driver script to execute all the scenarios marked for execution in the control file.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;4. Driver Script :&lt;/p&gt;&lt;ul&gt;&lt;li&gt;It Reads the Test Case files. Checks the keywords and calls the appropriate utility script functions based on specific keyword.&lt;/li&gt;&lt;li&gt;Error Handling is taken care of in the driver script.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;5. Utility Scripts :&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Perform generic tasks that can be used across applications. It should not be application dependent Advantage of Framework.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The main advantage of this framework is the low cost for maintenace. If there is change to any test case then only the Test Case File needs to be updated and the Driver Script and Startup script will remain the same. &lt;/p&gt;&lt;p&gt;No need to update the scripts in case of changes to the application. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8438568837369228733-8257047734285301847?l=vaibhavst.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vaibhavst.blogspot.com/feeds/8257047734285301847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8438568837369228733&amp;postID=8257047734285301847' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/8257047734285301847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/8257047734285301847'/><link rel='alternate' type='text/html' href='http://vaibhavst.blogspot.com/2007/07/whats-your-automation-framework.html' title='Whats your Automation Framework?'/><author><name>Vaibhav Tavarageri</name><uri>http://www.blogger.com/profile/17348246290428180608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_lBfqxZz35ZM/TCY--jTds5I/AAAAAAAAGao/7vxL7ba-NDk/S220/DSC05934.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8438568837369228733.post-4184919011880912717</id><published>2007-07-18T03:52:00.000-07:00</published><updated>2007-07-18T03:54:51.663-07:00</updated><title type='text'>QTP Framework</title><content type='html'>The framework requires the creation of Repository files, Recovery Files, Library Files (Reusable Functions or user defined functions), XLS files&lt;br /&gt;&lt;br /&gt;1. Repository files are created Test manager or test lead or senior S/W engineer.&lt;br /&gt;So we have to add or load or executes these repository files using within a script or using QTP tool.&lt;br /&gt;&lt;br /&gt;2. After loading the repository file, then the library files are loaded dynamically into the scripts.&lt;br /&gt;This library file contains functions &amp; sub procedures &amp;amp; verification checks, reports.&lt;br /&gt;Then these files are loaded dynamically into the test in two ways:&lt;br /&gt;[a] before creation of library files we creates a functions(just record the functionality of the app and mention the function name at first and copy the script and paste into notepad and save as .vbs extension and save this a folder which we want to create at first and give the folder name as Re_Usable_Functions) .&lt;br /&gt;Then if u want to make this file as reusable then go to Test tab and select Test settings-select Resource tab &amp;click + button &amp;amp; browse the location of the VBScript® file which u stored in Re_Usable_Functions folder. Then this function is reusable you can use this file with that function name like: function ().&lt;br /&gt;[b] loading library file at runtime u can use the statement-Execute File ("full path of the file which u stored in a folder").&lt;br /&gt;&lt;br /&gt;3. XLS files-the functionality (data within a fields) of the app under test(AUT) is documented in a Data Table.&lt;br /&gt;This Data Table contains test data for a particular screen fields and this data tables are loaded onto scripts manually.&lt;br /&gt;Advantage:-so whenever the app data is changed, we don’t want to change the script just we have to change the data within the data table.&lt;br /&gt;I am sending a script which contains how we develop datatable within a script.&lt;br /&gt;&lt;br /&gt;4. Recovery Files-Recovery files are created using "Recovery Scenario Manager".&lt;br /&gt;These files r used for an unexpected event or error occur within a run session and the recovery operation is necessary.&lt;br /&gt;At first we understand the app functionality and we want to guess that what types of errors are occur during the script execution.&lt;br /&gt;ex:-some times if there is misspelled data is entered within a field then a pop-up window will open and says "enter appropriate data ",so we want to create file for this using "Recovery Scenario Manager", in this 1]trigger event 2] Recovery Operation and 3] post recovery test run.&lt;br /&gt;After this we enter with "scenario name” and save this in "Recovery_files" folder which we want to create at earlier stage like re_uasable_func folder.&lt;br /&gt;Then select Test tab-Test Settings-Recovery tab and add recovery file which is saved in "Recovery_files" folder with scenario name.&lt;br /&gt;Next execute this file whenever u want within a script using few functions like:&lt;br /&gt;-declare a variable (ex-rep)&lt;br /&gt;Variable = Recovery.GetScenarioPosition (Scenario File, Scenario Name)&lt;br /&gt;                     Recovery.Set Scenario Status (variable, Status)&lt;br /&gt;                  Status=True or False&lt;br /&gt;            Recovery.Activate&lt;br /&gt;Then this file is executed whenever this particular error occurs.&lt;br /&gt;and also use OnErrorResumeNext function also used. just got to built-in functions.&lt;br /&gt;&lt;br /&gt;This is the one type of frame work. We called it as Master FrameWork or Action FrameWork. So if u needs any information regarding QTP framework and about QTP automation u just mail me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8438568837369228733-4184919011880912717?l=vaibhavst.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vaibhavst.blogspot.com/feeds/4184919011880912717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8438568837369228733&amp;postID=4184919011880912717' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/4184919011880912717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/4184919011880912717'/><link rel='alternate' type='text/html' href='http://vaibhavst.blogspot.com/2007/07/qtp-framework.html' title='QTP Framework'/><author><name>Vaibhav Tavarageri</name><uri>http://www.blogger.com/profile/17348246290428180608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_lBfqxZz35ZM/TCY--jTds5I/AAAAAAAAGao/7vxL7ba-NDk/S220/DSC05934.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8438568837369228733.post-5201382868502434952</id><published>2007-07-18T03:21:00.000-07:00</published><updated>2007-07-18T03:23:36.739-07:00</updated><title type='text'>Test Post</title><content type='html'>Test&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8438568837369228733-5201382868502434952?l=vaibhavst.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vaibhavst.blogspot.com/feeds/5201382868502434952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8438568837369228733&amp;postID=5201382868502434952' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/5201382868502434952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8438568837369228733/posts/default/5201382868502434952'/><link rel='alternate' type='text/html' href='http://vaibhavst.blogspot.com/2007/07/test-post.html' title='Test Post'/><author><name>Vaibhav Tavarageri</name><uri>http://www.blogger.com/profile/17348246290428180608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_lBfqxZz35ZM/TCY--jTds5I/AAAAAAAAGao/7vxL7ba-NDk/S220/DSC05934.JPG'/></author><thr:total>1</thr:total></entry></feed>
