<?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-5943521279213239819</id><updated>2011-11-28T05:53:47.606+05:30</updated><title type='text'>Software Testing and Automation</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-2539055560043288032</id><published>2008-09-01T13:27:00.001+05:30</published><updated>2008-09-01T13:27:36.086+05:30</updated><title type='text'>How can World Wide Web sites be tested?</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Web sites are essentially client/server applications - with web servers and 'browser' clients. Consideration should be given to the interactions between html pages, web services, encrypted communications, Internet connections, firewalls, applications that run in web pages (such as java script, flash, other plug-in applications), applications that run on the server side (database interfaces, logging applications, dynamic page generators, asp, etc.). Additionally, there are a wide variety of servers and browsers, various versions of each, small but sometimes significant differences between them, variations in connection speeds, rapidly changing technologies, and multiple standards and protocols. The end result is that testing for web sites can become a major ongoing effort. Other considerations might include: &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;What are the expected loads on the server (e.g., number of hits per unit time?), and what kind of performance is required under such loads (such as web server response time, database query response times). What kinds of tools will be needed for performance testing (such as web load testing tools, other tools already in house that can be adapted, load generation appliances, etc.)? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Who is the target audience? What kind of browsers will they be using? What kind of connection speeds wills them by using? Are they intra- organization (thus with likely high connection speeds and similar browsers) or Internet-wide (thus with a wide variety of connection speeds and browser types)? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;What kind of performance is expected on the client side (e.g., how fast should pages appear, how fast should flash, applets, etc. load and run)? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Will down time for server and content maintenance/upgrades be allowed? how much? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;What kinds of security (firewalls, encryption, passwords, functionality, etc.) will be required and what is it expected to do? How can it be tested? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;How reliable are the site's Internet connections required to be? And how does that affect backup system or redundant connection requirements and testing? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;What processes will be required to manage updates to the web site's content, and what are the requirements for maintaining, tracking, and controlling page content, graphics, links, etc.? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which HTML specification will be adhered to? How strictly? What variations will be allowed for targeted browsers? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Will there be any standards or requirements for page appearance and/or graphics throughout a site or parts of a site?? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;How will internal and external links be validated and updated? How often? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Can testing be done on the production system, or will a separate test system be required? How are browser caching, variations in browser option settings, connection variabilities, and real-world internet 'traffic congestion' problems to be accounted for in testing? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;How extensive or customized are the server logging and reporting requirements; are they considered an integral part of the system and do they require testing? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;How are flash, applets, java scripts, ActiveX components, etc. to be maintained, tracked, controlled, and tested? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-2539055560043288032?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/2539055560043288032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=2539055560043288032' title='39 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2539055560043288032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2539055560043288032'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/09/how-can-world-wide-web-sites-be-tested.html' title='How can World Wide Web sites be tested?'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-8752616786299142449</id><published>2008-09-01T13:25:00.001+05:30</published><updated>2008-09-01T13:25:54.168+05:30</updated><title type='text'>FAQ</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;&lt;strong&gt;What if the software is so buggy it can not really be tested at all?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;The best bet in this situation is for the testers to go through the process of reporting whatever bugs or blocking-type problems initially show up, with the focus being on critical bugs. Since this type of problem can severely affect schedules, and indicates deeper problems in the software development process (such as insufficient unit testing or insufficient integration testing, poor design, improper build or release procedures, etc.) managers should be notified, and provided with some documentation as evidence of the problem.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;&lt;strong&gt;How can it be known when to stop testing?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;This can be difficult to determine. Most modern software applications are so complex, and run in such an interdependent environment, that complete testing can never be done. Common factors in deciding when to stop are: &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Deadlines (release deadlines, testing deadlines, etc.) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test cases completed with certain percentage passed &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test budget depleted &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Coverage of code/functionality/requirements reaches a specified point &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Bug rate falls below a certain level &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Beta or alpha testing period ends &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;&lt;strong&gt;&lt;a name='FAQ2_12'/&gt;What if there isn't enough time for thorough testing?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;span style='font-size:13pt'&gt;Use risk analysis, along with discussion with project stakeholders, to determine where testing should be focused.&lt;br/&gt;Since it's rarely possible to test every possible aspect of an application, every possible combination of events, every dependency, or everything that could go wrong, risk analysis is appropriate to most software development projects. This requires judgement skills, common sense, and experience. (If warranted, formal methods are also available.) Considerations can include: &lt;/span&gt;&lt;span style='font-size:12pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which functionality is most important to the project's intended purpose? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which functionality is most visible to the user? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which functionality has the largest safety impact? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which functionality has the largest financial impact on users? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which aspects of the application are most important to the customer? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which aspects of the application can be tested early in the development cycle? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which parts of the code are most complex, and thus most subject to errors? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which parts of the application were developed in rush or panic mode? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which aspects of similar/related previous projects caused problems? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which aspects of similar/related previous projects had large maintenance expenses? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which parts of the requirements and design are unclear or poorly thought out? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;What do the developers think are the highest-risk aspects of the application? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;What kinds of problems would cause the worst publicity? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;What kinds of problems would cause the most customer service complaints? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;What kinds of tests could easily cover multiple functionalities? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Which tests will have the best high-risk-coverage to time-required ratio? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-8752616786299142449?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/8752616786299142449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=8752616786299142449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8752616786299142449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8752616786299142449'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/09/faq.html' title='FAQ'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-1234947248699063801</id><published>2008-09-01T13:19:00.001+05:30</published><updated>2008-09-01T13:19:52.234+05:30</updated><title type='text'>What should be done after a bug is found?</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;The bug needs to be communicated and assigned to developers that can fix it. After the problem is resolved, fixes should be re-tested, and determinations made regarding requirements for regression testing to check that fixes didn't create problems elsewhere. If a problem-tracking system is in place, it should encapsulate these processes. A variety of commercial problem-tracking/management software tools are available. The following are items to consider in the tracking process: &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Complete information such that developers can understand the bug, get an idea of its severity, and reproduce it if necessary. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Bug identifier (number, ID, etc.) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Current bug status (e.g., 'Released for Retest', 'New', etc.) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;The application name or identifier and version &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;The function, module, feature, object, screen, etc. where the bug occurred &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Environment specifics, system, platform, relevant hardware specifics &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test case name/number/identifier &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;One-line bug description &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Full bug description &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Description of steps needed to reproduce the bug if not covered by a test case or if the developer doesn't have easy access to the test case/test script/test tool &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Names and/or descriptions of file/data/messages/etc. used in test &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;File excerpts/error messages/log file excerpts/screen shots/test tool logs that would be helpful in finding the cause of the problem &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Severity estimate (a 5-level range such as 1-5 or 'critical'-to-'low' is common) &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Was the bug reproducible? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Tester name &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test date &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Bug reporting date &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Name of developer/group/organization the problem is assigned to &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Description of problem cause &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Description of fix &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Code section/file/module/class/method that was fixed &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Date of fix &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Application version that contains the fix &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Tester responsible for retest &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Retest date &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Retest results &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Regression testing requirements &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Tester responsible for regression tests &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Regression testing results &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;A reporting or tracking process should enable notification of appropriate personnel at various stages. For instance, testers need to know when retesting is needed, developers need to know when bugs are found and how to get the needed information, and reporting/summary capabilities are needed for managers&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-1234947248699063801?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/1234947248699063801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=1234947248699063801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1234947248699063801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1234947248699063801'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/09/what-should-be-done-after-bug-is-found.html' title='What should be done after a bug is found?'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-1463737079376273283</id><published>2008-09-01T12:56:00.001+05:30</published><updated>2008-09-01T12:56:41.700+05:30</updated><title type='text'>What is a Test Plan and Test Case?</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;&lt;strong&gt;What's a 'test plan'?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;A software project test plan is a document that describes the objectives, scope, approach, and focus of a software testing effort. The process of preparing a test plan is a useful way to think through the efforts needed to validate the acceptability of a software product. The completed document will help people outside the test group understand the 'why' and 'how' of product validation. It should be thorough enough to be useful but not so thorough that no one outside the test group will read it. The following are some of the items that might be included in a test plan, depending on the particular project: &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Title &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Identification of software including version/release numbers &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Revision history of document including authors, dates, approvals &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Table of Contents &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Purpose of document, intended audience &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Objective of testing effort &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Software product overview &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Relevant related document list, such as requirements, design documents, other test plans, etc. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Relevant standards or legal requirements &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Traceability requirements &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Relevant naming conventions and identifier conventions &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Overall software project organization and personnel/contact-info/responsibilities &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test organization and personnel/contact-info/responsibilities &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Assumptions and dependencies &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Project risk analysis &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Testing priorities and focus &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Scope and limitations of testing &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test outline - a decomposition of the test approach by test type, feature, functionality, process, system, module, etc. as applicable &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Outline of data input equivalence classes, boundary value analysis, error classes &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test environment - hardware, operating systems, other required software, data configurations, interfaces to other systems &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test environment validity analysis - differences between the test and production systems and their impact on test validity. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test environment setup and configuration issues &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Software migration processes &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Software CM processes &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test data setup requirements &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Database setup requirements &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Outline of system-logging/error-logging/other capabilities, and tools such as screen capture software, that will be used to help describe and report bugs &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Discussion of any specialized software or hardware tools that will be used by testers to help track the cause or source of bugs &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test automation - justification and overview &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test tools to be used, including versions, patches, etc. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test script/test code maintenance processes and version control &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Problem tracking and resolution - tools and processes &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Project test metrics to be used &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Reporting requirements and testing deliverables &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Software entrance and exit criteria &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Initial sanity testing period and criteria &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test suspension and restart criteria &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Personnel allocation &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Personnel pre-training needs &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Test site/location &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Outside test organizations to be utilized and their purpose, responsibilties, deliverables, contact persons, and coordination issues &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Relevant proprietary, classified, security, and licensing issues. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Open issues &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Appendix - glossary, acronyms, etc. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;&lt;strong&gt;What's a 'Test Case'?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;A test case describes an input, action, or event and an expected response, to determine if a feature of a software application is working correctly. A test case may contain particulars such as test case identifier, test case name, objective, test conditions/setup, input data requirements, steps, and expected results. The level of detail may vary significantly depending on the organization and project context. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:13pt'&gt;Note that the process of developing test cases can help find problems in the requirements or design of an application, since it requires completely thinking through the operation of the application. For this reason, it's useful to prepare test cases early in the development cycle if possible.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-1463737079376273283?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/1463737079376273283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=1463737079376273283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1463737079376273283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1463737079376273283'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/09/what-is-test-plan-and-test-case.html' title='What is a Test Plan and Test Case?'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-5977722919068047412</id><published>2008-08-30T10:46:00.002+05:30</published><updated>2008-08-30T10:50:20.244+05:30</updated><title type='text'>Load / Stress Testing of Websites</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CVENKAT%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CVENKAT%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CVENKAT%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p 	{mso-style-noshow:yes; 	mso-style-priority:99; 	mso-margin-top-alt:auto; 	margin-right:0in; 	mso-margin-bottom-alt:auto; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:40986266; 	mso-list-type:hybrid; 	mso-list-template-ids:1834021980 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Calibri","sans-serif";} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;strong&gt;&lt;span style="font-size: 16pt;"&gt;&lt;span style=""&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;!--[endif]--&gt;&lt;strong&gt;&lt;span style="font-size: 16pt;"&gt;The Importance of Scalability &amp;amp; Load Testing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;span style="font-size: 16pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;Some very high profile websites have suffered from serious outages and/or performance issues due to the number of people hitting their website. E-commerce sites that spent heavily on advertising but not nearly enough on ensuring the quality or reliability of their service have ended up with poor web-site performance, system downtime and/or serious errors, with the predictable result that customers are being lost.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;In the case of toysrus.com, its web site couldn't handle the approximately 1000 percent increase in traffic that their advertising campaign generated. Similarly, Encyclopaedia Britannica was unable to keep up with the amount of users during the immediate weeks following their promotion of free access to its online database. The truth is, these problems could probably have been prevented, had adequate load testing taken place.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;When creating an eCommerce portal, companies will want to know whether their infrastructure can handle the predicted levels of traffic, to measure performance and verify stability.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;These types of services include Scalability / Load / Stress testing, as well as Live Performance Monitoring. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;Load testing tools can be used to test the system behaviour and performance under stressful conditions by emulating thousands of virtual users. These virtual users stress the application even harder than real users would, while monitoring the behaviour and response times of the different components. This enables companies to minimise test cycles and optimise performance, hence accelerating&lt;span style=""&gt; &lt;/span&gt;deployment, while providing a level of confidence in the system.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;Once launched, the site can be regularly checked using Live Performance Monitoring tools to monitor site performance in real time, in order to detect and report any performance problems - before users can experience them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;&lt;span style=""&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;!--[endif]--&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;Preparing for a Load Test&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;The first step in designing a Web site load test is to measure as accurately as possible the current load levels.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style=""&gt;Measuring Current Load Levels&lt;/span&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;The best way to capture the nature of Web site load is to identify and track, [e.g. using a log analyser] a set of key user session variables that are applicable and relevant to your Web site traffic. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;Some of the variables that could be tracked include:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;the length of the session (measured in pages) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;the duration of the session (measured in minutes and seconds) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;the type of pages that were visited during the session (e.g., home page, product information page, credit card information page etc.) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;the typical/most popular 'flow' or path through the website &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;the % of 'browse' vs. 'purchase' sessions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;the % type of users (new user vs. returning registered user)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 6pt; line-height: 150%;"&gt;&lt;span style="font-size: 13pt; line-height: 150%;"&gt;Measure how many people visit the site per week/month or day. Then  break down these current traffic patterns into one-hour time slices, and identify the peak-hours (i.e. if you get lots of traffic during lunch time etc.), and the numbers of users during those peak hours. This information can then be used to estimate the number of concurrent users on your site.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 13pt; line-height: 115%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-5977722919068047412?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/5977722919068047412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=5977722919068047412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/5977722919068047412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/5977722919068047412'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/load-stress-testing-of-websites.html' title='Load / Stress Testing of Websites'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-5032302993592035868</id><published>2008-08-30T10:44:00.001+05:30</published><updated>2008-08-30T10:44:15.227+05:30</updated><title type='text'>Classification of Errors by Severity</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='font-family:Verdana'&gt;Often the severity of a software defect can vary even though the software never changes.  The reason being is that a software defect's severity depends on the system in which it runs. &lt;/span&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='font-family:Verdana'&gt;For example, the severity of the Pentium's floating-point defect changes from system to system.  On some systems, the severity is small; whereas on other systems, the severity is high.  &lt;/span&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='font-family:Verdana'&gt;Another problem (which occurs regularly) is that the definitions of the severity levels (or categories) themselves change depending on the type of system.  For example, a catastrophic defect in a nuclear system means that the fault can result in death or environmental harm; a catastrophic defect in a database system means that the fault can (or did) cause the loss of valuable data.  &lt;/span&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='font-family:Verdana'&gt;Therefore, the system itself determines the severity of a defect based on the context for which the defect applies.  The context makes all the difference in how to classify a defect's severity.  &lt;/span&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='font-family:Verdana'&gt;I have attached two sample classification methods – a 3 level classification method, and a more comprehensive 5 level classification method, which I hope you may find useful.&lt;/span&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:24pt'&gt;&lt;strong&gt;&lt;span style='color:purple; text-decoration:underline'&gt;3 Level Error Classification Method&lt;/span&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Errors, which are agreed as valid, will be categorised as follows :- &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Symbol; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;&lt;strong&gt;Category A&lt;/strong&gt; - Serious errors that prevent System test of a particular function continuing or serious data type error &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Symbol; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;&lt;strong&gt;Category B&lt;/strong&gt; - Serious or missing data related errors that will not prevent implementation. &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Symbol; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;&lt;strong&gt;Category C&lt;/strong&gt; - Minor errors that do not prevent or hinder functionality. &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:13pt'&gt;&lt;strong&gt;&lt;span style='color:navy; font-family:Verdana'&gt;&lt;em&gt;Explanation of Classifications&lt;/em&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;br /&gt;						&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 18pt'&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;1.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;      &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;An "A" bug is a either a showstopper or of such importance as to radically affect the functionality of the system i.e. : &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;If, because of a consistent crash during processing of a new application, a user could not complete that application. &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Incorrect data is passed to system resulting in corruption or system crashes &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 18pt'&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Example of severally affected functionality:&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Calculation of repayment term/amount are incorrect &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Incorrect credit agreements produced &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 18pt'&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;2.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;      &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Bugs would be classified as "B" where a less important element of functionality is affected, e.g.: &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;a value is not defaulting correctly and it is necessary to input the correct value&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;data is affected which does not have a major impact, for example -  where an element of a customer application was not propagated to the database &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;there is an alternative method of completing a particular process - e.g. a problem might occur which has a work-around.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Serious cosmetic error on front-end.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 18pt'&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;3.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;      &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;"C" type bugs are mainly cosmetic bugs i.e.: &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Incorrect / misspelt text on screens&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Wingdings; font-size:10pt'&gt;&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;         &lt;/span&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;drop down lists missing or repeating an option &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:24pt'&gt;&lt;strong&gt;&lt;span style='color:purple; text-decoration:underline'&gt;5 Level Error Classification Method&lt;/span&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style='margin-left: 18pt'&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:195px'/&gt;&lt;col style='width:485px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;&lt;strong&gt;1.  Catastrophic:       &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='font-family:Verdana'&gt;Defects that could (or did) cause disastrous consequences for the system in question.  &lt;/span&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;br /&gt;										&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:12pt'&gt;E.g.) critical loss of data, critical loss of system availability, critical loss of security, critical loss of safety, etc.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt; &lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;&lt;strong&gt;2.  Severe:             &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Defects that could (or did) cause very serious consequences for the system in question.  &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;									&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;E.g.) A function is severely broken, cannot be used and there is no workaround.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt; &lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;&lt;strong&gt;3.  Major:              &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Defects that could (or did) cause significant consequences for the system in question - A defect that needs to be fixed but there is a workaround.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;									&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;E.g. 1.) losing data from a serial device during heavy loads.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;									&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;E.g. 2.) Function badly broken but workaround exists&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt; &lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;&lt;strong&gt;4.  Minor:              &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Defects that could (or did) cause small or negligible consequences for the system in question. Easy to recover or workaround.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;									&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;E.g.1) Error messages misleading.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;									&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;E.g.2) Displaying output in a font or format other than what the customer desired.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt; &lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;&lt;strong&gt;5.  No Effect:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-left: 7px; padding-right: 7px'&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;Trivial defects that can cause no negative consequences for the system in question.  Such defects normally produce no erroneous outputs.  &lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;									&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;E.g.1) simple typos in documentation.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br /&gt;									&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:10pt'&gt;E.g.2) bad layout or mis-spelling on screen.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-5032302993592035868?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/5032302993592035868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=5032302993592035868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/5032302993592035868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/5032302993592035868'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/classification-of-errors-by-severity.html' title='Classification of Errors by Severity'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-1801273199918737058</id><published>2008-08-28T14:04:00.003+05:30</published><updated>2008-08-29T09:21:43.113+05:30</updated><title type='text'>Web Testing Checklist</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CVENKAT%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CVENKAT%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CVENKAT%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:187724176; 	mso-list-template-ids:-981063870;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l1 	{mso-list-id:209538569; 	mso-list-template-ids:-693362600;} @list l1:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l2 	{mso-list-id:424686947; 	mso-list-template-ids:-1726439884;} @list l2:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l3 	{mso-list-id:439423143; 	mso-list-template-ids:161669638;} @list l3:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l4 	{mso-list-id:595403135; 	mso-list-template-ids:1701758160;} @list l5 	{mso-list-id:891311653; 	mso-list-template-ids:450923610;} @list l5:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l6 	{mso-list-id:1076706553; 	mso-list-template-ids:-765672112;} @list l7 	{mso-list-id:1342120166; 	mso-list-template-ids:655117010;} @list l8 	{mso-list-id:1400900426; 	mso-list-template-ids:2106856434;} @list l8:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l9 	{mso-list-id:1682079449; 	mso-list-template-ids:788169420;} @list l9:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l10 	{mso-list-id:1706060639; 	mso-list-template-ids:-1371511554;} @list l10:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l11 	{mso-list-id:1838882449; 	mso-list-template-ids:-1544410094;} @list l11:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l12 	{mso-list-id:1956323949; 	mso-list-template-ids:-1136229466;} @list l12:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l13 	{mso-list-id:1996182561; 	mso-list-template-ids:-1658529332;} @list l13:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l14 	{mso-list-id:2026441777; 	mso-list-template-ids:-887852630;} @list l14:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l15 	{mso-list-id:2071463114; 	mso-list-template-ids:-941600286;} @list l15:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:10.0pt; 	font-family:Symbol;} @list l16 	{mso-list-id:2141454993; 	mso-list-template-ids:1161200806;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 13pt;"&gt;User Interface Testing&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Site&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Easy to use&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Instructions are simple and clear. Additionally, test that instructions are&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;correct (i.e. if you follow each instruction does the expected result&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;occur?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Site map or navigation bar (if provided) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Is the site map is correct?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Does each link on the map actually exist?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Are there links on the site that are not represented on the map?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Is the navigational bar present on every screen?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Is it consistent?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Does each link work on each page?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Is it organized in an intuitive manner?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Site Content&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Correctness of wording&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;No overuse of bold text big fonts and blinking (user acceptance testing)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Hyperlinked references are working&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Are patterns, background color and pictures distract the user?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Does all images add value to respective page?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Do these images waste bandwidth? In general use small pictures to reduce load.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Does wrap-around occurs properly?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 13pt;"&gt;Functionality Testing&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Application Specific&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Correctness of the functionality of the website i.e. the part that interfaces with the server and actually "does stuff".&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;No internal and external broken links.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;User submitted information through forms, needs to work properly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;In order to test this, verify that the server stores the information properly and that systems down the line can interpret and use that information.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;User input should get verified at system level according to business rules and error/warning messages should be flash to user for incorrect inputs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Cookies &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;If the system uses cookies, make sure the cookies work. If cookies store login information, make sure the information is encrypted in the cookie file. If the cookie is used for statistics, make sure those cookies are encrypted too, Otherwise people can edit their cookies and skew information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 13pt;"&gt;Interface Testing&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 13pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;If site calls external servers for additional data, verify that the software can handle every possible message returned by the external server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;To test browser and server interface, run queries on the database to make sure the transaction data is being retrieve and store properly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Error Handling &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Make sure system can handle application errors.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Make sure that system can handle other systems' errors. e.g. losing the internet connection from server to the external server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;How the transaction is handled, if user does not initiate interruption.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 13pt;"&gt;Compatibility Testing&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Operating systems&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Browsers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Video settings&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Printers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 13pt;"&gt;Load/Stress Testing&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;How many users at the same time can access without getting busy signal?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Can system handle large amount of data from multiple users?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Long period of continuous use: is site able to run for long period, without downtime.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 13pt;"&gt;Security&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 13pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;General&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Each directory should have an index.html or main.html page so a directory listing doesn't appear.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Historical pages should be removed from directories.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Logins &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;In order to validate users, if site requires user to login; verify that the system does not allow invalid usernames/password.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Is there a maximum number of failed logins allowed before the server locks out the current user?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Verify rules for password selection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Log Files&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Does the serverlog track every transaction?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Does it track unsuccessful login attempts?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;What does it store for each transaction? (IP address and User name) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13pt;"&gt;&lt;span style=""&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;SSL &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;If SSL is used, make sure that there is an alternate page for browser with versions less than 3.0, since SSL is not compatible with those browsers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Make sure that there are warnings when user enter and leave the secured site.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;Is there a timeout limit?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 10pt; font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13pt;"&gt;What happens if the user tries a transaction after the timeout?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-1801273199918737058?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/1801273199918737058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=1801273199918737058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1801273199918737058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1801273199918737058'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/web-testing-checklist.html' title='Web Testing Checklist'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-8259490893207857361</id><published>2008-08-27T09:05:00.003+05:30</published><updated>2008-08-27T11:45:26.619+05:30</updated><title type='text'>Descriptive Programming</title><content type='html'>&lt;span xmlns=""&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;What is Descriptive Programming?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:130%;"  &gt;Whenever QTP records any action on any object of an application, it adds some description on how to recognize that object to a repository of objects called object repository. QTP cannot take action on an object until unless its object description is in the Object Repository. But descriptive programming provides a way to perform action on objects which are not in Object repository.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:12;"  &gt;&lt;span style="font-size:130%;"&gt;This technique is useful when the application to be tested has not been developed yet but its interface design is available.&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style=";font-family:Times New Roman;font-size:12;"  &gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;Object Identification:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;To identify an object during the play back of the scripts QTP stores some properties which helps QTP to uniquely identify the object on a page. Below screen shots shows an example Object repository:&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Now to recognize a radio button on a page QTP had added 2 properties the name of the radio button and the html tag for it. The name the left tree view is the logical name given by QTP for the object. This can be changed as per the convenience of the person writing the test case. QTP only allows UNIQUE logical name under same level of hierarchy. As we see in the snapshot the two objects in Browser-&amp;gt;Page node are "WebTable" and "testPath", they cannot have the same logical name. But an object under some other node can have the same name. Now with the current repository that we have, we can only write operation on objects which are in the repository. Some of the example operations are given below&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Browser("Browser").Page("Page").WebRadioGroup ("testPath").Select "2"&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;cellData = Browser("Browser").Page("Page").WebTable ("WebTable").GetCellData (1,1)&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Browser("Example2").Page("Page").WebEdit("testPath").Set "Test text"&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;strong&gt;&lt;br /&gt;    &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;When and Why to use Descriptive programming?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Below are some of the situations when Descriptive Programming can be considered useful:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;The objects in the application are dynamic in nature and need special handling to identify the object. The best example would be of clicking a link which changes according to the user of the application, Ex. "Logout &amp;lt;&amp;lt;UserName&amp;gt;&amp;gt;".&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;When object repository is getting huge due to the no. of objects being added. If the size of Object repository increases too much then it decreases the performance of QTP while recognizing a object.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;When you don't want to use object repository at all. Well the first question would be why not Object repository? Consider the following scenario which would help understand why not Object repository&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="text-align: justify; margin-left: 36pt;"&gt;Scenario 1: Suppose we have a web application that has not been developed yet. Now QTP for recording the script and adding the objects to repository needs the application to be up, that would mean waiting for the application to be deployed before we can start of with making QTP scripts. But if we know the descriptions of the objects that will be created then we can still start off with the script writing for testing&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 36pt;"&gt;Scenario 2: Suppose an application has 3 navigation buttons on each and every page. Let the buttons be "Cancel", "Back" and "Next". Now recording action on these buttons would add 3 objects per page in the repository. For a 10 page flow this would mean 30 objects which could have been represented just by using 3 objects. So instead of adding these 30 objects to the repository we can just write 3 descriptions for the object and use it on any page.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Modification to a test case is needed but the Object repository for the same is Read only or in shared mode i.e. changes may affect other scripts as well.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;When you want to take action on similar type of object i.e. suppose we have 20 textboxes on the page and there names are in the form txt_1, txt_2, txt_3 and so on. Now adding all 20 the Object repository would not be a good programming approach.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;How to use Descriptive programming?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;There are two ways in which descriptive programming can be used&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;By creating properties collection object for the description.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;By giving the description in form of the string arguments&lt;span style="font-family:Calibri;"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;By creating properties collection object for the description.&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;p style="text-align: justify;"&gt;To use this method you need first to create an empty description&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;Dim obj_Desc&lt;/span&gt;&lt;span style="color: rgb(51, 153, 102);"&gt; 'Not necessary to declare&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color:blue;"&gt;&lt;strong&gt;Set obj_Desc = Description.Create&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Now we have a blank description in "obj_Desc". Each description has 3 properties "Name", "Value" and "Regular Expression".&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;strong&gt;obj_Desc("html tag").value= "INPUT"&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;When you use a property name for the first time the property is added to the collection and when you use it again the property is modified. By default each property that is defined is a regular expression. Suppose if we have the following description&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;strong&gt;obj_Desc("html tag").value= "INPUT"&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;strong&gt;obj_Desc("name").value= "txt.*"&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;This would mean an object with html tag as INPUT and name starting with txt. Now actually that ".*" was considered as regular expression. So, if you want the property "name" not to be recognized as a regular expression then you need to set the "regularexpression" property as FALSE&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;strong&gt;obj_Desc("html tag").value= "INPUT"&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;strong&gt;obj_Desc("name").value= "txt.*"&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;strong&gt;obj_Desc("name").regularexpression= "txt.*"&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;This is how of we create a description. Now below is the way we can use it&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;span style="font-weight: bold;"&gt;Browser("Browser").Page("Page").WebEdit(obj_Desc).set "Test"&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;When we say .WebEdit(obj_Desc) we define one more property for our description that was not earlier defined that is it's a text box (because QTPs WebEdit boxes map to text boxes in a web page).&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;If we know that we have more than 1 element with same description on the page then we must define "index" property for the that description&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Consider the HTML code given below&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&amp;lt;INPUT type="textbox" name="txt_Name"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&amp;lt;INPUT type="textbox" name="txt_Name"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Now the html code has two objects with same description. So distinguish between these 2 objects we will use the "index" property. Here is the description for both the object&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;For 1&lt;sup&gt;st&lt;/sup&gt; textbox:&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style="font-family:Calibri;"&gt;    &lt;span style="color:blue;"&gt;obj_Desc("html tag").value= "INPUT"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_Desc("name").value= "txt_Name"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_Desc("index").value= "0"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;For 2&lt;sup&gt;nd&lt;/sup&gt; textbox:&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style="font-family:Calibri;"&gt;    &lt;span style="color:blue;"&gt;obj_Desc("html tag").value= "INPUT"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_Desc("name").value= "txt_Name"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_Desc("index").value= "1"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Consider the HTML Code given below:&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&amp;lt;INPUT type="textbox" name="txt_Name"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&amp;lt;INPUT type="radio" name="txt_Name"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;We can use the same description for both the objects and still distinguish between both of them&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_Desc("html tag").value= "INPUT"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="text-align: justify; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;           obj_Desc("name").value= "txt_Name"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;When I want to refer to the textbox then I will use the inside a WebEdit object and to refer to the radio button I will use the description object with the WebRadioGroup object.&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="color:blue;"&gt;Browser("Browser").Page("Page").WebEdit(obj_Desc).set "Test" &lt;/span&gt;&lt;span style="color:green;"&gt;'Refers to the text box&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="color:blue;"&gt;Browser("Browser").Page("Page").WebRadioGroup(obj_Desc).set "Test" &lt;/span&gt;&lt;span style="color:green;"&gt;'Refers to the radio button&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;But if we use WebElement object for the description then we must define the "index" property because for a webelement the current description would return two objects.&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;Hierarchy of test description:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;When using programmatic descriptions from a specific point within a test object hierarchy, you must continue to use programmatic descriptions&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;from that point onward within the same statement. If you specify a test object by its object repository name after other objects in the hierarchy have&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;been described using programmatic descriptions, QuickTest cannot identify the object.&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;For example, you can use Browser(Desc1).Page(Desc1).Link(desc3), since it uses programmatic descriptions throughout the entire test object hierarchy.&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;You can also use Browser("Index").Page(Desc1).Link(desc3), since it uses programmatic descriptions from a certain point in the description (starting&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;from the Page object description).&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;However, you cannot use Browser(Desc1).Page(Desc1).Link("Example1"), since it uses programmatic descriptions for the Browser and Page objects but&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;then attempts to use an object repository name for the Link test object (QuickTest tries to locate the Link object based on its name, but cannot&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;locate it in the repository because the parent objects were specified using programmatic descriptions).&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;Getting Child Object:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;We can use description object to get all the objects on the page that matches that specific description. Suppose we have to check all the checkboxes present on a web page. So we will first create an object description for a checkboxe and then get all the checkboxes from the page&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Dim obj_ChkDesc&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Set obj_ChkDesc=Description.Create&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_ChkDesc("html tag").value = "INPUT"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_ChkDesc("type").value = "checkbox"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Dim allCheckboxes, singleCheckBox&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Set  allCheckboxes = Browse("Browser").Page("Page").ChildObjects(obj_ChkDesc)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;For each singleCheckBox in allCheckboxes&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;    singleCheckBox.Set "ON"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Next&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;The above code will check all the check boxes present on the page. To get all the child objects we need to specify an object description i.e. we can't use the string arguments that will be discussed later in the 2nd way of using the programming description.&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;Possible Operation on Description Object&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;Consider the below code for all the solutions&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Dim obj_ChkDesc&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Set obj_ChkDesc=Description.Create&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_ChkDesc("html tag").value = "INPUT"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;obj_ChkDesc("type").value = "checkbox"&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;Q: How to get the no. of description defined in a collection&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="font-family:Calibri;"&gt;A: &lt;span style="font-weight: bold;color:blue;" &gt;obj_ChkDesc.Count&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-weight: bold;color:green;" &gt;'Will return 2 in our case&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;Q: How to remove a description from the collection&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="font-family:Calibri;"&gt;A: &lt;span style="font-weight: bold;color:blue;" &gt;obj_ChkDesc.remove "html tag"&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-weight: bold;color:green;" &gt;'would delete the html tag property from the collection&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;Q: How do I check if property exists or not in the collection?&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;A: The answer is that it's not possible. Because whenever we try to access a property which is not defined its automatically added to the collection. The only    way to determine is to check its value that is use a if statement "if obj_ChkDesc("html tag").value = empty then".&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;Q: How to browse through all the properties of a properties collection?&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;A: Two ways&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="font-family:Calibri;"&gt;    1&lt;sup&gt;st&lt;/sup&gt;:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style="font-family:Calibri;"&gt;        &lt;span style="color:blue;"&gt;For each desc in obj_ChkDesc&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;            Name=desc.Name&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;            Value=desc.Value&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;            RE = desc.regularexpression&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;        Next&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="font-family:Calibri;"&gt;    2&lt;sup&gt;nd&lt;/sup&gt;:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style="font-family:Calibri;"&gt;        &lt;span style="color:blue;"&gt;For i=0 to obj_ChkDesc.count - 1&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;            Name= obj_ChkDesc(i).Name&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;            Value= obj_ChkDesc(i).Value&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;            RE = obj_ChkDesc(i).regularexpression&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;        Next&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;By giving the description in form of the string arguments.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;&lt;span style="color: rgb(0, 0, 102);font-family:Calibri;" &gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;You can describe an object directly in a statement by specifying &lt;em&gt;property:=value &lt;/em&gt;pairs describing the object instead of specifying an object's&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;name. The general syntax is:&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;TestObject("PropertyName1:=PropertyValue1", "..." , "PropertyNameX:=PropertyValueX")&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;TestObject—the test object class could be WebEdit, WebRadioGroup etc….&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;PropertyName:=PropertyValue—the test object property and its value. Each &lt;em&gt;property:=value &lt;/em&gt;pair should be separated by commas and quotation&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;marks. Note that you can enter a variable name as the property value if you want to find an object based on property values you retrieve during a run session.&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;Consider the HTML Code given below:&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&amp;lt;INPUT type="textbox" name="txt_Name"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;&amp;lt;INPUT type="radio" name="txt_Name"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;Now to refer to the textbox the statement would be as given below&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Browser("Browser").Page("Page").WebEdit("Name:=txt_Name","html tag:=INPUT").set "Test"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;And to refer to the radio button the statement would be as given below&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;color:blue;"  &gt;Browser("Browser").Page("Page").WebRadioGroup("Name:=txt_Name","html tag:=INPUT").set "Test"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt;"&gt;If we refer to them as a web element then we will have to distinguish between the 2 using the index property&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; margin-left: 18pt; font-weight: bold;"&gt;&lt;span style=";font-family:Calibri;font-size:130%;"  &gt;&lt;span style="color:blue;"&gt;Browser("Browser").Page("Page").WebElement("Name:=txt_Name","html tag:=INPUT","Index:=0").set "Test" &lt;/span&gt;&lt;span style="color:green;"&gt;' Refers to the textbox&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color:blue;"&gt;Browser("Browser").Page("Page").WebElement("Name:=txt_Name","html tag:=INPUT","Index:=1").set "Test" &lt;/span&gt;&lt;span style="color:green;"&gt;' Refers to the radio button&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-8259490893207857361?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/8259490893207857361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=8259490893207857361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8259490893207857361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8259490893207857361'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/descriptive-programming.html' title='Descriptive Programming'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-3960411015565107346</id><published>2008-08-26T14:35:00.001+05:30</published><updated>2008-08-26T14:35:19.646+05:30</updated><title type='text'>Glossary of Vulnerability Testing Terminology - 1</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Ad hoc &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Something that is ad hoc or that is done on an ad hoc basis happens or is done only when the situation makes it necessary or desirable, rather than being arranged in advance or being part of a general plan. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Ad hoc testing &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Testing carried out using no recognized test case design technique. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Ad-lib test &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;(also ad hoc test), a test executed without prior planning; especially if the expected test outcome is not predicted beforehand. an undocumented test.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Anomaly&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;An anomaly is a rule or practice that is different from what is normal or usual, and which is therefore unsatisfactory. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Anything observed in the documentation or operation of software that deviates from expectations based on previously verified software products or reference documents. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Attack &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;An attempt to bypass security controls on a computer. The attack may alter, release, or deny data. Whether an attack will succeed depends on the vulnerability of the computer system and the effectiveness of existing countermeasures. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;The act of trying to bypass security controls on a system. An attack may be active, resulting in the alteration of data; or passive, resulting in the release of data. Note: The fact that an attack is made does not necessarily mean that it will succeed. The degree of success depends on the vulnerability of the system or activity and the effectiveness of existing countermeasures.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Attack potential &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;The perceived potential for success of an attack, should an attack be launched, expressed in terms of an attacker's expertise, resources and motivation.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Availability &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Assuring information and communications services will be ready for use when expected.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Availability of data &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;The state when data are in the place needed by the user, at the time the user needs them, and in the form needed by the user. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Backus-Naur Form &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;(also Backus normal form, BNF), a met language used to formally describe the syntax of another language. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;A met language used to formally describe the syntax of a language.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Basic Encoding Rules (BER) &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Standard rules for encoding data units described in ASN.1. Sometimes incorrectly lumped under the term ASN.1, which properly refers only to the abstract syntax description language, not the encoding technique. See also: Abstract Syntax Notation One.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Black-box testing &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Functional test case design: Test case selection that is based on an analysis of the specification of the component without reference to its internal workings. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Fuctional testing. Testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to the selected inputs and execution conditions.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Boundary value &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;A data value that corresponds to a minimum or maximum input, internal, or output value specified for a system or component. See also: stress testing.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;An input value or output value which is on the boundary between equivalence classes, or an incremental distance either side of the boundary.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;Boundary value analysis &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;(NBS) A selection technique in which test data are chosen to lie along "boundaries" of the input domain [or output range] classes, data structures, procedure parameters, etc. Choices often include maximum, minimum, and trivial values or parameters. This technique is often called stress testing. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='font-family:Times New Roman; font-size:14pt'&gt;A test case design technique for a component in which test cases are designed which include representatives of boundary values.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-3960411015565107346?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/3960411015565107346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=3960411015565107346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3960411015565107346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3960411015565107346'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/glossary-of-vulnerability-testing.html' title='Glossary of Vulnerability Testing Terminology - 1'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-3084533543617376906</id><published>2008-08-20T17:38:00.002+05:30</published><updated>2008-08-22T15:32:02.815+05:30</updated><title type='text'>Software Testing Frequently Asked Questions</title><content type='html'>&lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;1.) Who is having full privileges in TestDirector project? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;TD Admin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;2.) What are all the components of TestDirector5.0? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Plan tests,Run tests,Track defects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;3.) TestDirector is a &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Test management tool&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;4.) What is the use of working with actions? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;To design a modular and efficient tests&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;5.) What is the use of data table in QTP? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Parameterizing the test &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;6.) Keyword view in QTP is also termed as &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Icon based view&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;7.) What is the main aim of load testing? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;To calculate the response time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;8.) What does vuser_init action contains? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Login procedures&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;9.) What is load testing? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Testing of application for simultaneous users&lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;10.) How do you write messages to the report? &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;report_msg&lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;11.) How Winrunner handles varying window labels? &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Using regular expressions&lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;12.) How to modify the logical name or physical description of the object? &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Using GUI editor&lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;13.) What is considered a good test? &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;It should cover most of the object's functionality &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;14.) What is other name for water fall model? &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Linear sequential model&lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;15.) What is the other name for white box testing? &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Clear box testing &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;16.) How you integrated your automated scripts from TestDirector?&lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 13pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;When you work with WinRunner , you can choose to save your tests directly to your TestDirector database or while creating a test case in the TestDirector we can specify whether the script in automated or manual&lt;u&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 13pt; line-height: 115%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-3084533543617376906?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/3084533543617376906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=3084533543617376906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3084533543617376906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3084533543617376906'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/software-testing-frequently-asked.html' title='Software Testing Frequently Asked Questions'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-8664189371963823830</id><published>2008-08-20T17:37:00.001+05:30</published><updated>2008-08-20T17:37:48.692+05:30</updated><title type='text'>QTP Recent Sample Papers</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;QTP Recent Sample Papers &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;Explain in brief about the QTP automation object model&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;The test object model is a large set of object types or classes that QTP uses to represent the objects in our application. Each test object has a list of properties that can uniquely identify objects of that class &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What is a Run-Time data table?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;The test results tree also includes the table-shaped icon that displays the run-time data table-a table that shows the values used to run a test containing data table parameters or the data table output values retrieved from a application under test&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What are all the components of QTP test script?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;QTP test script is a combination of VB script statements and statements that use QuickTest test objects ,methods and properties&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What is test object?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Its an object that QTP uses to represent an object in our application. Each test object has one or more methods and properties that we can use to perform operations and retrieve values for that object. Each object also has a number of identification properties that can describe the object.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What are all the rules and guidelines want to be followed while working in expert view?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Case-sensitivity&lt;/span&gt;&lt;br/&gt;VB script is not case sensitive and does not differentiate between upper case and lower case spelling of words.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Text strings&lt;/span&gt;&lt;br/&gt;When we enter value as a string, that time we must add quotation marks before and after the string&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Variables&lt;/span&gt;&lt;br/&gt;We can use variables to store strings, integers, arrays and objects. Using variables helps to make our script more readable and flexible.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Parentheses&lt;/span&gt;&lt;br/&gt;To achieve the desired result and to avoid the errors, it is important that we use parentheses() correctly in our statements.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Comments&lt;/span&gt;&lt;br/&gt;We can add comments to our statements using apostrophe ('),either at a beginning of the separate line or at the end of a statement&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Spaces&lt;/span&gt;&lt;br/&gt;We can add extra blank spaces to our script to improve clarity. These spaces are ignored by the VB script&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;Mention the types of recording available in QTP?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;QTP provides three types of recording methods-&lt;br/&gt;&lt;br/&gt;* Context Recording (Normal) &lt;br/&gt;* Analog Recording &lt;br/&gt;* Low Level Recording&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What are the different scripting languages you could use when working with QTP ?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;you can write your QTP automation programs in any Languages and development environment that supports automation. For example: you can use: VBScript, java script, Visual Basic, Visual C++, or Visual Studioi.Net&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What is the file extension of the code file &amp;amp; object repository file in QTP?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Extension of code file in QTP is - .mts Local Object Repository Extension is - .mtr Shared Object Repository Extension Is - .tsr&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;How to handle the exceptions using recovery scenario manager in Qtp?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;You can instruct QTP to recover unexpected events or errors that occurred in your testing environment during test run. Recovery scenario manager provides a wizard that guides you through the defining recovery scenario. Recovery scenario has three steps&lt;br/&gt;&lt;br/&gt;1. Triggered Events&lt;br/&gt;2. Recovery steps &lt;br/&gt;3. Post Recovery Test-Run&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What is Parameterizing Tests? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;When you test your application, you may want to check how it performs the same operations with multiple sets of data. For example, suppose you want to check how your application responds to ten separate sets of data. You could record ten separate tests, each with its own set of data. Alternatively, you can create a parameterized test that runs ten times: each time the test runs, it uses a different set of data.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;Explain the check points in QTP? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;A checkpoint verifies that expected information is displayed in a Application while the test is running. You can add eight types of checkpoints to your test for standard web objects using QTP. &lt;br/&gt;&lt;br/&gt;• A page checkpoint checks the characteristics of a Application&lt;br/&gt;• A text checkpoint checks that a text string is displayed in the appropriate place on a Application.&lt;br/&gt;• An object checkpoint (Standard) checks the values of an object on a Application. &lt;br/&gt;• An image checkpoint checks the values of an image on a Application.&lt;br/&gt;• A table checkpoint checks information within a table on a Application&lt;br/&gt;• An Accessibility checkpoint checks the web page for Section 508 compliance.&lt;br/&gt;• An XML checkpoint checks the contents of individual XML data files or XML documents that are part of your Web application.&lt;br/&gt;• A database checkpoint checks the contents of databases accessed by your web site&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;Explain the concept of how QTP identifies object?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;During recording qtp looks at the object and stores it as test object. For each test object QT learns a set of default properties called mandatory properties, and look at the rest of the objects to check whether this properties are enough to uniquely identify the object. During test run,QT searches for the run time objects that matches with the test object it learned while recording.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;Explain QTP Testing process? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;The QuickTest testing process consists of 7 main phases: 1.Preparing to record before you record a test, confirm that your application and QuickTest are set to match the needs of your test. Make sure your application displays elements on which you want to record, such as a toolbar or a special window pane, &lt;br/&gt;&lt;br/&gt;for example, and that your application options are set as you expect for the purposes of your test. You should also view the settings in the Test Settings dialog box (Test &amp;gt; Settings) and the Options dialog box (Tools &amp;gt; Options) to ensure that QuickTest will record and store information appropriately.&lt;br/&gt;&lt;br/&gt;For example, you should confirm that the test is set to use the appropriate object repository mode. &lt;br/&gt;&lt;br/&gt;2. Recording a session on your application As you navigate through your application or Web site, QuickTest graphically displays each step you perform as a row in the Keyword View. A step is any user action that causes or makes a change in your application, such as clicking a link or image, or entering data in a form.&lt;br/&gt;&lt;br/&gt;3. Enhancing your test inserting checkpoints into your test lets you search for a specific value of a page, object, or text string, which helps you determine whether your application or site is functioning correctly. &lt;br/&gt;&lt;br/&gt;4. Broadening the scope of your test, by replacing fixed values with parameters, lets you check how your application performs the same operations with multiple sets of data.&lt;br/&gt;&lt;br/&gt;5. Adding logic and conditional or loop statements enables you to add sophisticated checks to your test. &lt;br/&gt;&lt;br/&gt;6. Debugging your test You debug a test to ensure that it operates smoothly and without interruption.&lt;br/&gt;&lt;br/&gt;7. Running your test You run a test to check the behavior of your application or Web site. While running, QuickTest opens the application, or connects to the Web site, and performs each step in your test.&lt;br/&gt;&lt;br/&gt;8. Analyzing the test results You examine the test results to pinpoint defects in your application.&lt;br/&gt;&lt;br/&gt;9. Reporting defects If you have Quality Center installed, you can report the defects you discover to a database. Quality Center is Mercury Interactive software test management tool.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What is the use of Recovery Scenario Manager in QTP? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;The Recovery Scenario Manager provides a wizard that guides you through the process of defining a recovery scenario—a definition of an unexpected event and the operation(s) necessary to recover the run session. For example, you can instruct QuickTest to detect a printer out of paper message and recover the run session by clicking the OK button to close the message and continue the test or component.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-size:12pt'&gt;What is the use of Text output value in Qtp? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Output values enable to view the values that the application talks during run time. When parameterized, the values change for each iteration. Thus by creating output values, we can capture the values that the application takes for each run and output them to the data table.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-8664189371963823830?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/8664189371963823830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=8664189371963823830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8664189371963823830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8664189371963823830'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/qtp-recent-sample-papers.html' title='QTP Recent Sample Papers'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-2149645260306308228</id><published>2008-08-20T17:35:00.001+05:30</published><updated>2008-08-20T17:35:53.782+05:30</updated><title type='text'></title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;QTP Recent Sample Papers &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;  &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Explain in brief about the QTP automation object model&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The test object model is a large set of object types or classes that QTP uses to represent the objects in our application. Each test object has a list of properties that can uniquely identify objects of that class &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What is a Run-Time data table?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The test results tree also includes the table-shaped icon that displays the run-time data table-a table that shows the values used to run a test containing data table parameters or the data table output values retrieved from a application under test&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What are all the components of QTP test script?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;QTP test script is a combination of VB script statements and statements that use QuickTest test objects ,methods and properties&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What is test object?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Its an object that QTP uses to represent an object in our application. Each test object has one or more methods and properties that we can use to perform operations and retrieve values for that object. Each object also has a number of identification properties that can describe the object.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What are all the rules and guidelines want to be followed while working in expert view?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Case-sensitivity&lt;/span&gt;&lt;br/&gt;VB script is not case sensitive and does not differentiate between upper case and lower case spelling of words.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Text strings&lt;/span&gt;&lt;br/&gt;When we enter value as a string, that time we must add quotation marks before and after the string&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Variables&lt;/span&gt;&lt;br/&gt;We can use variables to store strings, integers, arrays and objects. Using variables helps to make our script more readable and flexible.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Parentheses&lt;/span&gt;&lt;br/&gt;To achieve the desired result and to avoid the errors, it is important that we use parentheses() correctly in our statements.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Comments&lt;/span&gt;&lt;br/&gt;We can add comments to our statements using apostrophe ('),either at a beginning of the separate line or at the end of a statement&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;span style='text-decoration:underline'&gt;Spaces&lt;/span&gt;&lt;br/&gt;We can add extra blank spaces to our script to improve clarity. These spaces are ignored by the VB script&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Mention the types of recording available in QTP?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;QTP provides three types of recording methods-&lt;br/&gt;&lt;br/&gt;* Context Recording (Normal) &lt;br/&gt;* Analog Recording &lt;br/&gt;* Low Level Recording&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What are the different scripting languages you could use when working with QTP ?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;you can write your QTP automation programs in any Languages and development environment that supports automation. For example: you can use: VBScript, java script, Visual Basic, Visual C++, or Visual Studioi.Net&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What is the file extension of the code file &amp;amp; object repository file in QTP?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Extension of code file in QTP is - .mts Local Object Repository Extension is - .mtr Shared Object Repository Extension Is - .tsr&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;How to handle the exceptions using recovery scenario manager in Qtp?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;You can instruct QTP to recover unexpected events or errors that occurred in your testing environment during test run. Recovery scenario manager provides a wizard that guides you through the defining recovery scenario. Recovery scenario has three steps&lt;br/&gt;&lt;br/&gt;1. Triggered Events&lt;br/&gt;2. Recovery steps &lt;br/&gt;3. Post Recovery Test-Run&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What is Parameterizing Tests? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;When you test your application, you may want to check how it performs the same operations with multiple sets of data. For example, suppose you want to check how your application responds to ten separate sets of data. You could record ten separate tests, each with its own set of data. Alternatively, you can create a parameterized test that runs ten times: each time the test runs, it uses a different set of data.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Explain the check points in QTP? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;A checkpoint verifies that expected information is displayed in a Application while the test is running. You can add eight types of checkpoints to your test for standard web objects using QTP. &lt;br/&gt;&lt;br/&gt;• A page checkpoint checks the characteristics of a Application&lt;br/&gt;• A text checkpoint checks that a text string is displayed in the appropriate place on a Application.&lt;br/&gt;• An object checkpoint (Standard) checks the values of an object on a Application. &lt;br/&gt;• An image checkpoint checks the values of an image on a Application.&lt;br/&gt;• A table checkpoint checks information within a table on a Application&lt;br/&gt;• An Accessibility checkpoint checks the web page for Section 508 compliance.&lt;br/&gt;• An XML checkpoint checks the contents of individual XML data files or XML documents that are part of your Web application.&lt;br/&gt;• A database checkpoint checks the contents of databases accessed by your web site&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Explain the concept of how QTP identifies object?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;During recording qtp looks at the object and stores it as test object. For each test object QT learns a set of default properties called mandatory properties, and look at the rest of the objects to check whether this properties are enough to uniquely identify the object. During test run,QT searches for the run time objects that matches with the test object it learned while recording.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Explain QTP Testing process? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The QuickTest testing process consists of 7 main phases: 1.Preparing to record before you record a test, confirm that your application and QuickTest are set to match the needs of your test. Make sure your application displays elements on which you want to record, such as a toolbar or a special window pane, &lt;br/&gt;&lt;br/&gt;for example, and that your application options are set as you expect for the purposes of your test. You should also view the settings in the Test Settings dialog box (Test &amp;gt; Settings) and the Options dialog box (Tools &amp;gt; Options) to ensure that QuickTest will record and store information appropriately.&lt;br/&gt;&lt;br/&gt;For example, you should confirm that the test is set to use the appropriate object repository mode. &lt;br/&gt;&lt;br/&gt;2. Recording a session on your application As you navigate through your application or Web site, QuickTest graphically displays each step you perform as a row in the Keyword View. A step is any user action that causes or makes a change in your application, such as clicking a link or image, or entering data in a form.&lt;br/&gt;&lt;br/&gt;3. Enhancing your test inserting checkpoints into your test lets you search for a specific value of a page, object, or text string, which helps you determine whether your application or site is functioning correctly. &lt;br/&gt;&lt;br/&gt;4. Broadening the scope of your test, by replacing fixed values with parameters, lets you check how your application performs the same operations with multiple sets of data.&lt;br/&gt;&lt;br/&gt;5. Adding logic and conditional or loop statements enables you to add sophisticated checks to your test. &lt;br/&gt;&lt;br/&gt;6. Debugging your test You debug a test to ensure that it operates smoothly and without interruption.&lt;br/&gt;&lt;br/&gt;7. Running your test You run a test to check the behavior of your application or Web site. While running, QuickTest opens the application, or connects to the Web site, and performs each step in your test.&lt;br/&gt;&lt;br/&gt;8. Analyzing the test results You examine the test results to pinpoint defects in your application.&lt;br/&gt;&lt;br/&gt;9. Reporting defects If you have Quality Center installed, you can report the defects you discover to a database. Quality Center is Mercury Interactive &lt;/span&gt;&lt;span style='color:blue; font-family:Arial; font-size:10pt; text-decoration:underline'&gt;software test&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt; management tool.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What is the use of Recovery Scenario Manager in QTP? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;The Recovery Scenario Manager provides a wizard that guides you through the process of defining a recovery scenario—a definition of an unexpected event and the operation(s) necessary to recover the run session. For example, you can instruct QuickTest to detect a &lt;/span&gt;&lt;span style='color:blue; font-family:Arial; font-size:10pt; text-decoration:underline'&gt;Printer&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt; out of paper message and recover the run session by clicking the OK button to close the message and continue the test or component.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;What is the use of Text output value in Qtp? &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Output values enable to view the values that the application talks during run time. When parameterized, the values change for each iteration. Thus by creating output values, we can capture the values that the application takes for each run and output them to the data table.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-2149645260306308228?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/2149645260306308228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=2149645260306308228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2149645260306308228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2149645260306308228'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/qtp-recent-sample-papers-explain-in.html' title=''/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-8804286302780860595</id><published>2008-08-08T09:18:00.006+05:30</published><updated>2008-08-19T09:13:55.664+05:30</updated><title type='text'>Performance &amp; Security Testing Checklist</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;" xmlns=""  &gt;&lt;div&gt;&lt;table style="border-collapse: collapse;" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 630px;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding: 1px;" valign="middle"&gt;&lt;p&gt;&lt;span style=""&gt;&lt;strong&gt;1. PERFORMANCE&lt;/strong&gt;&lt;br /&gt;        &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;&lt;strong&gt;1.1 LOAD&lt;/strong&gt;&lt;br /&gt;        &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;1.1.1 Many users requesting a certain page at the same time or using the site simultaneously&lt;br /&gt;1.1.2 Increase the number of users and keep the data constant&lt;br /&gt;1.1.3 Does the home page load quickly? within 8 seconds&lt;br /&gt;1.1.4 Is load time appropriate to content, even on a slow dial-in connection?&lt;br /&gt;1.1.5 Can the site sustain long periods of usage by multiple users? &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=""&gt;1.1.6 Can the site sustain long periods of continuous usage by 1 user?&lt;br /&gt;1.1.7 Is page loading performance acceptable over modems of different speeds?&lt;br /&gt;1.1.8 Does the system meet its goals for response time, throughput, and availability?&lt;br /&gt;1.1.9 Have you defined standards for response time (i.e. all screens should paint within 10 seconds)?&lt;br /&gt;1.1.10 Does the system operate in the same way across different computer and network configurations, platforms and environments, with different mixes of other applications?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;&lt;strong&gt;1.2 VOLUME&lt;/strong&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;1.2.1 Increase the data by having constant users&lt;br /&gt;1.2.2 Will the site allow for large orders without locking out inventory if the transaction is invalid?&lt;br /&gt;1.2.3 Can the site sustain large transactions without crashing?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;&lt;strong&gt;1.3 STRESS&lt;/strong&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;1.3.1 Increase both number of users and the data&lt;br /&gt;1.3.2 Performance of memory, CPU, file handling etc.&lt;br /&gt;1.3.3 Error in software, hardware, memory errors (leakage, overwrite or pointers)&lt;br /&gt;1.3.4 Is the application or certain features going to be used only during certain periods of time or will it be used continuously 24 hours a day 7 days a week? Test that the application is able to perform during those conditions. Will downtime be allowed or is that out of the question?&lt;br /&gt;1.3.5 Verify that the application is able to meet the requirements and does not run out of memory or disk space.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;&lt;strong&gt;1.4 SECURITY&lt;/strong&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;1.4.1 Is confidentiality/user privacy protected?&lt;br /&gt;1.4.2 Does the site prompt for user name and password?&lt;br /&gt;1.4.3 Are there Digital Certificates, both at server and client?&lt;br /&gt;1.4.4 Have you verified where encryption begins and ends?&lt;br /&gt;1.4.5 Are concurrent log-ons permitted?&lt;br /&gt;1.4.6 Does the application include time-outs due to inactivity?&lt;br /&gt;1.4.7 Is bookmarking disabled on secure pages?&lt;br /&gt;1.4.8 Does the key/lock display on status bar for insecure/secure pages?&lt;br /&gt;1.4.9 Is Right Click, View, Source disabled?&lt;br /&gt;1.4.10 Are you prevented from doing direct searches by editing content in the URL?&lt;br /&gt;1.4.11 If using Digital Certificates, test the browser Cache by enrolling for the Certificate and completing all of the required security information. After completing the application and installation of the certificate, try using the &amp;lt;-- BackSpace key to see if that security information is still residing in Cache. If it is, then any user could walk up to the PC and access highly sensitive Digital Certificate security information.&lt;br /&gt;1.4.12 Is there an alternative way to access secure pages for browsers under version 3.0, since SSL is not compatible with those browsers?&lt;br /&gt;1.4.13 Do your users know when they are entering or leaving secure portions of your site?&lt;br /&gt;1.4.14 Does your server lock out an individual who has tried to access your site multiple times with invalid login/password information?&lt;br /&gt;1.4.15 Test both valid and invalid login names and passwords. Are they case sensitive? Is there a limit to how many tries that are allowed? Can it be bypassed by typing the URL to a page inside directly in the browser?&lt;br /&gt;1.4.16 What happens whentime out is exceeded? Are users still able to navigate through the site?&lt;br /&gt;1.4.17 Relevant information is written to the logfiles and that the information is traceable.&lt;br /&gt;1.4.18 In SSL verify that the encryption is done correctly and check the integrity of the information.&lt;br /&gt;1.4.19 Scripting on the server is not possible to plan or edit scripts without authorisation.&lt;br /&gt;1.4.20 Have you tested the impact of Secure Proxy Server?&lt;br /&gt;1.4.21 Test should be done to ensure that the Load Balancing Server is taking the session information of Server A and pooling it to Server B when A goes down.&lt;br /&gt;1.4.22 Have you verified the use of 128-bit Encryption?&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-8804286302780860595?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/8804286302780860595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=8804286302780860595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8804286302780860595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8804286302780860595'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/performance-security-testing-checklist.html' title='Performance &amp;amp; Security Testing Checklist'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-1653528499421632422</id><published>2008-08-08T09:17:00.003+05:30</published><updated>2008-08-12T17:37:09.206+05:30</updated><title type='text'>Web Application Testing Checklist</title><content type='html'>&lt;span xmlns=""  style="font-size:100%;"&gt;&lt;div&gt;&lt;table style="border-collapse: collapse;" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 626px;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding: 1px;" valign="middle"&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;1. FUNCTIONALITY&lt;/strong&gt;&lt;br /&gt;       &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;1.1 LINKS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1.1.1 Check that the link takes you to the page it said it would.&lt;br /&gt;1.1.2 Ensure to have no orphan pages (a page that has no links to it)&lt;br /&gt;1.1.3 Check all of your links to other websites&lt;br /&gt;1.1.4 Are all referenced web sites or email addresses hyperlinked? &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;1.1.5 If we have removed some of the pages from our own site, set up a custom 404 page that redirects your visitors to your home page (or a search page) when the user try to access a page that no longer exists.&lt;br /&gt;1.1.6 Check all mailto links and whether it reaches properly&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.2 FORMS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1.2.1 Acceptance of invalid input&lt;br /&gt;1.2.2 Optional versus mandatory fields&lt;br /&gt;1.2.3 Input longer than field allows&lt;br /&gt;1.2.4 Radio buttons&lt;br /&gt;1.2.5 Default values on page load/reload(Also terms and conditions should be disabled)&lt;br /&gt;1.2.6 Is Command Button can be used for HyperLinks and Continue Links ?&lt;br /&gt;1.2.6 Is all the datas inside combo/list box are arranged in chronolgical order?&lt;br /&gt;1.2.7 Are all of the parts of a table or form present? Correctly laid out? Can you confirm that selected texts are in the "right place?&lt;br /&gt;1.2.8 Does a scrollbar appear if required?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.3 DATA VERIFICATION AND VALIDATION&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1.3.1 Is the Privacy Policy clearly defined and available for user access?&lt;br /&gt;1.3.2 At no point of time the system should behave awkwardly when an invalid data is fed&lt;br /&gt;1.3.3 Check to see what happens if a user deletes cookies while in site&lt;br /&gt;1.3.4 Check to see what happens if a user deletes cookies after visiting a site&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;2. APPLICATION SPECIFIC FUNCTIONAL REQUIREMENTS&lt;/strong&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;2.1 DATA INTEGRATION&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;2.1.1 Check the maximum field lengths to ensure that there are no truncated characters?&lt;br /&gt;2.1.2 If numeric fields accept negative values can these be stored correctly on the database and does it make sense for the field to accept negative numbers?&lt;br /&gt;2.1.3 If a particular set of data is saved to the database check that each value gets saved fully to the database. (i.e.) Beware of truncation (of strings) and rounding of numeric values.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.2 DATE FIELD CHECKS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;2.2.1 Assure that leap years are validated correctly &amp;amp; do not cause errors/miscalculations.&lt;br /&gt;2.2.2 Assure that Feb. 28, 29, 30 are validated correctly &amp;amp; do not cause errors/ miscalculations.&lt;br /&gt;2.2.3 Is copyright for all the sites includes Yahoo co-branded sites are updated&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.3 NUMERIC FIELDS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;2.3.1 Assure that lowest and highest values are handled correctly.&lt;br /&gt;2.3.2 Assure that numeric fields with a blank in position 1 are processed or reported as an error.&lt;br /&gt;2.3.3 Assure that fields with a blank in the last position are processed or reported as an error an error.&lt;br /&gt;2.3.4 Assure that both + and - values are correctly processed.&lt;br /&gt;2.3.5 Assure that division by zero does not occur.&lt;br /&gt;2.3.6 Include value zero in all calculations.&lt;br /&gt;2.3.7 Assure that upper and lower values in ranges are handled correctly. (Using BVA)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.4 ALPHANUMERIC FIELD CHECKS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;2.4.1 Use blank and non-blank data.&lt;br /&gt;2.4.2 Include lowest and highest values.&lt;br /&gt;2.4.3 Include invalid characters &amp;amp; symbols.&lt;br /&gt;2.4.4 Include valid characters.&lt;br /&gt;2.4.5 Include data items with first position blank.&lt;br /&gt;2.4.6 Include data items with last position blank.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse: collapse;" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 630px;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding: 1px;" valign="middle"&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;3. INTERFACE AND ERROR HANDLING&lt;/strong&gt;&lt;br /&gt;       &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;3.1 SERVER INTERFACE&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;3.1.1 Verify that communication is done correctly, web server-application server, application server-database server and vice versa.&lt;br /&gt;3.1.2 Compatibility of server software, hardware, network connections&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;3.2 EXTERNAL INTERFACE&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;3.2.1 Have all supported browsers been tested?&lt;br /&gt;3.2.2 Have all error conditions related to external interfaces been tested when external application is unavailable or server inaccessible?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3.3 INTERNAL INTERFACE&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;3.3.1 If the site uses plug-ins, can the site still be used without them?&lt;br /&gt;3.3.2 Can all linked documents be supported/opened on all platforms (i.e. can Microsoft Word be opened on Solaris)?&lt;br /&gt;3.3.3 Are failures handled if there are errors in download?&lt;br /&gt;3.3.4 Can users use copy/paste functionality?Does it allows in password/CVV/credit card no field?&lt;br /&gt;3.3.5 Are you able to submit unencrypted form data?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;3.4 INTERNAL INTERFACE&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;3.4.1 If the system does crash, are the re-start and recovery mechanisms efficient and reliable?&lt;br /&gt;3.4.2 If we leave the site in the middle of a task does it cancel?&lt;br /&gt;3.4.3 If we lose our Internet connection does the transaction cancel?&lt;br /&gt;3.4.4 Does our solution handle browser crashes?&lt;br /&gt;3.4.5 Does our solution handle network failures between Web site and application servers?&lt;br /&gt;3.4.6 Have you implemented intelligent error handling (from disabling cookies, etc.)?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;4. COMPATIBILITY&lt;/strong&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;4.1 BROWSERS&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;4.1.1 Is the HTML version being used compatible with appropriate browser versions?&lt;br /&gt;4.1.2 Do images display correctly with browsers under test?&lt;br /&gt;4.1.3 Verify the fonts are usable on any of the browsers&lt;br /&gt;4.1.4 Is Java Code/Scripts usable by the browsers under test?&lt;br /&gt;4.1.5 Have you tested Animated GIFs across browsers?&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;4.2 VIDEO SETTINGS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;4.2.1 Screen resolution (check that text and graphic alignment still work, font are readable etc.) like 1024 by 768, 600x800, 640 x 480 pixels etc&lt;br /&gt;4.2.2 Colour depth (256, 16-bit, 32-bit)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4.3 CONNECTION SPEED&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;4.3.1 Does the site load quickly enough in the viewer's browser within 8 Seconds?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4.4 PRINTERS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;4.4.1 Text and image alignment&lt;br /&gt;4.4.2 Colours of text, foreground and background&lt;br /&gt;4.4.3 Scalability to fit paper size&lt;br /&gt;4.4.4 Tables and borders&lt;br /&gt;4.4.5 Do pages print legibly without cutting off text.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-1653528499421632422?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/1653528499421632422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=1653528499421632422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1653528499421632422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1653528499421632422'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/web-application-testing-checklist.html' title='Web Application Testing Checklist'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-7459152510076515534</id><published>2008-08-08T09:13:00.002+05:30</published><updated>2008-08-11T16:00:43.987+05:30</updated><title type='text'>Specific Field Tests</title><content type='html'>&lt;span xmlns=""  style="font-size:100%;"&gt;&lt;p&gt;Field specific tests should be executed where appropriate. These tests will be specific to the data that field is hosting. There are well known test cases for fields like date, time, numeric field etc. It should be the responsibility of QE team at &amp;lt;XYZ ORGANISATION&amp;gt; to ensure that all the field specific test cases have been executed. This section is also categorized in following sub sections-&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Date Field Checks&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style="margin-left: 72pt;"&gt;&lt;li&gt;Assure that leap years are validated correctly &amp;amp; do not cause errors/miscalculations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that month code 00 and 13 are validated correctly &amp;amp; do not cause errors/miscalculations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that month code 00 and 13 are reported as errors&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that day values 00 and 32 are validated correctly &amp;amp; do not cause errors/miscalculations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that Feb. 28, 29, 30 are validated correctly &amp;amp; do not cause errors/ miscalculations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that Feb. 30 is reported as an error&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that century change is validated correctly &amp;amp; does not cause errors/ miscalculations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that out of cycle dates are validated correctly &amp;amp; do not cause errors/miscalculations&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Numeric Fields&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style="margin-left: 72pt;"&gt;&lt;li&gt;Assure that lowest and highest values are handled correctly&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that invalid values are logged and reported&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that valid values are handles by the correct procedure&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that numeric fields with a blank in position 1 are processed or reported as an error&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that fields with a blank in the last position are processed or reported as an error an error&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that both + and - values are correctly processed&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that division by zero does not occur&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include value zero in all calculations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include at least one in-range value&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include maximum and minimum range values&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include out of range values above the maximum and below the minimum&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that upper and lower values in ranges are handled correctly&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Alpha Field&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style="margin-left: 72pt;"&gt;&lt;li&gt;Use blank and non-blank data&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include lowest and highest values&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include invalid characters &amp;amp; symbols&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include valid characters&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include data items with first position blank&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include data items with last position blank&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Shortcut keys / Hot Keys&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;If there is any provision of shortcut keys or hot keys in the application, it should be tested. You should also make sure that you do not change generally accepted behaviour of hot keys. For example, ALT+F4 is used for closing the application and user will accept that to work in the same way for your application.&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse: collapse;" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 64px;"&gt;&lt;col style="width: 111px;"&gt;&lt;col style="width: 120px;"&gt;&lt;col style="width: 120px;"&gt;&lt;col style="width: 132px;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;Key&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: solid solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;No Modifier&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: solid solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;SHIFT&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: solid solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;CRTL&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: solid solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;ALT&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F1  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Help  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Enter Help Mode  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F2  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F3  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F4  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Close Document Window  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Close Application Window  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F5  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F6*  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Move Clockwise to next pane of active window  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Move Counter clockwise to next pane of active window &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Move to next document window; top window moves to bottom of stack (adding SHIFT reverses action : previous window moves to top. &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Move to application's next open non-document window (Adding SHIFT reverses order of movement)  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F7  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F8  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Toggle extend mode, if supported &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Toggle Add mode , if supported  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F9  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F10  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Toggle menu Bar activation  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;F11,F12  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;N\A  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Control Short Keys&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Recommended CTRL+Letter Shortcuts&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse: collapse;" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 178px;"&gt;&lt;col style="width: 182px;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border: 0.75pt solid ; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Key&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: solid solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Function&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;CTRL+Z  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Undo &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;CTRL+X  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Cut  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;CTRL+C  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Copy  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;CTRL+V  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Paste  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Suggested CTRL+Letter Shortcuts&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse: collapse;" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 178px;"&gt;&lt;col style="width: 182px;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border: 0.75pt solid ; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Key&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: solid solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Function&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;        &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;CTRL+N  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;New  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;CTRL+O  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Open  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;CTRL+P  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Print  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;CTRL+S  &lt;/p&gt;&lt;/td&gt;&lt;td color="-moz-use-text-color" style="border-style: none solid solid none; padding-left: 7px; padding-right: 7px;"&gt;&lt;p&gt;Save  &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-7459152510076515534?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/7459152510076515534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=7459152510076515534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/7459152510076515534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/7459152510076515534'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/specific-field-tests.html' title='Specific Field Tests'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-9054656914304375118</id><published>2008-08-08T09:12:00.002+05:30</published><updated>2008-08-11T15:59:56.583+05:30</updated><title type='text'>Screen Validation Checklist</title><content type='html'>&lt;span xmlns=""  style="font-size:100%;"&gt;&lt;p&gt;Along with compliance standard, aesthetic, navigation, usability etc also plays an important role in the GUI Testing and development. This checklist will help you get started with what should be tested as part of GUI testing.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;Aesthetic Conditions&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Is the general screen background the correct color?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Are the field prompts the correct color?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Are the field backgrounds the correct color?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;In read-only mode, are the field prompts the correct color?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;In read-only mode, are the field backgrounds the correct color?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Is all the screen prompts specified in the correct screen font?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Is the text in all fields specified in the correct screen font?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Are the entire field prompts aligned perfectly on the screen?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Are all the field edits boxes aligned perfectly on the screen?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Are all group boxes aligned correctly on the screen?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Should the screen be resizable?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Should the screen be minimisable?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Are the entire field prompts spelt correctly?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Are all character or alpha-numeric fields left justified? This is the default unless otherwise specified?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Are all numeric fields' right justified? This is the default unless otherwise specified?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Is all the micro help text spelt correctly on this screen?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Is all the error message text spelt correctly on this screen?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Is all users input captured in UPPER case or lower case consistently?&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Where the database requires a value (other than null) then this should be defaulted into fields. The user must either enter an alternative valid value or leave the default value intact.&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Assure that all windows have a consistent look and feel.&lt;em&gt;&lt;br /&gt;       &lt;/em&gt;&lt;/li&gt;&lt;li&gt;Assure that all dialog boxes have a consistent look and feel.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;Validation Conditions&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Does a failure of validation on every field cause a sensible user error message?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is the user required to fix entries which have failed validation tests?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Have any fields got multiple validation rules and if so are all rules being applied?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If the user enters an invalid value and clicks on the OK button (i.e. does not TAB off the field) is the invalid entry identified and highlighted correctly with an error message?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is validation consistently applied at screen level unless specifically required at field level?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For all numeric fields check whether negative numbers can and should be able to be entered.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For all numeric fields check the minimum and maximum values and also some mid-range values allowable?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For all character/alphanumeric fields check the field to ensure that there is a character limit specified and that this limit is exactly correct for the specified database size?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Do all mandatory fields require user input?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If any of the database columns don't allow null values then the corresponding screen fields must be mandatory. (If any field which initially was mandatory has become optional then check whether null values are allowed in this field.)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;Navigation Conditions&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Can the screen be accessed correctly from the menu?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can the screen be accessed correctly from the toolbar?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can the screen be accessed correctly by double clicking on a list control on the previous screen?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can all screens accessible via buttons on this screen be accessed correctly?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can all screens accessible by double clicking on a list control be accessed correctly?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is the screen modal? Is the user prevented from accessing other functions when this screen is active and is this correct?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can a number of instances of this screen be opened at the same time and is this correct?&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;Usability Conditions&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Are all the dropdowns on this screen sorted correctly? Alphabetic sorting is the default unless otherwise specified.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is all date entry required in the correct format?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Have all pushbuttons on the screen been given appropriate Shortcut keys?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Do the Shortcut keys work correctly?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Have the menu options which apply to your screen got fast keys associated and should they have?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Does the Tab Order specified on the screen go in sequence from Top Left to bottom right? This is the default unless otherwise specified.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Are all read-only fields avoided in the TAB sequence?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Are all disabled fields avoided in the TAB sequence?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can the cursor be placed in the micro help text box by clicking on the text box with the mouse?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can the cursor be placed in read-only fields by clicking in the field with the mouse?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is the cursor positioned in the first input field or control when the screen is opened?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is there a default button specified on the screen?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Does the default button work correctly?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When an error message occurs does the focus return to the field in error when the user cancels it?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When the user Alt+Tab's to another application does this have any impact on the screen upon return to the application?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Do all the fields edit boxes indicate the number of characters they will hold by there length? e.g. a 30 character field should be a lot longer&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;Data Integrity Conditions&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Is the data saved when the window is closed by double clicking on the close box?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check the maximum field lengths to ensure that there are no truncated characters?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Where the database requires a value (other than null) then this should be defaulted into fields. The user must either enter an alternative valid value or leave the default value intact.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check maximum and minimum field values for numeric fields?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If numeric fields accept negative values can these be stored correctly on the database and does it make sense for the field to accept negative numbers?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If a set of radio buttons represent a fixed set of values such as A, B and C then what happens if a blank value is retrieved from the database? (In some situations rows can be created on the database by other functions which are not screen based and thus the required initial values can be incorrect.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If a particular set of data is saved to the database check that each value gets saved fully to the database. I.e. beware of truncation (of strings) and rounding of numeric values.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;Modes Conditions (Editable / Read Only)&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Are the screen and field colors adjusted correctly for read-only mode?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Should a read-only mode be provided for this screen?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Are all fields and controls disabled in read-only mode?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can the screen be accessed from the previous screen/menu/toolbar in read-only mode?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can all screens available from this screen be accessed in read-only mode?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check that no validation is performed in read-only mode.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;General Conditions&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Assure the existence of the "Help" menu.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that the proper commands and options are in each menu.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that all buttons on all tool bars have a corresponding key command.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that each menu command has an alternative (hot-key) key sequence which will invoke it where appropriate.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In drop down list boxes, ensure that the names are not abbreviations / cut short&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In drop down list boxes, assure that the list and each entry in the list can be accessed via appropriate key / hot key combinations.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ensure that duplicate hot keys do not exist on each screen&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ensure the proper usage of the escape key (which is to undo any changes that have been made) and generates a caution message "Changes will be lost - Continue yes/no"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that the cancel button functions the same as the escape key.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that the Cancel button operates as a Close button when changes have been made that cannot be undone.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that only command buttons which are used by a particular window, or in a particular dialog box, are present. - I.e. make sure they don't work on the screen behind the current screen.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When a command button is used sometimes and not at other times, assures that it is grayed out when it should not be used.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that OK and Cancel buttons are grouped separately from other command buttons.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that command button names are not abbreviations.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that all field labels/names are not technical labels, but rather are names meaningful to system users.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that command buttons are all of similar size and shape, and same font &amp;amp; font size.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that each command button can be accessed via a hot key combination.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that command buttons in the same window/dialog box do not have duplicate hot keys.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that each window/dialog box has a clearly marked default value (command button, or other object) which is invoked when the Enter key is pressed - and NOT the Cancel or Close button&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that focus is set to an object/button which makes&lt;br /&gt;sense according to the function of the window/dialog box .&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that all option buttons (and radio buttons) names&lt;br /&gt;are not abbreviations.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that option button names are not technical labels,&lt;br /&gt;but rather are names meaningful to system users.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If hot keys are used to access option buttons, assure that duplicate hot keys do not exist in the same window/dialog box.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that option box names are not abbreviations.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that option boxes, option buttons, and command&lt;br /&gt;buttons are logically grouped together in clearly demarcated areas "Group Box"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that the Tab key sequence which traverses the&lt;br /&gt;screens does so in a logical way.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure consistency of mouse actions across windows.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that the color red is not used to highlight active objects (many individuals are red-green color blind).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that the user will have control of the desktop with&lt;br /&gt;respect to general color and highlighting (the application should not&lt;br /&gt;dictate the desktop background characteristics).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assure that the screen/window does not have a cluttered appearance&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ctrl + F6 opens next tab within tabbed window&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Shift + Ctrl + F6 opens previous tab within tabbed window&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tabbing will open next tab within tabbed window if on last field of current tab&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tabbing will go onto the 'Continue' button if on last field of last tab within tabbed window.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tabbing will go onto the next editable field in the window&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Banner style &amp;amp; size &amp;amp; display exact same as existing windows&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If 8 or less options in a list box, display all options on&lt;br /&gt;open of list box - should be no need to scroll&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;li&gt;Alt+F4 should close the tabbed window and return to previous screen&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-9054656914304375118?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/9054656914304375118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=9054656914304375118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/9054656914304375118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/9054656914304375118'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/screen-validation-checklist.html' title='Screen Validation Checklist'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-3652741347717884230</id><published>2008-08-08T09:10:00.001+05:30</published><updated>2008-08-08T09:26:44.073+05:30</updated><title type='text'>GUI Testing Checklist - 2</title><content type='html'>&lt;span xmlns=""  style="font-size:100%;"&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span style=";font-family:Arial;" &gt;&lt;em&gt;Text boxes&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Move mouse to textbox and it should be changed to insert bar for editable text field and should remain unchanged for non-editable text field.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Test overflowing textbox by inserting as many characters as you can in the text field. Also test width of the text field by entering all capital W.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Enter invalid characters, special characters and make sure that there is no abnormality.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;User should be able to select text using Shift + arrow keys. Selection should be possible using mouse and double click should select entire text in the text box.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=";font-family:Arial;" &gt;&lt;em&gt;Radio Buttons&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Only one should be selected from the given option.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;User should be able to select any button using mouse or key board&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Arrow key should set/unset the radio buttons.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=";font-family:Arial;" &gt;&lt;em&gt;Check boxes&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;User should be able to select any combination of checkboxes&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Clicking mouse on the box should set/unset the checkbox.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Spacebar should also do the same&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=";font-family:Arial;" &gt;&lt;em&gt;Push Buttons&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;All buttons except OK/Cancel should have a letter access to them. This is indicated by a letter underlined in the button text.  The button should be activated by pressing ALT&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Clicking each button with mouse should activate it and trigger required action.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Similarly, after giving focus SPACE or RETURN button should also do the same.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;If there is any Cancel button on the screen, pressing Esc should activate it.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=";font-family:Arial;" &gt;&lt;em&gt;Drop down list boxes&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Pressing the arrow should give list of options available to the user. List can be scrollable but user should not be able to type in.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Pressing Ctrl-F4 should open the list box.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Pressing a letter should bring the first item in the list starting with the same letter.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Items should be in alphabetical order in any list.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Selected item should be displayed on the list.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;There should be only one blank space in the dropdown list.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=";font-family:Arial;" &gt;&lt;em&gt;Combo Box&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Similar to the list mentioned above, but user should be able to enter text in it.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=";font-family:Arial;" &gt;&lt;em&gt;List Boxes&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Should allow single select, either by mouse or arrow keys.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Pressing any letter should take you to the first element starting with that letter&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;If there are view/open button, double clicking on icon should be mapped to these behavior.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;" &gt;Make sure that all the data can be seen using scroll bar.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-3652741347717884230?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/3652741347717884230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=3652741347717884230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3652741347717884230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3652741347717884230'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/gui-testing-checklist-2.html' title='GUI Testing Checklist - 2'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-8927160176469810684</id><published>2008-08-07T18:14:00.001+05:30</published><updated>2008-08-08T09:06:51.512+05:30</updated><title type='text'>GUI Testing Checklist - 1</title><content type='html'>&lt;span xmlns=""  style="font-size:100%;"&gt;&lt;p&gt;Purpose of this GUI Testing Checklist is to make sure that GUI of all the applications at &amp;lt;XYZ Organization&amp;gt; are developed and tested according to the known and understood standard. This checklist can give some guidance to the development team as well as QE team. Development team should make sure that during the development they follow guidelines related to the compliance, aesthetics, navigation etc. Onus of testing GUI is on the QE team. Appropriate defect should be raised in the &amp;lt;DTS&amp;gt; system, indicating defect and other relevant information.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This GUI test checklist will ensure that all the GUI components are thoroughly tested. This checklist is categorized according to the following sub-sections –&lt;br /&gt;&lt;/p&gt;&lt;ul style="margin-left: 39pt;"&gt;&lt;li&gt;Windows compliance standards&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Validation checklist for tester&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Field specific test&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Short-cut keys and hot keys&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Windows Compliance Standards&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;These compliance standards are followed by almost all the windows based application. Any variance from these standards can result into inconvenience to the user. This compliance must be followed for every application. These compliances can be categorized according to following criteria&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;Compliance for each application&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Application should be started by double clicking on the icon.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Loading message should have information about application name, version number, icon etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Main window of application should have same caption as the icon in the program manager.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Closing of the application should result in "Are you sure?" message.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Behaviour for starting application more than once must be specified.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Try to start application while it is loading&lt;br /&gt;&lt;/li&gt;&lt;li&gt;On every application, if application is busy it should show hour glass or some other mechanism to notify user that it is processing.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Normally F1 button is used for help. If your product has help integrated, it should come by pressing F1 button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Minimize and restoring functionality should work properly&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-left: 18pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;em&gt;Compliance for each window in the application&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Window caption for every application should have application name and window name. Specially, error messages.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Title of the window and information should make sense to the user.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If screen has control menu, use the entire control menu like move, close, resize etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Text present should be checked for spelling and grammar.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If tab navigation is present, TAB should move focus in forward direction and SHIFT+TAB in backward direction.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tab order should be left to right and top to bottom within a group box.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If focus is present on any control, it should be presented by dotting lines around it.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;User should not be able to select greyed or disabled control. Try this using tab as well as mouse.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Text should be left justified&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In general, all the operations should have corresponding key board shortcut key for this.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;All tab buttons should have distinct letter for it.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To be continued…………&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-8927160176469810684?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/8927160176469810684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=8927160176469810684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8927160176469810684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8927160176469810684'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/gui-testing-checklist.html' title='GUI Testing Checklist - 1'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-9196605216100196024</id><published>2008-08-07T17:58:00.001+05:30</published><updated>2008-08-07T17:58:35.543+05:30</updated><title type='text'>Testing Measurement</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Someone has rightly said that if something can not be measured, it can not be managed or improved. There is huge value in measurement, but you should always make sure that you get some value out of any measurement that you are doing. You should be able to answer the following questions:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;What is the purpose of this measurement program?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What data items you are collecting and how you are reporting it?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What is the correlation between the data and conclusion?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Value addition: &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Any measurement program can be divided into two parts. The first part is to collect data, and the second is to prepare metrics/chart and analyses them to get the valuable insight which might help in decision making. Information collected during any measurement program can help in:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Finding the relation between data points,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Correlating cause and effect,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Input of future planning.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Normally, any metric program involves certain steps which are repeated over a period of time. It starts with identifying what to measure. After the purpose is known, data can be collected and converted into the metrics. Based on the analysis of these metrics appropriate action can be taken, and if necessary metrics can be refined and measurement goals can be adjusted for the better.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Data presented by testing team, together with their opinion, normally decides whether a product will go into market or not. So it becomes very important of test team to present data and opinion in such a way that data looks meaningful to everyone, and decision can be taken based on the data presented.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Every testing project should be measured for its schedule and the quality requirement for its release. There are lots of charts and metrics that we can use to track progress and measure the quality requirement of the release. We will discuss here some of the charts and the value addition that they bring to our product.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Defect Finding Rate&lt;/strong&gt;: This chart gives information on how many defects are found across a given period. This can be tracked on a daily or weekly basis.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Defect Fixing Rate&lt;/strong&gt;: This chart gives information on how many defects are being fixed on a daily/weekly basis.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Defect Distribution across components&lt;/strong&gt;: This chart gives information on how defects are distributed across various components of the system.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Defect Cause Distribution chart&lt;/strong&gt;: This chart given information on the cause of defects.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Closed defect distribution&lt;/strong&gt;: This chart gives information on how defects with closed status are distributed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Test Case Execution&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Traceability Matrics&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Functionality Coverage.&lt;/strong&gt;&lt;br /&gt;				&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Platform Matrics.&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-9196605216100196024?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/9196605216100196024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=9196605216100196024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/9196605216100196024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/9196605216100196024'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/testing-measurement.html' title='Testing Measurement'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-2150025486717847476</id><published>2008-08-07T17:43:00.001+05:30</published><updated>2008-08-07T17:43:58.307+05:30</updated><title type='text'>Software Testing is a creative field or not?</title><content type='html'>&lt;span xmlns=''&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:630px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px' vAlign='middle'&gt;&lt;p&gt;This question was asked by Dina in SQATester yahoo groups. Various reasons were discussed on why software testing is a creative career. This was the original question&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;I'm a senior computer engineering student and I'm really considering testing as a career. I did an internship last summer and as fun as it was, I was disappointed. My question is this: I felt the problem is that the software produced is very much alike and so it turns the testing process to a routine. If you have this, you do that, end of story. I'm not sure if that was related to the whole career or was it just because the project I was working on was like that? Because the main reason I went into the testing career (or looking into it to be exact) is the creativity, not to mention that (I was told) I fit the description. I'd appreciate some guidance :)&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Greg Ventura&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;Testing is as creative as your company/boss allows it to be.&lt;br/&gt;&lt;br/&gt;Maybe look for a company that is just getting into serious testing? That way they might not have much established and you can provide some of the direction for them.&lt;br/&gt;&lt;br/&gt;I would not 100% trust someone who tells you that you fit the description of a tester. They have some pre-conceived idea of what a tester does and they think you possess those qualities. Do you trust this person? I have seen people tell programmers or computer engineers that they should be testers. It was their way of saying; you are not good enough to be a programmer, so go test.&lt;br/&gt;&lt;br/&gt;My personal opinion is that testing can be a very creative process.&lt;br/&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Costinn&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;for me testing is creative, because I am working in a railway environment (interlocking solutions - mainly black box testing) and I have the chance to learn the rail philosophy from different countries from Europe, so the writing of the test cases is a great challenge for me, especially when you have to understand the requirements and in the same time, the safety conditions for each country.&lt;br/&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Geek&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;Lets start with your question by what do you mean by being creative? If you mean that you can apply your brain and solve problems that possibly add value to some one, testing will certainly fit the bill. We question product to validate the claims made by developers and give our opinion on whether product is good enough or not to solve some problems for its end user. It is very creative.&lt;br/&gt;&lt;br/&gt;Since you are still in final year and have some time before you can take decision on what you want to do, learn as much about testing as you can. Take a informed decision, in this forum you will hardly get some one saying that testing is not creative. We do testing for our living and enjoy it, thats why we participate in forums like this. Hope it helps.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Andrew&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;In Software Testing, ideas are not soda cans. Recycling sucks. I was recently asked an intriguing question at my blog. The question was simple: do you have to be a programmer to write automated tests? Everything's conditional. You just can't always anticipate the conditions. But I struggled a bit to answer the question because to me the answer is not as simple as yes or no. But I have a feeling that well-considered thought to the question is at the heart of what happens to the future of automated testing. Just because its in explicated doesn't mean it's inexplicable. Many career testers are feeling the pressure of picking up 'automated testing' skills in today's job market because every IT company wants it. On the one hand, it's not fair to put someone into the position of architecting and building or even maintaining an automated test system without having any education\understanding of the sound programming skills and practices that are necessary. You guys are still thinking like software developers when you should be thinking like plumbers. Come on, I wanna see some butt crack.&lt;br/&gt;&lt;br/&gt;Union rules. I can't check out this software coder seeping gonorrhea this close to lunch. On the other hand, why would anyone with good programming skills choose to enter into the thankless, dead-end, glass-domed, low-paying and under-respected testing career path? Let's be honest, they wouldn't unless they recognized it as an entry point into a much more lucrative development career path. Oh! Level Three. Have you called Jack Bauer? I know I'm an ass&lt;br/&gt;&lt;br/&gt;The latter is exactly the reason multi-billion dollar corporations have recognized that there's a huge market in creating easy to use automated test tools that require special skills to operate but no programming is necessary to be up and running and fairly successful in a short period of time. I think Mercury and IBM haven't done us any favors though. They're marketing these 'record-and-playback' tools (in a way that's reminiscent of Sun Microsystems early Java marketing) as entry level tools and creating a misperception in the market-place that deep technical knowledge and understanding of software systems is not necessary for automated testing. When my boss claims that I can't test anything on an abnormal environment, I say that's so close-minded! It's not "abnormal", It's special :-P It sounds as if I'm leaning strongly towards a 'yes you pretty much do have to be a programmer to write automated tests.' doesn't it? So this is where my brain starts to spin in circles as I contemplate the paradox we're in. If you think about it, automated testing is right now about where we were in 1995 with web application development. (And yes I am actually old enough to speak from experience about that). My work is like an intricate Austrian metro system. All trains run on time. I believe automated testing has absolutely tremendous potential and we haven't even cracked the egg yet. There are so many frontiers to explore in this arena such as artificial intelligence, service-oriented testing, and intelligent dimensional data analysis&lt;span style='font-family:Arial Unicode MS'&gt;�&lt;/span&gt;the list goes on. What else turns you on? Drugs? Casual Sex? Rough sex? Casual rough sex on drugs? I'm an tester, need to know...&lt;br/&gt;&lt;br/&gt;So how do we convince the bright, talented innovative thinkers in IT that automation can be a destination too, not just a path to another better job? I really don't know any quick answers as the problem is a systemic one and touches on the mindset of the whole industry. What am I looking for? Same as you. Love, acceptance, a solid return in investment... Distractions&lt;br/&gt;&lt;br/&gt;My two big suggestions are to:&lt;br/&gt;&lt;br/&gt;1. Raise the bar in how we define the skill set needed to do this work and realize that an automated test developer is actually a programmer and 2. Open up research and development projects that make automated testing a destination instead of a half-way house.&lt;br/&gt;&lt;br/&gt;I thought I'd get your theories, mock them, and then embrace my own. The usual...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Rajesh&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;Indeed..Raise the bar .. If some one starts thinking verification and validation is the only process in testing it could be boring for anyone ..If some one asks you to just test using the test cases given by a client its indeed boring &lt;br/&gt;&lt;br/&gt;Everyone needs to come out of the shell, Question the requirement /Specification and think your self as a user and enggr going to impement the same Question the design.. Because the developer will think only abt his module ..come out of the box and think abt the impact Question the code ..I mean read it .. You need to know how object oriented programs work, How operating system work, what is memory, how to handle multi threaded applications, What the heck is RBBMS.. ultimately any programming language has to use all of this ..if or for or while is common ..object is common.. and prevent bugs rather than fixing them later on&lt;br/&gt;&lt;br/&gt;Design your test cases with customer focus and engineering knowledge&lt;br/&gt;&lt;br/&gt;As for automated testers I use the junior Enggrs to record and play back ..Seniors, I will use them for designing and coming up with scenarios and figure out what needs to be automated.&lt;br/&gt;&lt;br/&gt;Security,Performance,Reliability, Capability,Usability, I18n,L10n,I508 .. there are more&lt;br/&gt;&lt;br/&gt;This is just a start as you grow you need to raise bar and learn new things..&lt;br/&gt;&lt;br/&gt;As long as you learn every day, everything is creative....&lt;br/&gt;&lt;br/&gt;A Thought :&lt;br/&gt;"I am a tester not because I cannot write code as good as a developer. But because I can help them create better software"&lt;br/&gt;Think abt the situation if you are just worried abt the program you write ..who will think of the problems it can cause when it works together with other programs&lt;br/&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Walter&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;I think it's time that I comment, especially in light of the comments made by one group member, who I've warned--off-list--for making personal attacks on group members.&lt;br/&gt;&lt;br/&gt;Is testing creative? There are a few issues to consider.&lt;br/&gt;* What does creative mean to you? Does it mean you have a lot of opportunities to express yourself. Does it mean that you will do many diverse things? Does it mean that you don't do the same thing over and over?&lt;br/&gt;* What are you comparing it to? The construction industry? A job as a lab technician? One in the legal profession? Life as a chef? A job in a traditionally "creative field"? Depending on that criteria, you could come up with a different answer.&lt;br/&gt;&lt;br/&gt;It also depends on where you are working and how your company approaches testing. It also depends on the "school" of testing that is used. Most beginning testing jobs are in companies where you simply perform the same steps over and over. That can be very uncreative. However as you advance, you have to learn to write those steps. That can be creative. Also, in these companies, you may be required to find novel solutions to produce or&lt;br/&gt;reproduce certain scenarios.&lt;br/&gt;&lt;br/&gt;However, if you find yourself working in a company that encourages exploratory testing, either as your primary testing activity or in support of "scripted" testing, then you will have a very creative job. You have to think about the system under test and how to expose bugs.&lt;br/&gt;&lt;br/&gt;I'll address this one other way: your job is only as creative as YOU make it. One taxi driver could say that his job is not creative because all he does is drive passengers around all day. Another taxi driver could say that it creative because she tries to find the best routes. Another could say it's creative because he enjoys meeting the people that he drives. It's the same with testing. It is only as creative as make it.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Bernard Homes&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;As you are a Computer engineering student, I will assume that you are comparing the creativity from testers to the ceativity from Developpers.&lt;br/&gt;&lt;br/&gt;As in many different professions, opportunities for creativity exist, but they are not all available at all levels. Comparin the tester's goals to the developper's goal, you can say that the developer looks for _one_ solution that fits the specifications, while the tester has to (should) find _all_ the defects that were introduced in the development process (from specificaiton to code). As such the challenge is much more interesting, just as the challenge for the "hunter" is greater than for the "harvester".&lt;br/&gt;&lt;br/&gt;You will enjoy creativity in coming up with different attacks (methods for finding defects) to show presence (or absence) of defects. However, it is most likely that you will first have to execute tests created by others (less creativity here). Then you will have enough understanding of the different types of possible defects, and conceive new tests that others will execute (more creativity).&lt;br/&gt;&lt;br/&gt;In the end you may come up with completely new paradigms on testing, and that is the greatest creativity possible (IMHO).&lt;br/&gt;&lt;br/&gt;What you will always find are different views by people who are considered to belong to "schools" of thoughts, and you will have to understand that there is not a single method (suggested by a school [any school]) that will be able to be used in all the different contexts you may encounter.  And here is the greatest creativity of all: be able to design the best set of tests to find the largest number of most important defects in the systems that you will test. And I am speaking of systems, so you will have to learn about many different environments, hardware, software (and software languages), and the context where these systems are being used.&lt;br/&gt;&lt;br/&gt;The creativity is not based on company, nor on the team where you will work. It is based only on how you look at your work: if you limit yourself to executing again and again the same activity (without learning new things) then it will not be creative. If you limit the scope of your thoughts to one school of thinking (schools) the same thing will happen, and you will not find creativity. On the other hand, if you challenge your own knowledge and try to expand it always, then you will have the opportunity to be both creative and recognized by your peers.&lt;br/&gt;&lt;br/&gt;With over 26 years in experience, 15 of which in development, I can tell you that I never had as much fun in development as i have now in testing.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-2150025486717847476?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/2150025486717847476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=2150025486717847476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2150025486717847476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2150025486717847476'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/software-testing-is-creative-field-or.html' title='Software Testing is a creative field or not?'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-822462516230324809</id><published>2008-08-07T17:32:00.001+05:30</published><updated>2008-08-07T17:32:39.531+05:30</updated><title type='text'>Testing Humor</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Top replies by programmers when their programs don't work:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;"It works fine on My computer"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"Who did you login as?"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"It's a feature"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"That's weird…"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"It's never done that before"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"It worked yesterday"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"How is that possible?"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"It must be a hardware problem."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"What did you type in wrong to get it to crash?"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"There is something funky in your data"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"I haven't touched that module in weeks!"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"you must have the wrong version"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"It's just some unlucky coincidence."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"THIS can not be the source of THAT"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"It works, but it's not been tested:"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"Somebody must have changed my code."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"Did you check for a virus on your system?"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"Even though it doesn't work, how does it feel?"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"You can't use that version on your system."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"Why do you want to do it that way?"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"Where were you when the program blew up?"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"I thought I fixed that."&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-822462516230324809?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/822462516230324809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=822462516230324809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/822462516230324809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/822462516230324809'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/testing-humor.html' title='Testing Humor'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-8107322388058183255</id><published>2008-08-07T17:18:00.001+05:30</published><updated>2008-08-07T17:18:48.622+05:30</updated><title type='text'>Web Application Security Testing - Part 2</title><content type='html'>&lt;span xmlns=''&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:630px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Hope that you have already read first part of this article and familiar with the concept of how web applications are different from traditional client-server applications. If you have not, you might find it useful to read part – 1 as well.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;In this part we will explore what kind of information is available to the client? What kind of information can be gathered from the pages which client can access? How validation is important to ensure proper security for the web application? What are cookies and how web applications use them? &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;It is very important in web application security testing to gather as much information about your application as you can. You need to find out how people outside your organization will access your web application and what kind of information they can access. Typical information that will be available to any person outside your organization could be categorized as &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Comments &amp;amp; Sensitive information embedded in the HTML source code&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Error messages generated at the server and HTTP response returned.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Application error message  &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;During web application development, it is very important to think about these aspects. Comments or sensitive information can be very useful for you while developing and maintaining the code, but if it is accessed by malicious user it can be dangerous. Similarly, detailed error messages given to improve usability can results in the security loophole.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;HTML source present on the client side can be an excellent source of information for the attacker. It is very easy for everyone to view HTML source code and since it is not compiled, there is no way to hide HTML comments. For testing web applications for security, you should look for the sensitive information like passwords, usernames, database names, connection strings etc. As a person responsible for security testing you need to make sure that sensitive information is not present in the HTML source code. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;In order to start attack on any web application, it is important to know how its pages can be accessed, what kind of data and parameters are passed from one page to another. You can keep an eye on the URL for this purpose and look for key-value pairs.  You should always consider creating page map of your site containing this information. You can use tool or can create it manually by navigating to all the pages and making appropriate maps. After you have created this page map, you can search HTML source for specific strings containing information related to HTML comments, Application Comments, IP Address, E-Mail Address, SQL Queries, Database Connection Strings, Hidden input fields etc.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;If you try to change parameters selected during this process and resubmit the request, you can find interesting information in error messages. Sometimes server or application throws overly helpful error messages which can give subtle hints to the attackers.  For example on supplying invalid password during login process if system throws error like 'invalid password', it essentially means that username is proper. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Page map created earlier can also help you in guessing file names and directory structure present on the web server. Using this technique you can access files for which there is no link present on the pages, or which is not intended to be visible to the user. You must always check for the presence of any pattern in file names and location. Files which should not be viewed by clients should be located in places not accessible to the clients. Using this technique of educated guessing, malicious users can even access admin or control panel of the website, which usually runs as a separate sub-site or run on a different port. These type of loopholes can be identified easily by tools like port scanners and other brute-force tools.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Vulnerability of the web application can also be exposed by manipulating UI controls. For example, you might have used websites containing list boxes to take user input. Reason for providing list box is to make sure that client do not choose any other option apart from whatever is supplied in the list. It is very easy for development team to make this assumption and not do any other form of validation. What they fail to realize is that, these values can be changed by making changes in the page source even request can be tampered on transit using appropriate tools. Also if validations are present at the client-side, it is still possible to bypass those validations. This could be achieved either by disabling the java scripts or saving a local copy of the file and removing those validations. To safeguard from these vulnerabilities, it is essential to make sure that validations are present on the server side as well.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Another thing that should be checked at the client side is cookies. For people not familiar with cookies, cookies are small files of textual data that a web application writes on a client's hard drive. Web application can reuse this data on subsequent visits. Cookies can be delivered by web application using either persistent/non-persistent and secure/non-secure mode.  Cookies can be used for personalization or making sure that information is not accessed after it is expired. There are many ways in which cookies can be used. Cookies are normally stored at predefined location with predefined formats. If your application relies on cookies for any functionality, it is essential for you to make sure that tempered cookies can not be used with your application.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Hope after understanding the different ways in which security can be compromised, you will appreciate  the importance of security testing of web applications. In the next article, we will explore how data supplied by client can be tempered and servers can be attacked.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;These articles are influenced by the book &lt;em&gt;( "How to Break Web Software" from Mike Andrews and James A. Whittaker )&lt;/em&gt; I have recently read and should be a good read for you if you need information on web application security testing. &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-8107322388058183255?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/8107322388058183255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=8107322388058183255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8107322388058183255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8107322388058183255'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/web-application-security-testing-part-2.html' title='Web Application Security Testing - Part 2'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-641842906738318107</id><published>2008-08-07T17:15:00.001+05:30</published><updated>2008-08-07T17:15:48.537+05:30</updated><title type='text'>Web Application Security Testing - Part1</title><content type='html'>&lt;span xmlns=''&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:630px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Web application and Client-Server, are they same? This question is very common in software testing interviews, if you are part of some e-groups related to testing, you might have heard it many times from different people.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;There are numerous differences in Client-Server and Web application architecture. As a tester if you are testing Web applications, it is important to understand what Client-Server architecture is and how Web is different from traditional Client-Server architecture.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Web is a specialized version of client server network, but it has got noticeable differences. In client server network, computing resources are conserved by delegating complex and time consuming task to powerful, expensive computers called server. These server machines are much more powerful in terms of large storage and computing power. They do all the computing and delivers result back to the machines called client over a communication path. Thus client-server architecture comprises of server, client and communication path connecting them. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;If you see at the lower level, client server architecture is not that simple. In order to connect two computers, you need network level protocol, you need proper software at client side and server side to send and receive data over network. You need to take care of data loss during transmission, bandwidth issues, dropped connectivity etc. Most of these issues are already addressed by protocols like TCP/IP, UDP, ARP etc. and developers face very little problem in implementing them. These protocols are backbone of the client server architecture.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;WWW was developed on top of existing client server architecture. It came into existence as a replacement for FTP and email as a mechanism of sharing files and data. New development in servers to handle more requests, new client software to connect and browse resources on server; new development like HTTP, HTML etc fueled the growth of Web. Main component of the Web architecture is the Web Server, which can serve request from any client. Initially, web started serving static content and soon it was explored for the possibility of doing much more than just static content.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Even though Web is built on top of client server, there are noticeable differences. For example&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Web is a special case of client server architecture in which fat clients are used to communicate with the server using variety of protocols and standards like HTTP, HTML, XML, SOAP etc.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;In client server architecture, both client and server exist within the walls of a single company, thus operates in a protected environment. Clients in that case become the trusted user. Web is different, since client can connect server from anywhere thus not a single connection can be treated as trusted.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Because client server is typically within a company's firewall, issues related to security are not as important as in Web applications.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;In client server architecture, clients are controlled as in who can access, how clients will communicate and use server's resources etc. In Web, mostly anyone with a browser can connect to the Web.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;In client server architecture, every client is known; every request received by server will have information on who originated this request. In Web, users are anonymous thus pose a greater security risk.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Web gives more opportunity to malicious users to tamper data at the client side as well as at the network level. Chances of data being tampered in the traditional client server architecture are much lesser as compare to Web.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Number of clients that can be connected to the server is predictable and can be controlled in the traditional client server, but it can not be controlled in the Web.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Clients are much more controlled in client-server. Which OS they will use, which platform they will run on, what browser will be used every thing can be controlled. In comparison to that, nothing can be controlled in Web.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt; Because of the fact that both are different, testing applications in client server, or web will also be different. The main areas where the testing gets affected can be summarized as:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Business Logic: Mostly in the cases of Client-Server client side business logic needs to be tested which is mostly not needed in for the web-based applications.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Platform / OS Dependence: The web based applications are O/S independent; they just need to be tested on different browsers. The Client-Server applications depend upon the Platform/ OS used, which accentuate their testing on different Platforms and OS. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Scalability: Web based Application have to be tested for performance against thousands of simultaneous users. This number will be considerably less for Client Server application&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-size:10pt'&gt;Security: This forms an integral part of web based applications but it might be relaxed just a bit for Client Server applications. The reason for this relaxation is based on the fact that the in case of Client-server interaction is taking place mostly between the trusted/known sources which is not the case for web based applications.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt; In a nutshell it can be stated that although web-based applications are a special case of client-server applications, yet their testing differ in many areas. All the areas identified above need to be addressed adequately in your testing, specially security since every client connected in the web environment is a potential threat to the system.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Hope with this article you can appreciate the difference between client-server architecture and web application architecture. Also, how testing applications based on these architecture is different from one another. Importance of security testing in the web application testing is also established in this article. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;Next article will take this subject further and discuss various techniques and tools to perform security testing for web applications.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;These articles are influenced by the book &lt;em&gt;( "How to Break Web Software" from Mike Andrews and James A. Whittaker )&lt;/em&gt; I have recently read and should be a good read for you if you need information on web application security testing.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-641842906738318107?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/641842906738318107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=641842906738318107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/641842906738318107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/641842906738318107'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/web-application-security-testing-part1.html' title='Web Application Security Testing - Part1'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-530084173870178536</id><published>2008-08-06T11:41:00.001+05:30</published><updated>2008-08-06T11:41:23.936+05:30</updated><title type='text'>Sending Mail from QTP using OutLook</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;As a generic Automation requirement most of the projects look at automatic emails being sent after QTP script executes or ends in a failure. Generally,  outlook is configured on the systems on whissing Outlook from QTP.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;'*******************************************************************************&lt;br/&gt;' Function: Outlook_SendEmail&lt;br/&gt;'&lt;br/&gt;' Sends an email using Outlook.&lt;br/&gt;'&lt;br/&gt;' Input Parameters:&lt;br/&gt;'&lt;br/&gt;' strTo - The email address or Outlook contact to whom the email should be sent.&lt;br/&gt;' strSubject - The email's subject.&lt;br/&gt;' strBody - The email's body (this may of course include newline characters).&lt;br/&gt;'&lt;br/&gt;' Output Parameters:&lt;br/&gt;'&lt;br/&gt;' None.&lt;br/&gt;'&lt;br/&gt;' Returns:&lt;br/&gt;'&lt;br/&gt;' Not applicable.  This is a sub, not a function.&lt;br/&gt;'&lt;br/&gt;Sub Outlook_SendEmail(strTo, strSubject, strBody)&lt;br/&gt;'TODO: maybe add support for CC, BCC, etc?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;  'Create an Outlook object&lt;br/&gt;  Dim Outlook 'As New Outlook.Application&lt;br/&gt;  Set Outlook = CreateObject("Outlook.Application")&lt;br/&gt; &lt;br/&gt;  'Create a new message&lt;br/&gt;  Dim Message 'As Outlook.MailItem&lt;br/&gt;  Set Message = Outlook.CreateItem(0)&lt;br/&gt;  With Message&lt;br/&gt;    'You can display the message To debug And see state&lt;br/&gt;    '.Display&lt;br/&gt;   &lt;br/&gt;    .Subject = Subject&lt;br/&gt;    .Body = TextBody&lt;br/&gt;   &lt;br/&gt;    'Set destination email address&lt;br/&gt;    .Recipients.Add (strTo)&lt;br/&gt;   &lt;br/&gt;    'Set sender address If specified.&lt;br/&gt;    'Const olOriginator = 0&lt;br/&gt;    'If Len(aFrom) &amp;gt; 0 Then .Recipients.Add(aFrom).Type = olOriginator&lt;br/&gt;   &lt;br/&gt;    'Send the message&lt;br/&gt;    .Send&lt;br/&gt;  End With&lt;br/&gt;End Sub&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-530084173870178536?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/530084173870178536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=530084173870178536' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/530084173870178536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/530084173870178536'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/sending-mail-from-qtp-using-outlook.html' title='Sending Mail from QTP using OutLook'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-3722380712498777373</id><published>2008-08-06T11:40:00.001+05:30</published><updated>2008-08-06T11:40:09.785+05:30</updated><title type='text'>Working with Excel objects in QTP</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;We create framework for automating the application. For this we need the independent structure for reporting and data. Excel plays a very important role in this approach.&lt;br/&gt; &lt;br/&gt;QTP has its own test result displaying mechanism in the predefined format. Once the test is run, the result sheet is generated which gives you the insight of the script – stating the point of failures, warnings and passes.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;We create customized checkpoint in the script and it is possible to customize the result file also depending upon the checkpoint created will be passed or failed.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;In most of the cases we want to create summarized or detailed report of the entire test in excels. The reason to create customized report is that one is able to keep the file in central location and to create the report in our own format.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;In this article we are going to learn the interaction of Excel with VBScript.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;The whole mechanism goes in the following steps:&lt;br/&gt;1. Understanding the hierarchy of Excel Application.&lt;br/&gt;2. Creating the Excel Object&lt;br/&gt;3. Opening an existing workbook or creating the new one&lt;br/&gt;4. Setting the objects for various sheets in workbook.&lt;br/&gt;5. Writing and fetching the data values in the cells.&lt;br/&gt;6. Saving  and closing the workbook&lt;br/&gt;7. Closing the application and releasing the memory&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;We will go through each of the above stated steps with a suitable example to understand the approach properly.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Understanding the hierarchy of Excel Application&lt;br/&gt;&lt;/strong&gt; &lt;br/&gt;We will not go into the details of the complete hierarchy of the Excel application but to the extend what is required.&lt;br/&gt; &lt;br/&gt; Excel Application&lt;br/&gt;  Workbooks&lt;br/&gt;   Sheets&lt;br/&gt;    Cells&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Creating the Excel Object&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;The first step towards the process of reporting via excel is to create object of Excel. Reporting in Excel can either be done in backend, without making the application visible or u can make it appear to user once the process of writing or fetching the data is going. In either way creating of the Excel Application object is required.&lt;br/&gt;It goes as:&lt;br/&gt; Dim xl&lt;br/&gt; Set xl = CreateObject("Excel.Application")&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Opening an existing workbook or creating the new one&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Once the excel object has been created, it means that excel application has been invoked but is not visible. So either one can perform the operations like that or make the application visible and then perform the operations.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To make the application visible:&lt;br/&gt; xl.visible = true&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To open a new Workbook:&lt;br/&gt; xl.workbooks.Add&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To open an existing Workbook:&lt;br/&gt; xl.workbooks.Open("File Name with complete path")&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Setting and accessing the objects of sheets in workbook.&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Once the workbook has been opened, either existing or new one, we need to write some data in various cells in various sheets of that workbook.&lt;br/&gt;By default there are 3 sheets in a workbook and various operations can be performed on. So one need create the object to reference these sheets as it becomes easy to access them and you don't have to mention the complete hierarchy over and over again.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Say one has to create a reference for sheet with index i, which starts from 1&lt;br/&gt; Set sht1 = xl.activeworkbook.sheets(i)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;One can add or delete n number of sheets from the activeworkbook&lt;br/&gt;To add a sheet in workbook –&lt;br/&gt; xl.activeworkbook.sheets.add&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To delete a particular sheet where i represent the index which starts from 1 –&lt;br/&gt; xl.activeworkbook.sheets(i).delete&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To change the name of the sheets –&lt;br/&gt; xl.activeworkbook.sheeets(i).name = "Name of your choice"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To count the total number of sheets in the workbook&lt;br/&gt; Cnt = xl.activeworkbook.sheets.count&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Writing and fetching the data values in the cells&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To write the data in Excel sheet, one should know the cell address in which the data has to be written. Same thing goes for accessing the data from the cells&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To write the data in sheet2 cell address as D8, we write the following command. Cell address here is represented by row number followed by column number –&lt;br/&gt; xl.activeworkbook.sheets(2).cells(8,4) = "hello"&lt;br/&gt;To fetch the data from sheet3 cell address A7 –&lt;br/&gt; Val = xl.activeworkbook.sheets(3).cells(7,1)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;If one has already created the object of the particular sheet, you don't have to write the complete hierarchy but simply –&lt;br/&gt; Object.cells(row,col) = value&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Saving and closing the workbook&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Once the work completed you can save the newly created workbook to a specified location or save the changes made to already existing opened workbook.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To save as in case of new workbook&lt;br/&gt; xl.activeworkbook.saveas "path_with_file_name.xls"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To save in case of existing workbook&lt;br/&gt; xl.activeworkbook.save&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To close the workbook&lt;br/&gt; xl.activeworkbook.close&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Closing the application and releasing the memory&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To close the application&lt;br/&gt; xl.quit&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;To release the memory of all the objects&lt;br/&gt; Set xl = nothing&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-3722380712498777373?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/3722380712498777373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=3722380712498777373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3722380712498777373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3722380712498777373'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/working-with-excel-objects-in-qtp.html' title='Working with Excel objects in QTP'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-3352626858407864011</id><published>2008-08-06T11:38:00.001+05:30</published><updated>2008-08-06T11:38:21.290+05:30</updated><title type='text'>Database Handling in QTP using ADODB</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Database handling via VBScript is basically done with following steps:&lt;br/&gt;1. Creating the object of ADODB&lt;br/&gt;2. Define the Connection String  for the database to connect&lt;br/&gt;3. Opening the connection&lt;br/&gt;4. Firing of the query&lt;br/&gt;5. Accessing data with Record Set Object&lt;br/&gt;6. Closing the connection&lt;br/&gt;7. Release the memory occupied by the Objects.&lt;br/&gt; &lt;br/&gt;We will go through each of the above stated steps with an appropriate example showing how the things work up in real life application.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Creating the object of ADODB –&lt;br/&gt;&lt;/strong&gt; &lt;br/&gt;  Set db = CreateObject("ADODB.Connection")&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Specifying the Connection String of the database to connect – &lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Connection String related to specific connection can be set either with or without DSN (Data Source Name).&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;In Case of DSN –&lt;br/&gt;You create the DSN depending upon you want to fetch the data from SQL Server, Excel, Access etc. depending upon the drivers present in your system. Say for example DSN for Ms-Access is created with name as "MyDSN" for a pre specified database selected. You will write the command as:&lt;br/&gt;Db.ConnectionString = "DSN = MyDSN"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;In case you don't want to create a DSN-&lt;br/&gt;Connection String will now contain the complete information of what is contained in DSN. It has a benefit over DSN, that the connection since it can contain the complete network path of the database, so can work on all systems. But in case of DSN, that has to be present in the machine when you are using it. Again taking that database is on MS-Access -&lt;br/&gt;Db.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Opening the connection&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Once the connection string has been set, next step goes towards the opening of the connection. It basically setup the connection/pathway with the database being specified in the connection string. Command goes like:&lt;br/&gt;Db.Open&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Firing of the query&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Next step goes to the writing of the SQL Query and executing it. We write a sql query in a variable and that query is executed. On executing the query, a recordset object is returned which contains the result set of the query executed.&lt;br/&gt;  Getting the SQL Query:&lt;br/&gt;  SQL = "Select * from table1"   &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Executing the SQL query and capturing the recordset object returned:&lt;br/&gt; Set rec_ob = Db.execute (SQL)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Accessing data with Record Set Object&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;As per the example, rec_ob is the recordset object containing the result of the query which was being executed. Now we can capture each record in the recordset. In general for looping down till end through the recordset we use the following:&lt;br/&gt; Do while rec_ob.EOF &amp;lt;&amp;gt; true&lt;br/&gt;    Operation on records&lt;br/&gt;  Loop&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Various important methods/events/properties and collection supported recordset object with explanation:&lt;br/&gt;Properties:&lt;br/&gt;BOF – Returns true if the current record position is before the first record,&lt;br/&gt;otherwise false.&lt;br/&gt;EOF - Returns true if the current record position is after the last record,&lt;br/&gt;otherwise false&lt;br/&gt; State – Returns a value that describes if the Recordset object is open, closed,&lt;br/&gt;connecting, executing or retrieving data&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Methods:&lt;br/&gt;Open   – Opens a Recordset&lt;br/&gt;Close   - Closes the Recordset&lt;br/&gt;MoveFirst - Moves the record pointer to the first record&lt;br/&gt;MoveLast - Moves the record pointer to the last record&lt;br/&gt;MoveNext - Moves the record pointer to the next record&lt;br/&gt;MovePrevious - Moves the record pointer to the previous record&lt;br/&gt;Save   - Saves a Recordset object to a file or a Stream Object&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Events:&lt;br/&gt; The various events supported by ADODB Recordset object cannot be handled using VBScript or JSCript (Only VB, V C++ and V J++ can handle these events). So we are not going discuss these over here.&lt;br/&gt;Collections:&lt;br/&gt;Fields  - Indicates the number of field objects in the Recordset object&lt;br/&gt;Properties  - Contains all the Property objects in the Recordset object&lt;br/&gt;The Fields Collection's Properties:&lt;br/&gt;Count  - Returns the number of items in the fields collection. Starts at zero&lt;br/&gt;Item (name/number) – Returns a specified item in the fields collection.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;The Properties Collection's Properties:&lt;br/&gt;Count  - Returns the number of items in the properties collection. Starts at&lt;br/&gt;   Zero&lt;br/&gt;Item (name/number) – Returns a specified item in the properties collection.&lt;br/&gt;&lt;strong&gt;Closing the connection&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;Once all the activities have been carried out on Recordset object and no more database accessing is record, you need to close the connection established by the ADODB object. Command goes like:&lt;br/&gt;Db.Close&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Releasing the memory space occupied by the Objects&lt;br/&gt;&lt;/strong&gt; &lt;br/&gt;The final work is to free up the space occupied by all the objects which were created to reference the objects created. This is done for freeing up the memory so that there is no memory leak.&lt;br/&gt;Set Db = nothing&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-3352626858407864011?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/3352626858407864011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=3352626858407864011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3352626858407864011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3352626858407864011'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/database-handling-in-qtp-using-adodb.html' title='Database Handling in QTP using ADODB'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-6463266680118874339</id><published>2008-08-06T10:03:00.001+05:30</published><updated>2008-08-06T10:03:29.986+05:30</updated><title type='text'>What’s New with QTP 9.5?</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;This is the general overview giving the brief description of what is new in QTP9.5&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;New Features:&lt;/strong&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;1.  New design time panes:&lt;/strong&gt;&lt;br/&gt;Various new IDE panes have been introduced which does not provide any new functionality to add up but basically the operations which were in the deep sub menus are now put up in front.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Available Keyword Pane:&lt;br/&gt;&lt;/strong&gt;This pane shows all the available functions in the current test (either in-action or externally added), as well as all the objects in your object repository (local and external). The items are effectively separated into groups, making it easier to search for a relevant item. Double clicking any item in the pane will open it, and dragging the item to the main window will add it to the script in the drop position. Double clicking a function will not only open the hosting file in the main window, but also focus on the exact position of the function within the file.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Test Flow Pane:&lt;/strong&gt;&lt;br/&gt;This pane lays out the action call structure of the current test. It outlines the order in which the "main" actions are called, as well as the inner-action calls between actions. Other than understanding the test flow, it offers a central place to access and maintain the properties of the actions. One can easily delete an action, change its properties and its action-call properties, access its object- repository, and control the order in which it will be called within a test.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Resource Pane:&lt;br/&gt;&lt;/strong&gt;This pane offers a quick overview of all the external function files, recovery scenarios and object repositories associated with the test; it also provides a quick way to add and remove these resources. One can associate repositories with specific actions, add new external library files and add new recovery scenarios.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;Process Guidance Pane: &lt;/strong&gt;&lt;br/&gt;This pane (or rather – panes) somewhat resembles MS Office on-line help. These panes include a topic list on one side and a content area on the other (though you can position and dock the components as you like). Clicking a topic will load its contents onto the content area, and one can navigate via the Next and Back buttons.&lt;br/&gt;One can add his own "process guidance packages", which can offer unique topics and contents. For example, these might include the way to store tests and manage code versions, how to work with custom objects in the application, coding standards, and much more. These packages can be easily created with simple HTML pages and a contents XML file.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;2.  Checkpoint and Output Values Management&lt;br/&gt;&lt;/strong&gt;Checkpoint and Output Objects in the Object Repository: All your checkpoints and output values are stored as objects in the object repository so that you can manage them together with your test objects.&lt;br/&gt;Enhanced functionality of Bitmap Checkpoint: Bitmap checkpoints now include options for specifying RGB tolerance (percentage) and pixel tolerance (number of pixels or percentage) values. These values enable one to indicate acceptable differences between the actual image and the one stored with the checkpoint.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;3.  Running Scripts in Maintenance Mode&lt;br/&gt;&lt;/strong&gt;In Maintenance Run Mode, QTP identifies discrepancies between the objects in the repository and those in application, and then offers solutions for updating objects and steps in real time. The run pauses each time an object is not found. One can point to the required object in application, and QuickTest will recommend a solution for updating the object repository and test step to match the selected object. Alternatively, one can select to add comments to a problematic step and address it manually at a later time.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;4.  Web Add-In Extensibility&lt;br/&gt;&lt;/strong&gt;QTP 9.5 enables one to extend the support given for Web objects by means of its Web Add-In Extensibility feature. This feature is very important especially when the AUT includes unsupported third-party or custom Web controls. Moreover new technologies such as AJAX are also supported. To use this feature, JavaScript knowledge is necessary. Implementing a Web extension requires to configure 2 XML files, write some code in JavaScript and then deploy these files to the required folders.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;5.  New Supported Operating Systems and Environments &lt;/strong&gt;&lt;br/&gt;QTP 9.5 has added new support for the operating systems, browsers, and development environments listed below.&lt;br/&gt;• Windows Vista 64-bit Edition&lt;br/&gt;• Netscape Browser 8.1.3, and 9&lt;br/&gt;• Mozilla Firefox 2 and 3.0 Alpha 7&lt;br/&gt;• Microsoft .NET Framework 3.5&lt;br/&gt;• Oracle Forms and Oracle Applications, version 10g&lt;br/&gt;• Java SWT toolkit, versions 3.2, and 3.3&lt;br/&gt;• Eclipse IDE, version 3.2 and 3.3 (For Java Add-in Extensibility)&lt;br/&gt;• New Terminal Emulator types and versions:&lt;br/&gt;o AttachmateWRQ EXTRA! 9, Terminal Viewer (compatible EXTRA! 9), Reflection for Unix and OpenVMS sessions 14, Reflection 14&lt;br/&gt;(Note: Reflection 13 is not supported.)&lt;br/&gt;o Hummingbird HostExplorer 2007&lt;br/&gt;(Note: HostExplorer 2006 is not supported)&lt;br/&gt;o IBM IBM 5.9, IBM WebSphere Host On-Demand 10&lt;br/&gt;o NetManage RUMBA 7.5, RUMBA Web-to-Host 5.3&lt;br/&gt;o Seagull BlueZone 4&lt;br/&gt;o Zephyr PASSPORT 2007, PASSPORT PC TO HOST / WEB TO HOST 2004 and 2007&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;strong&gt;6.  Miscellaneous Improvements: &lt;br/&gt;&lt;/strong&gt;Auto-convert to relative path: Whenever you include a resource (e.g. an external library, object repository, etc.) a pop-up will appear, suggesting to add the relevant path to QTP's folders list, and to convert that path to a relative one.&lt;br/&gt;New actions are reusable: In QTP 9.5, when you create new actions, they are set as reusable by default.&lt;br/&gt;Text recognition mechanism: One can now configure which text recognition mechanism(s) you want to use for recognizing text in Windows applications, and also in which order the mechanisms should be applied.&lt;br/&gt;Record on SWT: When using the Java Add-in, recording on objects developed using the SWT toolkit is now supported.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-6463266680118874339?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/6463266680118874339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=6463266680118874339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/6463266680118874339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/6463266680118874339'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/08/whats-new-with-qtp-95.html' title='What’s New with QTP 9.5?'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-1822869817010960203</id><published>2008-08-01T12:28:00.000+05:30</published><updated>2008-08-01T12:35:25.048+05:30</updated><title type='text'>Working with Multiple Documents</title><content type='html'>&lt;p class="MsoNormal"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Working with Multiple Documents&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;QuickTest enables you to open and work on one test at a time. In addition, you can open and work on multiple function libraries simultaneously. You can open any function library, regardless of whether it is associated with the currently open test.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The WINDOWS menu options enable you to locate and activate (bring into focus) an open document window, select how the open document windows are arranged in the QuickTest window, or close all the open function library windows.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;You can also use the windows dialog box to manage your open QuickTest document windows.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;To work with multiple documents using the windows dialog box:&lt;/p&gt;  &lt;span style="line-height: 115%;"&gt;&lt;span style="font-size:100%;"&gt;Choose Window&gt; Windows. The windows dialog box opens.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="Picture_x0020_1" spid="_x0000_i1025" type="#_x0000_t75" style="'width:361.5pt;height:231pt;visibility:visible'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\VENKAT~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KtXsMFwxyM4/SJK1U-YROPI/AAAAAAAAACo/nXx5xt0lXhU/s1600-h/Windows.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 357px; height: 240px;" src="http://1.bp.blogspot.com/_KtXsMFwxyM4/SJK1U-YROPI/AAAAAAAAACo/nXx5xt0lXhU/s320/Windows.JPG" alt="" id="BLOGGER_PHOTO_ID_5229441489277368562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;The Windows dialog box displays a list of the open document windows, including the open test, component, or application area, as well as all the currently open function library windows.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The windows dialog box contains the following buttons, enabling you to manage your open documents.&lt;/p&gt;  &lt;table class="MsoNormalTable" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid black; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Button&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Description&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Activate&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Brings the selected document into focus in the QuickTest window.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Ok&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Closes the windows dialog box.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Save&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Saves the selected documents.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Close Windows(S)&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Closes the selected function libraries.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Cascade&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Arranges the selected documents in a cascading order that overlaps.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Tile Horizontally&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Arranges the selected documents side-by-side horizontally, without   overlapping.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Tile Vertically&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Arranges the selected documents side-by-side vertically, without   overlapping.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Minimize&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Minimizes the selected documents.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 117.9pt;" valign="top" width="157"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Help&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 360.9pt;" valign="top" width="481"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Displays the QuickTest Professional Help topic for this dialog box.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-1822869817010960203?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/1822869817010960203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=1822869817010960203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1822869817010960203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1822869817010960203'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/working-with-multiple-documents.html' title='Working with Multiple Documents'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KtXsMFwxyM4/SJK1U-YROPI/AAAAAAAAACo/nXx5xt0lXhU/s72-c/Windows.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-2089783165038409883</id><published>2008-07-30T13:27:00.000+05:30</published><updated>2008-07-30T13:46:44.188+05:30</updated><title type='text'>Enhancements in QTP 9.5</title><content type='html'>&lt;p class="MsoNormal"&gt;Hp has made some major enhancements in QTP 9.5 over the previous versions.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Environment Support:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt; QTP 9.5 offers all add-ins integrated with the core installation package. Though you still need to by add-ins separately to get them activated.&lt;/li&gt;&lt;/ul&gt;&lt;!--[if !supportLists]--&gt;&lt;!--[endif]--&gt;&lt;ul&gt;&lt;li&gt;For installing QTP 9.5 you have to do a clean uninstall of previous versions. That means, now on you would not be able to upgrade from the previous versions.&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;QTP IDE:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;A refreshing enhancement in QTP IDE GUI I liked this time was the ingroduction of the ability to see functions related to current tests. Whether you have an external file containing functions or they are inside reusable actions, you would be able to see all of them at one place. Now no need to dig and scroll through the endless list of functions in your notepad!&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Bitmap Checkpoint:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Earlier using bitmap checkpoint was a pain in a sense that a minor change in pixel and your test would fail. To increase the tolerance we have to go inside windows registry and change the required tolerance value. With QTP 9.5 HP has introduced support for tolerance level direct from the GUI. You can define tolerance in terms of RGB and/or pixels.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Web Add-in Extensibility:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Using this feature you can configure and extend the support to those 3&lt;sup&gt;rd&lt;/sup&gt; party custom web controls and new technologies like AJAX which were not supported with the earlier versions. You need to posses fair amount of JavaScript knowledge to handle this. How much help this feature really provides is yet to be seen!&lt;/p&gt;  &lt;p class="MsoNormal"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Maintenance Run Mode:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Repair your test on the fly, this will assists you to adding the steps or updating the object properties in OR on the fly..ie.. if your object properties are changed after a new bulid, you just run the maintenance Run Mode and update your OR according to that on the fly.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Process Guidance:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;This is little more than more accessible help files. Maybe this is good for when you are first learning to record a test, but it doesn’t seem to add much utility.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Flow Pane:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                &lt;/span&gt;Available Keywords pane: All test objects and functions in one handy location. Rapid test development with drag and drop. Object repository now also supports drag and drop.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                &lt;/span&gt;Resource pane: All resources associated with the test. You can see all your library file in this pane.&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;Missing resources pane.&lt;/li&gt;&lt;li&gt;Relative path Helper.&lt;/li&gt;&lt;li&gt;Improved Bitmap Checkpoint&lt;/li&gt;&lt;/ul&gt;      &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Web Extensibility:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                &lt;/span&gt;Anyone can add support for new web controls&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                &lt;/span&gt;Rapid development in JavaScript&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                &lt;/span&gt;Solid infrastructure supplied by the Web add-in&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                &lt;/span&gt;Extensibility objects are first class citizens&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                &lt;/span&gt;Built-in toolkit: ASP Ajax&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Tabbed browsing:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Tabs identified as separate browsers. Same test compatible with tabbed and not tabbed browsers.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;New Technologies:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;PowerBuilder&lt;/li&gt;&lt;li&gt;Oracle –Froms10 –App12&lt;/li&gt;&lt;li&gt;StingRay &lt;span style=""&gt; &lt;/span&gt;Objective Grid 10, 114.&lt;/li&gt;&lt;li&gt;PeopleSoft 9.0&lt;/li&gt;&lt;li&gt;New Terminal Emulator versions&lt;/li&gt;&lt;li&gt;.Net 3.5&lt;/li&gt;&lt;/ol&gt;            &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;New Environments:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;Windows Vista 64 bit&lt;/li&gt;&lt;li&gt;Eclipse 3.2 and 3.3&lt;/li&gt;&lt;li&gt;Record on SWT&lt;/li&gt;&lt;li&gt;Firefox 3.0&lt;/li&gt;&lt;li&gt;Netscape 9&lt;/li&gt;&lt;li&gt;Reference: HP Web site.&lt;/li&gt;&lt;/ol&gt;              &lt;p class="MsoNormal"&gt;* Please let me know your views on this new version of QTP 9.5&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-2089783165038409883?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/2089783165038409883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=2089783165038409883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2089783165038409883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2089783165038409883'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/enhancements-in-qtp-95.html' title='Enhancements in QTP 9.5'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-2306301411834563216</id><published>2008-07-29T13:25:00.000+05:30</published><updated>2008-07-29T15:39:30.998+05:30</updated><title type='text'>What is Add-in?</title><content type='html'>&lt;p&gt;&lt;span class="rvts1"&gt;What is Add-in?&lt;/span&gt;&lt;/p&gt;QTP requires Add-in for recognizing object of a specific environment &lt;div align="left"&gt;&lt;ul class="ul_0_0"&gt;&lt;li&gt;By default QTP 9.2 comes with 3 Add-ins: Web, ActiveX and VB &lt;/li&gt;&lt;li&gt;Some of the Add-ins available for QTP 9.2 are&lt;/li&gt;&lt;/ul&gt;                    Terminal Emulator (TE)&lt;br /&gt;&lt;ol&gt;&lt;li&gt;.Net&lt;/li&gt;&lt;li&gt;                   Java&lt;/li&gt;&lt;li&gt;                   SAP&lt;/li&gt;&lt;li&gt;                   Siebel&lt;/li&gt;&lt;li&gt;                   Stingray&lt;/li&gt;&lt;li&gt;                   VisualAge&lt;/li&gt;&lt;li&gt;                   Web Services&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;   &lt;div align="left"&gt;&lt;ul class="ul_0_0"&gt;&lt;li&gt;QTP does not require any Add-in to work on Standard windows application &lt;/li&gt;&lt;li&gt;Add-ins can only be loaded when starting QTP &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;  &lt;p&gt;Once the selected Add-ins are loaded, QTP window will show up&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KtXsMFwxyM4/SI7Nx3D9G-I/AAAAAAAAACY/H_dOOZI4-LI/s1600-h/welcome.bmp"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_KtXsMFwxyM4/SI7Nx3D9G-I/AAAAAAAAACY/H_dOOZI4-LI/s320/welcome.bmp" alt="" id="BLOGGER_PHOTO_ID_5228342473901546466" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-2306301411834563216?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/2306301411834563216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=2306301411834563216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2306301411834563216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2306301411834563216'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/what-is-add-in.html' title='What is Add-in?'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KtXsMFwxyM4/SI7Nx3D9G-I/AAAAAAAAACY/H_dOOZI4-LI/s72-c/welcome.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-7971663570450182017</id><published>2008-07-29T13:20:00.000+05:30</published><updated>2008-07-29T13:24:06.113+05:30</updated><title type='text'>What is QTP 9.2?</title><content type='html'>&lt;p&gt;Are you new to HP Quick Test Pro 9.2 (QTP)? Say yes and you are at the right place, at the right time. This post is for newbie’s who want to start their carrier with QTP or have just started with QTP. These posts will give you a brief overview of various features of QTP, and since it is for newbie’s we won’t be going into too much details of every feature.&lt;/p&gt;&lt;span class="rvts1"&gt;What is QTP 9.2?&lt;/span&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;ul class="ul_0_0"&gt;&lt;li&gt;HP Quick Test Pro 9.2 is a functional automation and regression testing tool &lt;/li&gt;&lt;li&gt;QTP provides record and playback of events &lt;/li&gt;&lt;li&gt;Uses VBScript as the scripting Language &lt;/li&gt;&lt;li&gt;Provides keyword view and expert view to view test cases. &lt;/li&gt;&lt;li&gt;Latest versions of QTP is 9.5 (launched in mid Jan 2008) &lt;/li&gt;&lt;li&gt;Previous version of QTP: 6.5, 8.0, 8.1, 8.2, 9.0, 9.1 &lt;/li&gt;&lt;li&gt;QTP was previously owned by Mercury Interactive® &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;     &lt;p&gt;With introduction of QTP 9.5, Trial version of QTP 9.2 is not available. QTP 9.5 does not have any huge enhancement and hence most of the features discussed in this article will still hold&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span class="rvts1"&gt;Launching QTP&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="rvts1"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;When you launch QTP for the first time, Add-in manager window is displayed&lt;/p&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KtXsMFwxyM4/SI7MNNwdOrI/AAAAAAAAACQ/oLoXiCQkFY0/s1600-h/startup+screen.bmp"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_KtXsMFwxyM4/SI7MNNwdOrI/AAAAAAAAACQ/oLoXiCQkFY0/s320/startup+screen.bmp" alt="" id="BLOGGER_PHOTO_ID_5228340744826993330" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-7971663570450182017?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/7971663570450182017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=7971663570450182017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/7971663570450182017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/7971663570450182017'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/are-you-new-to-hp-quick-test-pro-9.html' title='What is QTP 9.2?'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KtXsMFwxyM4/SI7MNNwdOrI/AAAAAAAAACQ/oLoXiCQkFY0/s72-c/startup+screen.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-1452675326809394268</id><published>2008-07-29T09:41:00.000+05:30</published><updated>2008-07-29T09:42:13.383+05:30</updated><title type='text'>Answer for y'day question</title><content type='html'>How many software testers does it take to change a light bulb?&lt;br /&gt;&lt;br /&gt;Answer: None. Software testers just noticed that the room was dark. Testers don't fix the problems, they just find them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-1452675326809394268?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/1452675326809394268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=1452675326809394268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1452675326809394268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/1452675326809394268'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/answer-for-yday-question.html' title='Answer for y&apos;day question'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-8509614217836960097</id><published>2008-07-28T17:50:00.000+05:30</published><updated>2008-07-28T17:51:09.101+05:30</updated><title type='text'>windows</title><content type='html'>A mechanical, electrical and a software engineer from Microsoft were driving through the desert when the car broke down. The mechanical engineer said "It seems to be a problem with the fuel injection system, why don't we pop the hood and I'll take a look at it." To which the electrical engineer replied, "No I think it's just a loose ground wire, I'll get out and take a look." Then, the Microsoft engineer jumps in. "No, no, no. If we just close up all the windows, get out, wait a few minutes, get back in, and then reopen the windows everything will work fine."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-8509614217836960097?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/8509614217836960097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=8509614217836960097' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8509614217836960097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8509614217836960097'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/windows.html' title='windows'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-5347520284923407259</id><published>2008-07-28T17:42:00.000+05:30</published><updated>2008-07-28T17:43:24.018+05:30</updated><title type='text'>How to connect with Database using QTP</title><content type='html'>&lt;p&gt;The steps to connect Quick Test Pro with the Database are: &lt;/p&gt; &lt;ol&gt;&lt;li&gt;Create a Database object, ADOB.Connection&lt;/li&gt;&lt;li&gt;Set the connection string using Data Source Name (DSN)&lt;/li&gt;&lt;li&gt;Open the connection to the database&lt;span id="more-24"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Execute the SQL query&lt;/li&gt;&lt;li&gt;Close the database connection&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Example:&lt;/p&gt; &lt;p&gt;Dim con&lt;/p&gt; &lt;p&gt;Set con = CreateObject(”ADODB.Connection”)&lt;/p&gt; &lt;p&gt;con.ConnectionString = “DSN={dsnName}” ‘###replace the dsnName&lt;/p&gt;&lt;p&gt;con.Open&lt;/p&gt; &lt;p&gt;SQL = “Select * From {tableName}” ‘###replace tableName&lt;/p&gt; &lt;p&gt;Set rs=con.Execute(SQL)&lt;/p&gt; &lt;p&gt;Do Until rs.EOF&lt;/p&gt; &lt;p&gt;x = rs.Fields(”{colum name}”) ‘###Replace the column name with the retrived column name of the table&lt;/p&gt; &lt;p&gt; msgBox(x)&lt;/p&gt; &lt;p&gt; rs.MoveNext&lt;/p&gt; &lt;p&gt;Loop&lt;/p&gt; &lt;p&gt;rs.Close&lt;/p&gt; &lt;p&gt;con.Close&lt;/p&gt; &lt;p&gt;Set rs = Nothing&lt;/p&gt; &lt;p&gt;Set con = Nothing&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-5347520284923407259?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/5347520284923407259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=5347520284923407259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/5347520284923407259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/5347520284923407259'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/how-to-connect-with-database-using-qtp.html' title='How to connect with Database using QTP'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-7207696548200418456</id><published>2008-07-28T17:41:00.000+05:30</published><updated>2008-07-28T17:42:32.924+05:30</updated><title type='text'>Working with Dynamic Object using Quick Test Professional (QTP)</title><content type='html'>&lt;p&gt;There are several ways to work with dynamically generated object:&lt;/p&gt; &lt;ol type="1"&gt;&lt;li&gt;Using Regular Expression&lt;/li&gt;&lt;li&gt;Using alternative object property to uniquely identify the dynamic object&lt;/li&gt;&lt;li&gt;Descriptive programming&lt;span id="more-27"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Use regular expressions&lt;/strong&gt; for the dynamic property.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Open the Object Repository, and find the object from the left side of the Object repository window.&lt;/li&gt;&lt;li&gt;From the list of the properties, select the dynamic property.&lt;/li&gt;&lt;li&gt;Click the edit icon, which is next to the Constant edit field.&lt;/li&gt;&lt;li&gt;Check the ‘Regular expression’ checkbox.&lt;/li&gt;&lt;li&gt;Replace the dynamic portion of the string with wild cards (*) and Click “OK”.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Modify the Object Repository&lt;/strong&gt; for the dynamic object to use different property to uniquely identify the object:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Open Object repository, and select the dynamic object&lt;/li&gt;&lt;li&gt;Click on the Add/Remove Button&lt;/li&gt;&lt;li&gt;Choose a different property to identify the object uniquely&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Use descriptive programming&lt;/strong&gt; which allows using object properties directly to the script.&lt;/p&gt; &lt;p&gt;Example:&lt;/p&gt; &lt;p&gt;            Set BillingOptions = Description.Create&lt;/p&gt;&lt;p&gt;            BillingOptions(”title “).Value =”\Billing Options.*” &lt;/p&gt;&lt;p&gt;            BillingOptions(”creationtime”).Value =1&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-7207696548200418456?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/7207696548200418456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=7207696548200418456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/7207696548200418456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/7207696548200418456'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/working-with-dynamic-object-using-quick.html' title='Working with Dynamic Object using Quick Test Professional (QTP)'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-7175030033974136064</id><published>2008-07-28T17:40:00.000+05:30</published><updated>2008-07-28T17:41:37.486+05:30</updated><title type='text'>How to set a property value of an object in the Object Repository during runtime?</title><content type='html'>&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: We &lt;strong&gt; &lt;/strong&gt;can modify the properties of the temporary version of the object during the run session without affecting the permanent values in the object repository by adding a &lt;strong&gt;SetTOProperty&lt;/strong&gt; method.  The SetTOProperty method can be inserted from the Keyword view using step generator or inserted to the expert view.&lt;/p&gt; &lt;p&gt; &lt;strong&gt;How?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The regular expression checkbox needs to be selected for the specified object .&lt;/p&gt; &lt;p&gt;Either through the Object Repository or through the Object Properties window, the regular expression checkbox needs to be selected before running the test. &lt;span id="more-29"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;To go through the Object Repository:&lt;/strong&gt;&lt;br /&gt;1. Select Resources -&gt; Object Repository.&lt;br /&gt;2. Select the object that will be used with the SetTOProperty method.&lt;br /&gt;3. Select the property that will be used with the SetTOProperty method.&lt;br /&gt;4. Select the “Edit Constant Value Options” button, which is to the right of the Constant field.&lt;br /&gt;5. Select the “Regular expression” checkbox.&lt;br /&gt;6. Click &lt;ok&gt;.&lt;br /&gt;7. Click &lt;ok&gt;.&lt;/p&gt; &lt;p&gt;After modifying the setting, you can specify the regular expression using the SetTOProperty method.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br /&gt;Window(”Notepad”).WinEditor(”Edit”).SetTOProperty “text”, “test.*”&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-7175030033974136064?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/7175030033974136064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=7175030033974136064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/7175030033974136064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/7175030033974136064'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/how-to-set-property-value-of-object-in.html' title='How to set a property value of an object in the Object Repository during runtime?'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-8361465906069856187</id><published>2008-07-28T17:39:00.001+05:30</published><updated>2008-07-28T17:40:29.814+05:30</updated><title type='text'>When to use Low-level and Analog Mode in Quick Test Pro (QTP)</title><content type='html'>n HP Quick Test Professional (QTP), 99% of the time we use Normal recording mode. Recording using Analog, and low-level are NOT practical most of the time.  It is also difficult to have successful play back of the scripts using those recording modes. These two recording modes are effective if the keyboard control is important, or the exact mouse clicks and keyboard input is the factor. Here are the situation you may want to use analog and low-level recording. &lt;span id="more-31"&gt;&lt;/span&gt; &lt;p goog_docs_charindex="1241"&gt;&lt;strong&gt;Use Low-Level Recording when:&lt;/strong&gt;&lt;/p&gt; &lt;ul goog_docs_charindex="1272" id="pynz"&gt;&lt;li goog_docs_charindex="1273" id="n_yv"&gt; &lt;p goog_docs_charindex="1274" id="hcau"&gt;The exact coordinates of mouse clicks or drag and drop operations are needed for objects.&lt;/p&gt; &lt;/li&gt;&lt;li goog_docs_charindex="1366" id="yj7x"&gt; &lt;p goog_docs_charindex="1367" id="ksyh"&gt;A type or click operation is useful for a successful test playback.&lt;/p&gt; &lt;/li&gt;&lt;li goog_docs_charindex="1437" id="v-lv"&gt; &lt;p goog_docs_charindex="1438" id="pmxk"&gt;An example of a Low-Level recording might be when you want to send an email with signature, or a drawing.&lt;/p&gt;&lt;/li&gt;&lt;li goog_docs_charindex="1437" id="v-lv"&gt;&lt;p goog_docs_charindex="1813" id="cgxe"&gt;The capture of the actual mouse movement across the screen is important to the test.&lt;/p&gt;  &lt;/li&gt;&lt;li goog_docs_charindex="1902" id="bap_"&gt; &lt;p goog_docs_charindex="1903" id="gp70"&gt;When custom or unsupported objects are not successfully recorded or do not successfully trigger events upon replay.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-8361465906069856187?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/8361465906069856187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=8361465906069856187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8361465906069856187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/8361465906069856187'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/when-to-use-low-level-and-analog-mode.html' title='When to use Low-level and Analog Mode in Quick Test Pro (QTP)'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-3222443388196984308</id><published>2008-07-28T16:42:00.001+05:30</published><updated>2008-07-28T16:42:37.004+05:30</updated><title type='text'>Use of TestIteration and ActionIteration Environment Variable in QTP</title><content type='html'>&lt;p&gt;&lt;strong&gt;Why TestIteration?&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;A good use of “TestIteration” built in environment variable would be if you want to execute a specific section of Sceipt based on the number of Iteration. For example, if the test runs the first iteration we want to execute Function A and 2&lt;sup&gt;nd&lt;/sup&gt; iteration Function B.&lt;span id="more-50"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;How to read the runtime Test Iteration?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;TestIteration is a built-in environment variable in Quick Test Professional, so we can read it using the Environment keyword. The syntax is bellow: &lt;/p&gt;&lt;p&gt;tIteration = Environment(”TestIteration”)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Example of TestIteration use:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;‘Using If-Else statment&lt;br /&gt;tIteration = Environment(”TestIteration”)&lt;br /&gt;If tIteration = 1 Then&lt;br /&gt;   Call FunctionA()&lt;br /&gt;ElseIf tIteration = 4 Then&lt;br /&gt;   Call FunctionB()&lt;br /&gt;End If&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Quick Test Pro (QTP) also have “ActionIteration” environment variable to read action iteration.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-3222443388196984308?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/3222443388196984308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=3222443388196984308' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3222443388196984308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3222443388196984308'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/use-of-testiteration-and.html' title='Use of TestIteration and ActionIteration Environment Variable in QTP'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-3196773043802330521</id><published>2008-07-28T16:37:00.000+05:30</published><updated>2008-07-28T16:38:01.462+05:30</updated><title type='text'>Ticket</title><content type='html'>&lt;b&gt;&lt;span style="color: red;"&gt;Ticket&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A software developer/tester convention was being held. On the train to the convention, there were a bunch of developer majors and a bunch of tester majors. Each of the developer majors had his/her train ticket. The group of testers had only ONE ticket for all of them. The developer majors started laughing and snickering. Then, one of the software testers said, "here comes the conductor" and then all of the testers went into the bathroom. The developer majors were puzzled. The conductor came aboard and said "tickets please" and got tickets from all the developer majors. He then went to the bathroom and knocked on the door and said "ticket please" and the testers stuck the ticket under the door. The conductor took it and then the testers came out of the bathroom a few minutes later. The developer majors felt really stupid. So, on the way back from the convention, the group of developer majors had one ticket for the group. They started snickering at the testers, for the whole group had no tickets amongst them. Then, the tester lookout said "Conductor coming!" All the testers went to one bathroom. All the developer majors went to another bathroom. Then, before the conductor came on board, one of the testers left the bathroom, knocked on the other bathroom, and said "ticket please."&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;Lesson learned:&lt;/span&gt;&lt;/b&gt; Any test that passed in unit testing can fail in system testing&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-3196773043802330521?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/3196773043802330521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=3196773043802330521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3196773043802330521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/3196773043802330521'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/ticket.html' title='Ticket'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-4403819842916305551</id><published>2008-07-28T16:32:00.003+05:30</published><updated>2008-07-28T16:35:22.911+05:30</updated><title type='text'>Question for U</title><content type='html'>&lt;span style="color:red;"&gt;How many software testers does it take to change a light bulb?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-4403819842916305551?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/4403819842916305551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=4403819842916305551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/4403819842916305551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/4403819842916305551'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/question-for-u.html' title='Question for U'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-2462010063737170750</id><published>2008-07-28T16:30:00.001+05:30</published><updated>2008-07-28T16:30:47.118+05:30</updated><title type='text'>Save your money from cheaters</title><content type='html'>Dear Friends&lt;br /&gt;I write this to inform all of you about fraud and cheat of What is Testing a subsidiary of Pure Testing, Sector 58, Noida&lt;br /&gt;&lt;br /&gt;I can describe better with a questionaries, sequenced by 3 serial no.&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;1=&lt;/span&gt;&lt;/b&gt; Question asked by the candidate to the course counsellor&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;2=&lt;/span&gt;&lt;/b&gt; Answered by WIT's Testing Course Counsellor&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;3=&lt;/span&gt;&lt;/b&gt; Reality I faced, during and after the Testing Course&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;1=&lt;/span&gt;&lt;/b&gt; Mam I think my commerce background as an educational stream, would not be suitable for this course.&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;2= &lt;/span&gt;&lt;/b&gt;No, Dont worry about your nontechnical educational background as today the testing industry has a lot of requirement, and the B. Com. is a good background for the commercial project. So, be sure about your course suitability and get the admission&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;3= &lt;/span&gt;&lt;/b&gt;After completion of my course, one day the placement assistent said me that Pankaj your educational background is non technical, so that it is not fit for testing professional.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;1=&lt;/span&gt;&lt;/b&gt; What will be your syllabus/content.&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;2= &lt;/span&gt;&lt;/b&gt;Here you will cover both the Manual and Automation Testing, in automation you will learn about QTP, Test Director, and Load Runner. More over these you will also work on a live project. And your trainer will be our best testing employee&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;3=&lt;/span&gt;&lt;/b&gt; I got 5 books from wit, all these books was created by the 'Copy and Past' from internet. Everyone can find these study material with the different sites on Internet&lt;br /&gt;My manual Testing trainer Mr. Pankaj Jain (I have not see him after completion of manual testin classes, It seems to me that he was a contractual teacher)&lt;br /&gt;Really Pankaj was a good hindi speaker, he taught us like a pandit is telling the SatyaNarawan ki Katha. Any example or Real world scenarios, we have not got from him. He only taught us 'what is written in the book'. And the book was contained eith the materials of 1994-95. All his classes was rubbish.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;1=&lt;/span&gt;&lt;/b&gt; What will be my Course Duration&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;2= &lt;/span&gt;&lt;/b&gt;Up to 24 classes you will learn about Manual Testing and afterthat in 24 day's classes you will learn about Automation Testing&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;3=&lt;/span&gt;&lt;/b&gt; I had completed manual Testing in 13 classes. And 11 in automatin classses but Automation Classes was nothing but Time wasting, because He has only one automation tool named as QTP, I am guessing it was a free demo version of qtp.&lt;br /&gt;and it was a two machines which have qtp installed. Suppose the situation&lt;br /&gt;22 students/usars=2 machines=2 hours&lt;br /&gt;and in 25 days I have not seen any other automation tool (LR and TD)) with running s mode.&lt;br /&gt;Our trainer was always confused about the outcome of automation&lt;br /&gt;&lt;br /&gt;In 25 days I have not seen my counsellor with smily face, All we trainees are realising hard to contact with him for any problem, she has a very bad personality for coordinating and motivating to others.&lt;br /&gt;&lt;br /&gt;I have not attended any online or off line project during my course.&lt;br /&gt;&lt;br /&gt;After one month (after completed the course) one day I asked to my course counsellor that 'Mam I have completed my course without any project and any type of progress test' than she said 'if you are so interested to give a test than tooday you can do it,' and after giving the test when I asked about the result, than she said submit your copy to me and after checking tomorrow I will give u the result. but this tomorrow was came after two weeks (between these two weeks I have visited 6 to 7 times for my test result)&lt;br /&gt;My number was very good 19.5/25, but it has not any advantage for me&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;1= &lt;/span&gt;&lt;/b&gt;Can I get admission directly, or any other procedure would I have to follow for admission&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;2=&lt;/span&gt;&lt;/b&gt; After a long objective type entrance test, your admission will be based&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;3= &lt;/span&gt;&lt;/b&gt;After 4 days of our above mentioned discussion, on the 10th of March, 207 the course counsellor called me and told that, 'Pankaj come on tomorrow, and get admission. Resulted I got my admission directly without any test (orel or written)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-2462010063737170750?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/2462010063737170750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=2462010063737170750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2462010063737170750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2462010063737170750'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/save-your-money-from-cheaters.html' title='Save your money from cheaters'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-4064519804024573678</id><published>2008-07-28T16:16:00.001+05:30</published><updated>2008-07-28T16:16:45.315+05:30</updated><title type='text'>The future of QuickTest Pro</title><content type='html'>&lt;p&gt;HP just gave a revealing presentation about the next version of QuickTest Pro. It is codenamed Atlantis, and it will probably be called QuickTest Pro 10.0. QTP 10 is targeted to be released in the beginning of 2009.&lt;/p&gt; &lt;p&gt;I’ll break down some of the features that were discussed.&lt;br /&gt;&lt;span id="more-100"&gt;&lt;/span&gt;&lt;/p&gt; &lt;h2&gt;IDE Improvements&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;Adding a TODO pane populated by comments prefixed with TODO: .  This is similar to what Test Design Studio and many other IDEs do.&lt;/li&gt;&lt;li&gt;Dynamic Surrounding - I’m unsure about this feature, as I haven’t heard the term Dynamic Surrounding before.  The presenter indicated that it basically meant auto indenting code within If statements and loops, but QTP’s IDE already does that, so I must have misunderstood.  Maybe this is something like the surround snippets in Test Design Studio.  HP would do well to include something like that in QTP.&lt;/li&gt;&lt;li&gt;IntelliSense Improvements - three areas where IntelliSense will be improved &lt;ul&gt;&lt;li&gt;Adding second-level IntelliSense — example given was if an objects property is also an object, then IntelliSense will be provided for that object as well.&lt;/li&gt;&lt;li&gt;Inner Object IntelliSense.  So you won’t lose IntelliSense after you type WebEdit().Object&lt;/li&gt;&lt;li&gt;Com object IntelliSense.  IntelliSense will be provided for any COM object defined with createobject()&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Toolbar Customization - You will be able to customize the toolbar to include buttons for launching various other applications.  I think this may be something along the lines of Test Design Studio’s external functions.&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Report Improvements&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;Export reports to PDF and Doc files&lt;/li&gt;&lt;li&gt;Define standard report formats&lt;/li&gt;&lt;li&gt;Embed your own images and screenshots in reports&lt;/li&gt;&lt;li&gt;Jump to a script line in QTP from a report&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Quality Center&lt;/h2&gt; &lt;p&gt;I’m not a Quality Center user, so I don’t know what some of these features mean.  I’m just transcribing them for those of you who do.&lt;/p&gt; &lt;p&gt;The presenter said that Quality Center Integration is the main area of focus for Atlantis.  QC Atlantis will release at the same time as QTP Atlantis.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;External Resources Module in QC.  Allows you to manage QC integrations.&lt;br /&gt;QC will understand what the assets of QTP tests are and how to manage them&lt;/li&gt;&lt;li&gt;Use QC’s internal versioning to version tests and assets&lt;/li&gt;&lt;li&gt;Comparison tool, compare QTP tests and assets to choose which one to use&lt;/li&gt;&lt;li&gt;Add sharing of assets between projects&lt;/li&gt;&lt;li&gt;Manage QC from within QTP&lt;/li&gt;&lt;li&gt;From with QTP, open a specific QC asset, including specifying the revision from QCs version control&lt;/li&gt;&lt;li&gt;When you open an asset in QTP, it will automatically be checked out from QC&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-4064519804024573678?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/4064519804024573678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=4064519804024573678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/4064519804024573678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/4064519804024573678'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/future-of-quicktest-pro.html' title='The future of QuickTest Pro'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-580437553674664859</id><published>2008-07-28T16:14:00.000+05:30</published><updated>2008-07-28T16:15:39.165+05:30</updated><title type='text'>HP QTP 9.5 first impressions</title><content type='html'>&lt;p style="font-family: arial;"&gt;I managed to get my hands on a copy of Quicktest Pro 9.5, and it appears to not be as big of a change as I expected. At least the portions of QTP that I use are mostly unchanged. It looks like most of the updates happened in the area of Object Repository and various n00b features.&lt;/p&gt; &lt;p style="font-family: arial;"&gt;The first thing that struck me as soon as I saw the default font is that HP doesn’t consider QTP a tool for programmers. Rule number one for every IDE should be that nobody wants a proportional font. At least it only took about 15 seconds to change the font to Consolas.&lt;br /&gt;&lt;span id="more-76"&gt;&lt;/span&gt;&lt;br /&gt;The next thing I did was open one of my existing 9.2 tests. After QTP prompted me to convert it to 9.5, the test ran without error. I ran our standard suite of smoke tests on 9.5. To my relief they all ran without error. I was expecting to have to do a bit of refactoring for QTP 9.5, but I seem to be spared for now.&lt;/p&gt; &lt;p style="font-family: arial;"&gt;I was curious what a few of the new features are.  The marketing literature wasn’t exactly clear on some of these.&lt;/p&gt; &lt;ul style="font-family: arial;"&gt;&lt;li&gt;Process Guidance - This is little more than more accessible help files. Maybe this is good for when you are first learning to record a test, but it doesn’t seem to add much utility.&lt;/li&gt;&lt;li&gt;Maintenance Run Mode - I really thought QTP already had this feature, but it is on the new features list, so it must be new. Anyway, it is only useful for updating the Object Repository, so it won’t be getting any of my attention.&lt;/li&gt;&lt;li&gt;New QuickTest IDE Panes - This is a step in the right direction for the editor. The Test Flow pain and Keywords pane look useful if drag-and-drop test writing is your bag. For me, the most useful of the new panes is the Resources pane. It makes it easier to navigate between vbs libraries.&lt;/li&gt;&lt;li&gt;Custom Web Objects - This is the new feature with the most potential. I haven’t explored this yet, but it seems like just what we have been looking for. Basically it looks like you can define your own web object types. For instance, I could address table rows with a certain class as something like WebGridRow instead of WebElement. I can then register new methods for WebGridRow the same way that I could for other objects using registerUserFunction. I’ll have more on this when I have had a chance to use it.&lt;/li&gt;&lt;/ul&gt; &lt;span style="font-family: arial;"&gt;It was displeasing that they have still not addressed a couple of bugs I have previously mentioned here. If QTP is on the secondary monitor, intellisense popups show up on the right side of the primary monitor. More significantly, Page.ChildObjects still won’t return hidden WebElements. I would think that these bugs are higher priority than Process Guidance and other beautifying enhancements, but HP has different priorities.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-580437553674664859?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/580437553674664859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=580437553674664859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/580437553674664859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/580437553674664859'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/hp-qtp-95-first-impressions.html' title='HP QTP 9.5 first impressions'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-9056903491181532344</id><published>2008-07-28T16:10:00.000+05:30</published><updated>2008-07-28T16:11:54.460+05:30</updated><title type='text'>QTP 9.5 now available for download</title><content type='html'>The QTP 9.5 evalu&lt;span style="font-size:100%;"&gt;ation &lt;/span&gt;is finally available for &lt;a href="https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;amp;cp=1-11-127-24%5E1352_4000_100__"&gt;download&lt;/a&gt; on HP’s site. I haven’t downloaded this one yet, but if it is like the one I downloaded from HP a few weeks ago, you should be able to use it with the same license you used for 9.2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-9056903491181532344?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/9056903491181532344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=9056903491181532344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/9056903491181532344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/9056903491181532344'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/qtp-95-now-available-for-download.html' title='QTP 9.5 now available for download'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-2805697189160833999</id><published>2008-07-24T16:15:00.000+05:30</published><updated>2008-07-25T13:32:59.973+05:30</updated><title type='text'>SQL SERVER Questions And Answers</title><content type='html'>&lt;hr /&gt;SQL SERVER Questions And Answers&lt;hr /&gt;&lt;br /&gt;&lt;hr /&gt; 1. What is an Entity? &lt;hr /&gt;&lt;br /&gt;The basic data item stored in database is called entity. An entity can be any object, item, place, person, concept, or activity about which data is stored.&lt;br /&gt;&lt;hr /&gt; 2. What is an attribute? &lt;hr /&gt;&lt;br /&gt;An attribute is a property of an entity. It describes a part of an entity. Entity could have one or more attributes.&lt;br /&gt;&lt;hr /&gt; 3. What is ER diagram? &lt;hr /&gt;&lt;br /&gt;An Entity Relationship Diagram is diagrammatic representation of the logical structure of a database system.&lt;br /&gt;&lt;hr /&gt; 4. Describe the concept of keys. &lt;hr /&gt;&lt;br /&gt;Candidate key&lt;br /&gt;An attribute that uniquely identifies a row is called candidate key. It is also called das surrogate key.&lt;br /&gt;Primary key&lt;br /&gt;A candidate key that you choose to identify rows uniquely is called a primary key.&lt;br /&gt;Alternate key&lt;br /&gt;If there are multiple candidate keys in a table, the candidate keys that are chosen as primary key are called the alternate keys.&lt;br /&gt;Composite key&lt;br /&gt;When the key that uniquely identifies the rows of a table is made up of more than one attribute, it is called as a composite key.&lt;br /&gt;&lt;br /&gt;Foreign key&lt;br /&gt;Two tables can be related using a common attribute. When a primary key of one table is also available as an attribute in another related table it is called a foreign key.&lt;br /&gt;&lt;hr /&gt; 5. What are joins? &lt;hr /&gt;&lt;br /&gt;Sometimes, data from multiple tables is to be displayed using select statement. For this purpose, the tables in use must have a column that is equated. This is termed as simple join or multiple join.&lt;br /&gt;Sometimes, you might want to display all records from one table and some from another. This type of join is called an outer join. An outer join is only possible between two tables.&lt;br /&gt;There are two types of outer join, namely left and right. In a left outer join, all the rows of the first table named in the FROM clause are displayed. In a right outer join all the rows from the second table mentioned in the FROM clause are displayed. In either case, all the matching rows from other table are displayed.&lt;br /&gt;&lt;hr /&gt; 6. What is a sub query? &lt;hr /&gt;&lt;br /&gt;Sometimes the results of one query are dependant on the results of another query. For this purpose one query is nested inside another query, this is called as sub query.&lt;br /&gt;&lt;hr /&gt; 7. What are the types of constraints? &lt;hr /&gt;&lt;br /&gt;You can enforce data integrity by using constraints. Constraints are divided in to five categories.&lt;br /&gt;&lt;br /&gt;Primary key constraint&lt;br /&gt;&lt;br /&gt;A primary key constraint is defined on a column are a set of columns whose values uniquely identify the rows in a table. It cannot contain null values.&lt;br /&gt;&lt;br /&gt;Unique constraint&lt;br /&gt;&lt;br /&gt;Unique constraints are used to enforce uniqueness on non-primary key columns. It allows null values but only one row can have a null value.&lt;br /&gt;Multiple unique constraints can be created on a table.&lt;br /&gt;&lt;br /&gt;Foreign Key constraint&lt;br /&gt;&lt;br /&gt;You can use the foreign key constraint to remove the inconsistency in two tables when the data in the one table is dependant on the other table.&lt;br /&gt;Check constraint&lt;br /&gt;&lt;br /&gt;It enforces domain integrity by restricting the values to be inserted in a column. It is possible to define multiple check constraints on a single column. These are evaluated in the order in which they are defined.&lt;br /&gt;Default Constraint&lt;br /&gt;&lt;br /&gt;A default constraint can be use to assign a constant value to a column and the user need not insert values in to that column.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt; 8. What is a rule? &lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;The required integrity can be enforced by specifying a check constraint or by defining a rule. But check constraint modifies the table structure. The constraint can there fore be implemented using rules with out changing the table structure. This rule is applied before an insert or update statement.&lt;br /&gt;A rule must be bound to a column or a user-define d data type. This is done using stored procedure sp_bindrule. Rules do not apply to data that has already been inserted in the table. The existing values in tables do not have to meet the criteria specified by the rule.&lt;br /&gt;&lt;hr /&gt; 9. What are indexes? &lt;hr /&gt;&lt;br /&gt;To speed up data retrieval indexes are used. Indexes also enforce the uniqueness of rows.&lt;br /&gt;Advantages&lt;br /&gt;1. Improves the speed of execution.&lt;br /&gt;2. Enforces uniqueness of data.&lt;br /&gt;3. Speeds up joins between tables.&lt;br /&gt;Disadvantages&lt;br /&gt;1.Takes disk space to store.&lt;br /&gt;2.Data modification takes longer.&lt;br /&gt;3.Takes time to create index.&lt;br /&gt;Types of indexes&lt;br /&gt;Clustered index&lt;br /&gt;1.The data is physically sorted&lt;br /&gt;2.One clustered index can be created per table, so you should build it on attributes that have a high percentage of unique values and that are not modified often.&lt;br /&gt;Nonclustered index&lt;br /&gt;1.The physical order of the rows is not the same as the index order.&lt;br /&gt;2.There can be as many as 249 nonclustered indexes per column.&lt;br /&gt;&lt;hr /&gt; 10. What are views? &lt;hr /&gt;&lt;br /&gt;A view is a virtual table, which gives access to a subset of columns from one or more tables. It is a query stored as an object in the database. Hence a view is an object that derives it data from one or more tables.&lt;br /&gt;Advantages&lt;br /&gt;1.A view serves as a security mechanism.&lt;br /&gt;2.A view simplifies the usage of complex queries.&lt;br /&gt;&lt;hr /&gt; 11. What are store procedures and its advantages? &lt;hr /&gt;&lt;br /&gt;A stored procedure is collection or batch of Transact-SQL statements and control flow language that is stored under one name, and executed as single unit. It helps in improving the performance of a query. It is a precompiled object. As it is ready to execute no time is needed for parsing and compiling the procedure.&lt;br /&gt;Advantages&lt;br /&gt;Improved performance – Applications do not have to compile the procedure over and over again.&lt;br /&gt;Reduction in network congestion – applications need not submit multiple SQL statements to server for the purpose of processing.&lt;br /&gt;Enhanced accuracy – SQL statements included in a procedure are designed by experienced programmers and are therefore more efficient, error free, and tested.&lt;br /&gt;Better security mechanism – users can be granted permission to execute a stored procedure even if they do not own it.&lt;br /&gt;Types of stored procedures&lt;br /&gt;1.User-defined&lt;br /&gt;2.System defined&lt;br /&gt;These are prefixed with sp_. These are for administrative purpose and are stored in the database and are accessible to all users.&lt;br /&gt;3.Temporary&lt;br /&gt;These are prefixed with #, stored in tempdb and are automatically dropped when connection terminates.&lt;br /&gt;4.Remote&lt;br /&gt;These are created and stored in remote servers and can accessed by users with appropriate permissions.&lt;br /&gt;5.Extended&lt;br /&gt;These are dlls that are executed outside SQL Server. They are prefixed by xp_.&lt;br /&gt;&lt;hr /&gt; 12. Explain about BCP and DTS. &lt;hr /&gt;&lt;br /&gt;BCP&lt;br /&gt;The transfer data from an external source to SQL Server is performed using Bulk Copy Program utility. The external source is a flat file. Data transfer from external source to SQL Server in BCP IN. The transfer of data from SQL Server to external source is BCP OUT.&lt;br /&gt;DTS&lt;br /&gt;Data transformation services can be used to import and export data between heterogeneous data sources and SQL Server. The external data sources include Visual FoxPro, MS Excel, Paradox, MS Access, Dbase, and text files.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt; 13. What are transactions and their properties? &lt;hr /&gt;&lt;br /&gt;A transaction is a sequence of operations performed together as a single unit of logical work. It has four properties.&lt;br /&gt;Atomicity – it states that either all the data modifications are performed or none are performed.&lt;br /&gt;Consistency - it states that all the data is in a consistent state after a successful completion of transaction.&lt;br /&gt;Isolation – it states any data modification made my concurrent transactions must be isolated from the modifications made by other concurrent transaction.&lt;br /&gt;Durability – it states that ay change made by a completed transaction remains permanently in the system.&lt;br /&gt;&lt;hr /&gt; 14. Locking mechanism. &lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;SQL Server uses the concept of locking to ensure transactional integrity and database consistency. Locking, by functionally prevents users from accessing information being changed by other users. In a multi-user environment, Locking prevents users from changing the same data at the same time. In SQL Server locking is implemented automatically.&lt;br /&gt;&lt;br /&gt;SQL Server implements multi-granular locking, which allows transactions to lock different types of resources at different levels. SQL Server can lock the following resources.&lt;br /&gt;&lt;br /&gt;RID – is a row identifier that individually locks a row in a table.&lt;br /&gt;Key – is a rowlock with in an index.&lt;br /&gt;Page – is an 8k page or an index page.&lt;br /&gt;Extent – is a contiguous group of 8k data pages or index pages.&lt;br /&gt;Table – is the entire table, including all data and indexes.&lt;br /&gt;Database – is the complete database.&lt;br /&gt;&lt;br /&gt;Shared Locks&lt;br /&gt;&lt;br /&gt;It is used for operations that do not change or update the data. This allows concurrent transactions to read a resource and no other transaction can modify the data on that resource.&lt;br /&gt;Update Locks&lt;br /&gt;&lt;br /&gt;This lock is implemented when a transaction modify a row. Only one update lock is allowed on a resource at a time.&lt;br /&gt;&lt;br /&gt;Exclusive locks&lt;br /&gt;&lt;br /&gt;Intent locks&lt;br /&gt;&lt;br /&gt;Schema Locks&lt;br /&gt;&lt;hr /&gt; 15. What is deadlock? &lt;hr /&gt;&lt;br /&gt;A dead lock is a situation in which two users (or transactions) have locks on separate objects, and each user is waiting for a lock on the other’s object. It usually occurs in a multi-user environment.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt; 16. What are triggers? &lt;hr /&gt;&lt;br /&gt;A trigger is a block of code that constitutes with a set of T-SQL statements that are activated in response to certain actions. A trigger can also be interpreted as a special kind of stored procedure that is executed whenever an action, such as data modification, takes place.&lt;br /&gt;A trigger is always defined on a table, and is said to have fired whenever the data in the underlying table is affected by any of the Data Manipulation Language (DML) statements-INSERT, UPDATE, or DELETE. A trigger fires in response to an event like insertion, updation, and deletion of data.&lt;br /&gt;Triggers help in maintaining consistent, reliable, and correct data in tables. They enable the performance of complex actions and cascade these actions to other dependant tables.&lt;br /&gt;Characteristics of a trigger:&lt;br /&gt;&lt;br /&gt;• It can be associated with tables.&lt;br /&gt;• It cannot be defined on temporary tables or views. However, it can reference temporary tables and views.&lt;br /&gt;• Whenever any data modification statement is issued then SQL Server fires it automatically.&lt;br /&gt;• It cannot be explicitly invoked or executed, as in the case of stored procedures.&lt;br /&gt;• Triggers can be nested up to 16 levels. The nesting of triggers occurs when a trigger performs an action that initiates another trigger.&lt;br /&gt;• It prevents incorrect, unauthorized, and inconsistent changes in data.&lt;br /&gt;• It cannot return data to the user.&lt;br /&gt;&lt;br /&gt;There are three types of triggers&lt;br /&gt;1) INSERT&lt;br /&gt;2) DELETE&lt;br /&gt;3) UPDATE&lt;br /&gt;&lt;hr /&gt; 17. What is Normalization? Explain three normal forms? &lt;hr /&gt;&lt;br /&gt;Normalization is a scientific method of breaking down complex table structures in to simple table structures by using certain rules. Hence reduce redundancy in a table and eliminate inconsistency problems and disk space usage.&lt;br /&gt;First Normal Form&lt;br /&gt;A table is said to be in 1NF when each cell of the table contains precisely one value.&lt;br /&gt;Functional dependency&lt;br /&gt;If you have two attribute A and B, A is said to be functionally dependant on B, if for each value of B, there is exactly one value of A.&lt;br /&gt;Second Normal Form&lt;br /&gt;Identify the functionally dependent keys and place them in a different table.&lt;br /&gt;Third Normal Form&lt;br /&gt;A relation is said to be 3NF when every non-key attribute is functionally dependant only on the primary key.&lt;br /&gt;&lt;hr /&gt; 18. What are Cursors and types of cursors? &lt;hr /&gt;&lt;br /&gt;A cursor is a work area called private SQL area, which executes SQL statements and stores the results.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cursor Types&lt;br /&gt;So you can specify the four-cursor types for Transact-SQL cursors. These cursors vary in their ability to detect changes to the result set and in the resources, such as memory and space in tempdb, they consume. The four API server cursor types supported by SQL Server are:&lt;br /&gt;• Static cursors&lt;br /&gt;• Dynamic cursors&lt;br /&gt;• Forward-only cursors&lt;br /&gt;• Key set-driven cursors&lt;br /&gt;Static cursors detect few or no changes but consume relatively few resources while scrolling, although they store the entire cursor in tempdb.&lt;br /&gt;Dynamic cursors detect all changes but consume more resources while scrolling, although they make the lightest use of tempdb.&lt;br /&gt;Key set-driven cursors lie in between, detecting most changes but at less expense than dynamic cursors.&lt;br /&gt;Although the database API cursor models consider a forward-only cursor to be a distinct type of cursor, SQL Server does not. SQL Server considers both Forward only and scroll to be options that can be applied to static, key set-driven, and dynamic cursors.&lt;br /&gt;&lt;hr /&gt; 19. What is Encryption option in SQL Server? &lt;hr /&gt;&lt;br /&gt;Encryption is a method for keeping sensitive information confidential by changing data into an unreadable form. Encryption ensures that data remains secure by keeping the information hidden from everyone, even if the encrypted data is viewed directly. Decryption is the process of changing encrypted data back into its original form and so authorized users can view it.&lt;br /&gt;&lt;hr /&gt; 20. What are time-stamped data types? &lt;hr /&gt;&lt;br /&gt;It is a database-wide unique number. The storage size is 8 bytes. A table can have only one timestamp column. The value in the timestamp column is updated every time a row containing a timestamp column is inserted or updated. This property makes a timestamp column a poor candidate for keys, especially primary keys. Any update made to the row changes the timestamp value, thereby changing the key value. If the column is in a primary key, the old key value is no longer valid, and foreign keys referencing the old value are no longer valid. If the table is referenced in a dynamic cursor, all updates change the position of the rows in the cursor. If the column is in an index key, all updates to the data row also generate updates of the index.&lt;br /&gt;&lt;hr /&gt; 21. Correlated queries. &lt;hr /&gt;&lt;br /&gt;In correlated queries a sub query is executed for each row the parent query is executed.&lt;br /&gt;Ex:&lt;br /&gt;“Select e. * from EMP e where e.sal &gt;(select Avg (Sal) from emp where e.deptno = emp.deptno  “&lt;br /&gt;&lt;hr /&gt; 22. What is OLAP and how it works with SQL Server? &lt;hr /&gt;&lt;br /&gt;OLAP Services is a new middle-tier server for online analytical processing (OLAP). OLAP Services provides wizards, editors, and information to make OLAP technology easier to use. OLAP Services supports various data and storage models to help you create and maintain an OLAP system that meets your organization’s needs.&lt;br /&gt;&lt;hr /&gt; 25. What are the advantages of SQL Server 7.0 over SQL Server 6.5? &lt;hr /&gt;&lt;br /&gt;• Trigger Enhancements&lt;br /&gt;• Recursive triggers&lt;br /&gt;• Multiple triggers per INSERT, UPDATE, or DELETE statement&lt;br /&gt;• Data Transformation Services&lt;br /&gt;• Web Assistant Wizard&lt;br /&gt;The Web Assistant Wizard has been enhanced in SQL Server 7.0. In addition to exporting SQL Server data out to an HTML file, it can also import tabular data from an HTML file into SQL Server, and post to and read from HTTP and FTP locations.&lt;br /&gt;• Row-level locking&lt;br /&gt;SQL Server 7.0 supports complete row-level locking on both data pages      and index pages.&lt;br /&gt;• SQL Server 7.0 supports applications that span a broad range of platforms.&lt;br /&gt;• Gigabytes of memory, and a terabyte or more of disk storage.&lt;br /&gt;• Stored Procedures&lt;br /&gt;The stored procedure model has been enhanced in SQL Server 7.0 to provide improved performance and increased application flexibility. When a stored procedure is compiled and placed in the procedure cache, all users of the stored procedure share that one copy of the compiled plan.&lt;br /&gt;• The most notable feature is update replication. Using update     replication, data replicated by SQL Server 7.0 can be modified at multiple sites.&lt;br /&gt;&lt;br /&gt;SQL-Server&lt;br /&gt;&lt;br /&gt;Truncate &amp;amp; Delete&lt;br /&gt;&lt;br /&gt;1.Truncate a table means data will be lost, but structure of the table will be present in the database.&lt;br /&gt;&lt;br /&gt;Syntax: Truncate table &lt;table name=""&gt;;&lt;br /&gt;&lt;br /&gt;2.If you drop a table then the structure of the table also goes along with the data.&lt;br /&gt;Syntax: drop table &lt;/table&gt;&lt;table name=""&gt;;&lt;br /&gt;&lt;br /&gt;3.You can’t delete a table; you can delete the data in a record wise manner.&lt;br /&gt;&lt;br /&gt;Syntax: delete from &lt;/table&gt;&lt;table name=""&gt; where &lt;condition&gt;&lt;br /&gt;&lt;br /&gt;4.The difference between the truncate and delete is you can delete the data at a stretch buy using the truncate, by using the delete you can delete only one record at a time.&lt;br /&gt;&lt;br /&gt;5.When you have truncated the table then all the records will lose. Then immediately if you add a record to that table the row number will be ‘1’ only.&lt;br /&gt;&lt;br /&gt;Index:&lt;br /&gt;&lt;br /&gt;1. If you have a clustered index on a column, then also you can assign a primary key to that column?&lt;br /&gt;&lt;br /&gt;2. You are having rowid already then why you are going for the index?&lt;br /&gt;&lt;br /&gt;3. How many non-clustered indexes can be allowed in a table?&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;Create index &lt;index name=""&gt;&lt;br /&gt;On&lt;br /&gt;&lt;/index&gt;&lt;/condition&gt;&lt;/table&gt;&lt;table name=""&gt;&lt;col1&gt;, &lt;col2&gt;, -------)&gt;;&lt;br /&gt;&lt;br /&gt;Syntax:&lt;br /&gt;Drop index &lt;index name=""&gt;&lt;br /&gt;&lt;br /&gt;Rules&lt;br /&gt;9.Rules will maintain the domain integrity.&lt;br /&gt;&lt;br /&gt;10.Is it possible to create a rule at the time of creating a table?&lt;br /&gt;No.&lt;br /&gt;&lt;br /&gt;11.Is it possible to drop a rule?&lt;br /&gt;Yes.&lt;br /&gt;&lt;br /&gt;12.What is the difference between the rule and check constraint?&lt;br /&gt;If a check constraint is applied to a table it will enforce the constraint to previously existing data also. If that data violates the constraint then constraint statement gives an error message.&lt;br /&gt;&lt;br /&gt;If a rule is applied on a table it will not apply to the already existing data in the table. The rule will be imposed from now on the updation and insertion of data.&lt;br /&gt;&lt;br /&gt;Syntax&lt;br /&gt;     Create rule &lt;rule name=""&gt; as &lt;condition&gt;&lt;br /&gt;Sp_bindrule &lt;rule name=""&gt;, &lt;object name=""&gt;&lt;br /&gt;Drop rule &lt;rule name=""&gt;&lt;br /&gt;&lt;br /&gt;Keys&lt;br /&gt;&lt;br /&gt;13.How many types of keys are there? What is the importance of those keys?&lt;br /&gt;14.What is the difference between the primary key and unique?&lt;br /&gt;&lt;br /&gt;15.What is the primary key and candidate key and what are there advantages?&lt;br /&gt;&lt;br /&gt;16.Is it possible to hide the database?&lt;br /&gt;&lt;br /&gt;17. What is the maximum size of a row?&lt;br /&gt;&lt;br /&gt;18.What is the maximum number of rows can a table allowed? Then how many columns are allowed in a table?&lt;br /&gt;&lt;br /&gt;19.What is normalization?&lt;br /&gt;&lt;br /&gt;20.What is the redundancy?&lt;br /&gt;&lt;br /&gt;21.What are the normalization forms?&lt;br /&gt;&lt;br /&gt;22.What is the difference between the DBMS/RDBMS?&lt;br /&gt;&lt;br /&gt;23.What is replication?&lt;br /&gt;&lt;br /&gt;Replication:&lt;br /&gt;&lt;br /&gt;Definition:&lt;br /&gt;&lt;br /&gt;“Replication is an important and powerful technology for distributing data and the execution of stored procedures across an enterprise. “&lt;br /&gt;&lt;br /&gt;The replication technology allows you to make duplicate copies of your data, move those copies to different locations, and synchronize the data automatically so that all copies have the same data values. Replication can be implemented between databases on the same server or different servers connected by LANs, WANs, or the Internet.&lt;br /&gt;&lt;br /&gt;24.What are the types of replication?&lt;br /&gt;&lt;br /&gt;Types of the replications:&lt;br /&gt;• Snapshot Replication&lt;br /&gt;Option: Snapshot, with immediate-updating Subscribers&lt;br /&gt;• Transactional Replication&lt;br /&gt;Option: Transactional, with immediate-updating Subscribers&lt;br /&gt;• Merge Replication&lt;br /&gt;Which type of replication you choose for your application depends on your requirements for data consistency, site autonomy, and network resources.&lt;br /&gt;25.Differences between the SQL-server 2000 and SQL-Server 7.0.&lt;br /&gt;&lt;br /&gt;26.What is the sql using by the SQL-Server and oracle?&lt;br /&gt;&lt;br /&gt;SQL-Server: Transact-SQL&lt;br /&gt;Oracle: ANSI-SQL&lt;br /&gt;&lt;br /&gt;28.Is it possible to create a view with out a base table?&lt;br /&gt;&lt;br /&gt;Actually the answer is NO.&lt;br /&gt;But this is possible by using the “FORCED VIEWS”&lt;br /&gt;Syntax:&lt;br /&gt;Create force view XYZ&lt;br /&gt;As&lt;br /&gt;Select * from ZZZ;&lt;br /&gt;&lt;br /&gt;29.Index is the only second object, which holds data in the database.&lt;br /&gt;&lt;br /&gt;30. “MODIFY” is a keyword only it is not a clause.&lt;br /&gt;&lt;br /&gt;31.What will happen if you add a not null constraint on to a column if that column is already having the null values and what is the status of those null values, which are already present?&lt;br /&gt;&lt;br /&gt;An error is given stating that null values are found.&lt;br /&gt;&lt;br /&gt;32.I am doing a transaction, I am having four activities in those four fourth activity got some problem, then will be the transaction committed or roll backed?&lt;br /&gt;&lt;br /&gt;Automatically it will rollback, because a transaction is said to be committed when all the activities of that transaction is perfectly executed.&lt;br /&gt;Joins&lt;br /&gt;33.What is a join?&lt;br /&gt;&lt;br /&gt;34.How many types of joins are there?&lt;br /&gt;&lt;br /&gt;35.What is the difference between the outer join and left outer join?&lt;br /&gt;&lt;br /&gt;36.How to make a copy of a table (if you have a table with some name X, is it possible to create a table with a name Y by using the table X?&lt;br /&gt;&lt;br /&gt;Explanation:&lt;br /&gt;&lt;br /&gt;SQL server&lt;br /&gt;Select &lt;columns&gt; into &lt;new table=""&gt; from &lt;old table=""&gt;&lt;br /&gt;&lt;br /&gt;Oracle&lt;br /&gt;Create table &lt;/old&gt;&lt;/new&gt;&lt;/columns&gt;&lt;/rule&gt;&lt;/object&gt;&lt;/rule&gt;&lt;/condition&gt;&lt;/rule&gt;&lt;/index&gt;&lt;/col2&gt;&lt;/col1&gt;&lt;/table&gt;&lt;table name=""&gt; as select * from &lt;/table&gt;&lt;table name=""&gt;&lt;br /&gt;&lt;br /&gt;Write a query to display the details of employees whose salary is more than the ‘BLAKE’ salary.&lt;br /&gt;&lt;br /&gt;Sql&gt; select B. * from EMP A, EMP B&lt;br /&gt;Where A.ename=’BLAKE’&lt;br /&gt;A. Sal &lt;&gt; DELETE FROM table_name A WHERE ROWID &gt; (&lt;br /&gt;2    SELECT min(rowid) FROM table_name B&lt;br /&gt;3    WHERE A.key_values = B.key_values);&lt;br /&gt;&lt;br /&gt;Method 2:&lt;br /&gt;&lt;br /&gt;SQL&gt; create table table_name2 as select distinct * from table_name1;&lt;br /&gt;SQL&gt; drop table_name1;&lt;br /&gt;SQL&gt; rename table_name2 to table_name1;&lt;br /&gt;&lt;br /&gt;Method 3:&lt;br /&gt;&lt;br /&gt;SQL&gt; Delete from  where rowid not in(&lt;br /&gt;SQL&gt;     select max(rowid) from&lt;br /&gt;SQL&gt;     group by  );&lt;br /&gt;&lt;br /&gt;Method 4:&lt;br /&gt;&lt;br /&gt;SQL&gt; delete from mytable t1&lt;br /&gt;SQL&gt; where  exists (select 'x' from mytable t2&lt;br /&gt;SQL&gt;                 where t2.key_value1 = t1.key_value1&lt;br /&gt;SQL&gt;                   and t2.key_value2 = t1.key_value2&lt;br /&gt;SQL&gt;                   and t2.rowid     != t1.rowid);&lt;br /&gt;&lt;br /&gt;Note: If you create an index on the joined fields in the inner loop, you for all intensive purposes eliminate N^2 operations (no need to loop through the entire table on each pass by a record).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How can I generate primary key values for my table?&lt;br /&gt;&lt;br /&gt;Create your table with a NOT NULL column (say SEQNO). This column can now be populated with unique values:&lt;br /&gt;&lt;br /&gt;SQL&gt; UPDATE table_name SET seqno = ROWNUM;&lt;br /&gt;or use a sequences generator:&lt;br /&gt;&lt;br /&gt;SQL&gt; CREATE SEQUENCE sequence_name START WITH 1 INCREMENT BY 1;&lt;br /&gt;&lt;br /&gt;SQL&gt; UPDATE table_name SET seqno = sequence_name.NEXTVAL;&lt;br /&gt;Finally, create a unique index on this column.&lt;br /&gt;&lt;br /&gt;How can I get the time difference between two date columns&lt;br /&gt;&lt;br /&gt;select floor((date1-date2)*24*60*60)/3600)&lt;br /&gt;  || ' HOURS ' ||&lt;br /&gt;  floor((((date1-date2)*24*60*60) -&lt;br /&gt;  floor(((date1-date2)*24*60*60)/3600)*3600)/60)&lt;br /&gt;  || ' MINUTES ' ||&lt;br /&gt;  round((((date1-date2)*24*60*60) -&lt;br /&gt;  floor(((date1-date2)*24*60*60)/3600)*3600 -&lt;br /&gt;  (floor((((date1-date2)*24*60*60) -&lt;br /&gt;  floor(((date1-date2)*24*60*60)/3600)*3600)/60)*60)))&lt;br /&gt;  || ' SECS ' time_difference from   ...&lt;br /&gt;&lt;br /&gt;How does one count different data values in a column?&lt;br /&gt;&lt;br /&gt;  select dept, sum(  decode(sex,'M',1,0)) MALE,&lt;br /&gt;                sum(  decode(sex,'F',1,0)) FEMALE,&lt;br /&gt;                count(decode(sex,'M',1,'F',1)) TOTAL&lt;br /&gt;   from   my_emp_table&lt;br /&gt;   group  by dept;&lt;br /&gt;&lt;br /&gt;How does one select every n th row from a table?&lt;br /&gt;&lt;br /&gt;Method 1: Using a subquery&lt;br /&gt;   SELECT *&lt;br /&gt;   FROM   emp&lt;br /&gt;   WHERE  (ROWID,0) IN (SELECT ROWID, MOD(ROWNUM,4)&lt;br /&gt;                        FROM   emp);&lt;br /&gt;Method 2: Use dynamic views (available from Oracle7.2):&lt;br /&gt;   SELECT *&lt;br /&gt;   FROM   ( SELECT rownum rn, empno, ename&lt;br /&gt;            FROM emp&lt;br /&gt;          ) temp&lt;br /&gt;   WHERE  MOD(temp.ROWNUM,4) = 0;&lt;br /&gt;&lt;br /&gt;How does one select the top n rows from a table?&lt;br /&gt;&lt;br /&gt;   SELECT *&lt;br /&gt;     FROM TableX a&lt;br /&gt;    WHERE 10 &gt;= (SELECT COUNT(DISTINCT maxcol)&lt;br /&gt;                   FROM tableX b&lt;br /&gt;                  WHERE b.maxcol &gt;= a.maxcol)&lt;br /&gt;    ORDER BY maxcol DESC;&lt;br /&gt;&lt;br /&gt;How to implement if-then-else in a select statement?&lt;br /&gt;&lt;br /&gt;The Oracle decode function acts like a procedural statement inside an SQL statement to return different values or columns based on the values of other columns in the select statement.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;   select decode(sex, 'M', 'Male',&lt;br /&gt;                      'F', 'Female',&lt;br /&gt;                      'Unknown'&lt;br /&gt;                )&lt;br /&gt;   from   employees;&lt;br /&gt;&lt;br /&gt;Note: The decode function is not ANSI SQL and are rarely implemented in other RDBMS offerings. It is one of the good things about Oracle, but use it sparingly if portability is required.&lt;br /&gt;&lt;br /&gt;How can one dump/ examine the exact content of a database column?&lt;br /&gt;&lt;br /&gt;  SELECT DUMP(col1)&lt;br /&gt;   FROM tab1&lt;br /&gt;   WHERE cond1 = val1;&lt;br /&gt;&lt;br /&gt;   DUMP(COL1)&lt;br /&gt;   -------------------------------------&lt;br /&gt;   Typ=96 Len=4: 65,66,67,32&lt;br /&gt;&lt;br /&gt;For this example the type is 96, indicating CHAR, and the last byte in the column is 32, which is the ASCII code for a space. This tells us that this column is blank-padded.&lt;br /&gt;&lt;br /&gt;Can one drop a column from a table?&lt;br /&gt;&lt;br /&gt;Oracle does not provide a way to DROP a column.&lt;br /&gt;&lt;br /&gt;1. update t1 set column_to_drop = NULL;&lt;br /&gt;rename t1 to t1_base;&lt;br /&gt;create view t1 as select &lt;specific columns=""&gt; from t1_base;&lt;br /&gt;2. create table t2 as select &lt;specific columns=""&gt; from t1;&lt;br /&gt;drop table t1;&lt;br /&gt;rename t2 to t1;&lt;br /&gt;&lt;br /&gt;Can one rename a column in a table?&lt;br /&gt;&lt;br /&gt;No&lt;br /&gt;1. rename t1 to t1_base;&lt;br /&gt;create view t1 &lt;column list="" with="" new="" name=""&gt; as select * from t1_base;&lt;br /&gt;2. create table t2 &lt;column list="" with="" new="" name=""&gt; as select * from t1;&lt;br /&gt;drop table t1;&lt;br /&gt;rename t2 to t1;&lt;br /&gt;&lt;br /&gt;How can I change my Oracle password?&lt;br /&gt;&lt;br /&gt;Issue the following SQL command: ALTER USER &lt;username&gt; IDENTIFIED BY &lt;new_password&gt;&lt;br /&gt;/&lt;br /&gt;From Oracle8 you can just type "password" from SQL*Plus, or if you need to change another user's password, type "password user_name".&lt;br /&gt;&lt;br /&gt;Workaround for snapshots on tables with LONG columns&lt;br /&gt;&lt;br /&gt;You can use the SQL*Plus COPY command instead of snapshots if you need to copy LONG and LONG RAW variables from one location to another. Eg:&lt;br /&gt;&lt;br /&gt;COPY TO SCOTT/TIGER@REMOTE     -&lt;br /&gt;CREATE IMAGE_TABLE USING       -&lt;br /&gt;  SELECT IMAGE_NO, IMAGE  -&lt;br /&gt;  FROM   IMAGES;&lt;br /&gt;&lt;br /&gt;Note: If you run Oracle8, convert your LONGs to LOBs, as it can be replicated.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/new_password&gt;&lt;/username&gt;&lt;/column&gt;&lt;/column&gt;&lt;/specific&gt;&lt;/specific&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-2805697189160833999?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/2805697189160833999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=2805697189160833999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2805697189160833999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2805697189160833999'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/sql-server-questions-and-answers.html' title='SQL SERVER Questions And Answers'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5943521279213239819.post-2434862565334598543</id><published>2008-07-22T15:35:00.000+05:30</published><updated>2008-07-22T15:43:07.921+05:30</updated><title type='text'>Quick Test Professional Q &amp; A</title><content type='html'>&lt;div class="snap_preview"  style="font-family:times new roman;"&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;1. What is Quick test pro?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;It’s a Mercury interactive’s keyword driven testing tool&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;2. By using QTP what kind of applications we can test?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;By using QTP we can test standard windows applications, Web objects, ActiveX controls, and Visual basic applications.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;3. What is called as test?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Test is a collection of steps organized into one or more actions, which are used to verify that your application performs as expected&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;4. What is the meaning of business component?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;It’s a collection of steps representing a single task in your application. Business components are combined into specific scenario to build business process tests in Mercury Quality center with Business process testing&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;5. How the test will be created in QTP?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;As we navigate through our application, QTP records each step we perform and generates a test or component that graphically displays theses steps in a table-based keyword view.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;6. What are all the main tasks which will be accomplished by the QTP after creating a test?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;After we have finished recording, we can instruct QTP to check the properties of specific objects in our application by means of enhancement features available in QTP. When we perform a run session, QTP performs each step in our test or component. After the run session ends, we can view a report detailing which steps were performed, and which one succeeded or failed.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;7. What is Actions?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;A test is composed of actions. The steps we add to a test are included with in the test’s actions. By each test begin with a single action. We can divide our test into multiple actions to organize our test.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;8. What are all the main stages will involve in QTP while testing?&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;Creating tests or business components&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;Running tests or business components&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;Analyzing results&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;9. How the creation of test will be accomplished in QTP?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;We can create the test or component by either recording a session on our application or web site or building an object repository and adding steps manually to the keyword view using keyword-driven functionality. We can then modify our test with programming statements.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;10. What is the purpose of documentation in key word view?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;The documentation column of the key word view used to displays a description of each step in easy to understand sentences.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;11. Keyword view in QTP is also termed as&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Icon based view&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;12. What is the use of data table in QTP?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Parameterizing the test&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;13. What is the use of working with actions?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;To design a modular and efficient tests&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;14. What is the file extension of the code file and object repository file in QTP?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;The extension for code file is .vbs and the extension for object repository is .tsr&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;15. What are the properties we can use for identifying a browser and page when using descriptive programming?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;The name property is used to identify the browser and the title property is used to identify the page&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;16. What are the different scripting languages we can use when working with QTP?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;VB script&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;17. Give the example where we can use a COM interface in our QTP project?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;COM interface appears in the scenario of front end and back end.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;18. Explain the keyword create object with example&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Create object is used to create and return a reference to an automation object.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;For example:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Dim ExcelSheetSet&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;ExcelSheet=createobject(”Excel.Sheet”)&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;19. How to open excel sheet using QTP script?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;You can open excel in QTP by using the following command&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;System.Util.Run”Path of the file”&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;20. Is it necessary to learn VB script to work with QTP?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Its not mandate that one should mastered in VB script to work with QTP. It is mostly user friendly and for good results we need to have basic VB or concepts which will suffice&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;21. If Win Runner and QTP both are functional testing tools from the same company. Why a separate tool QTP came in to picture?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;QTP has some additional functionality which is not present in Win Runner. For example, you can test (Functionality and Regression testing) an application developed in .Net technology with QTP, which is not possible to test in Win Runner&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;22. Explain in brief about the QTP automation object model&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;The test object model is a large set of object types or classes that QTP uses to represent the objects in our application. Each test object has a list of properties that can uniquely identify objects of that class&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;23. What is a Run-Time data table?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;The test results tree also includes the table-shaped icon that displays the run-time data table-a table that shows the values used to run a test containing data table parameters or the data table output values retrieved from a application under test&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;24. What are all the components of QTP test script?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;QTP test script is a combination of VB script statements and statements that use QuickTest test objects, methods and properties&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;25. What is test object?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;It’s an object that QTP uses to represent an object in our application. Each test object has one or more methods and properties that we can use to perform operations and retrieve values for that object. Each object also has a number of identification properties that can describe the object.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;26. What are all the rules and guidelines want to be followed while working in expert view?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Case-sensitivity&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;VB script is not case sensitive and does not differentiate between upper case and lower case spelling of words.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Text strings&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;When we enter value as a string, that time we must add quotation marks before and after the string&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Variables&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;We can use variables to store strings, integers, arrays and objects. Using variables helps to make our script more readable and flexible.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Parentheses&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;To achieve the desired result and to avoid the errors, it is important that we use parentheses() correctly in our statements.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Comments&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;We can add comments to our statements using apostrophe (’), either at a beginning of the separate line or at the end of a statement&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;Spaces&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:130%;"&gt;We can add extra blank spaces to our script to improve clarity. These spaces are ignored by the VB script&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5943521279213239819-2434862565334598543?l=qtp-softwaretesting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtp-softwaretesting.blogspot.com/feeds/2434862565334598543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5943521279213239819&amp;postID=2434862565334598543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2434862565334598543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5943521279213239819/posts/default/2434862565334598543'/><link rel='alternate' type='text/html' href='http://qtp-softwaretesting.blogspot.com/2008/07/quick-test-professional-q.html' title='Quick Test Professional Q &amp; A'/><author><name>Venkatesh</name><uri>http://www.blogger.com/profile/09793131409379336367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_KtXsMFwxyM4/SIhjIv7kebI/AAAAAAAAAB8/UV9GGJ5TE2M/S220/IMAGE_072.jpg'/></author><thr:total>0</thr:total></entry></feed>
