<?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-822230696137075392</id><updated>2012-02-16T03:16:36.299-08:00</updated><category term='Black Box Testing'/><category term='Win Runner'/><category term='White Box Testing'/><category term='Software Testing'/><category term='Test Cases'/><category term='SQL'/><category term='Test Director'/><category term='Articles'/><category term='SDLC Models'/><category term='Bug Reporting'/><title type='text'>All About Software Testing</title><subtitle type='html'>All About Software Testing is a Blog dedicated to extensive Software Quality Assurance and Software Testing information.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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-822230696137075392.post-7841134843099769490</id><published>2010-10-07T05:13:00.001-07:00</published><updated>2010-10-07T05:13:36.278-07:00</updated><title type='text'>Software testing life cycle</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;Software testing life cycle identifies what test activities to carry out and when (what is the best time) to accomplish those test activities. Even though testing differs between organizations, there is a testing life cycle.&lt;br /&gt;&lt;br /&gt;Software Testing Life Cycle consists of six (generic) phases:&lt;br /&gt;&lt;br /&gt;    * Test Planning,&lt;br /&gt;    * Test Analysis,&lt;br /&gt;    * Test Design,&lt;br /&gt;    * Construction and verification,&lt;br /&gt;    * Testing Cycles,&lt;br /&gt;    * Final Testing and Implementation and&lt;br /&gt;    * Post Implementation.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Software testing has its own life cycle that intersects with every stage of the SDLC. The basic requirements in software testing life cycle is to control/deal with software testing – Manual, Automated and Performance.&lt;br /&gt;Test Planning&lt;br /&gt;&lt;br /&gt;This is the phase where Project Manager has to decide what things need to be tested, do I have the appropriate budget etc. Naturally proper planning at this stage would greatly reduce the risk of low quality software. This planning will be an ongoing process with no end point.&lt;br /&gt;&lt;br /&gt;Activities at this stage would include preparation of high level test plan-(according to IEEE test plan template The Software Test Plan (STP) is designed to prescribe the scope, approach, resources, and schedule of all testing activities. The plan must identify the items to be tested, the features to be tested, the types of testing to be performed, the personnel responsible for testing, the resources and schedule required to complete testing, and the risks associated with the plan.). Almost all of the activities done during this stage are included in this software test plan and revolve around a test plan.&lt;br /&gt;Test Analysis&lt;br /&gt;&lt;br /&gt;Once test plan is made and decided upon, next step is to delve little more into the project and decide what types of testing should be carried out at different stages of SDLC, do we need or plan to automate, if yes then when the appropriate time to automate is, what type of specific documentation I need for testing.&lt;br /&gt;&lt;br /&gt;Proper and regular meetings should be held between testing teams, project managers, development teams, Business Analysts to check the progress of things which will give a fair idea of the movement of the project and ensure the completeness of the test plan created in the planning phase, which will further help in enhancing the right testing strategy created earlier. We will start creating test case formats and test cases itself. In this stage we need to develop Functional validation matrix based on Business Requirements to ensure that all system requirements are covered by one or more test cases, identify which test cases to automate, begin review of documentation, i.e. Functional Design, Business Requirements, Product Specifications, Product Externals etc. We also have to define areas for Stress and Performance testing.&lt;br /&gt;Test Design&lt;br /&gt;&lt;br /&gt;Test plans and cases which were developed in the analysis phase are revised. Functional validation matrix is also revised and finalized. In this stage risk assessment criteria is developed. If you have thought of automation then you have to select which test cases to automate and begin writing scripts for them. Test data is prepared. Standards for unit testing and pass / fail criteria are defined here. Schedule for testing is revised (if necessary) &amp; finalized and test environment is prepared.&lt;br /&gt;Construction and verification&lt;br /&gt;&lt;br /&gt;In this phase we have to complete all the test plans, test cases, complete the scripting of the automated test cases, Stress and Performance testing plans needs to be completed. We have to support the development team in their unit testing phase. And obviously bug reporting would be done as when the bugs are found. Integration tests are performed and errors (if any) are reported.&lt;br /&gt;Testing Cycles&lt;br /&gt;&lt;br /&gt;In this phase we have to complete testing cycles until test cases are executed without errors or a predefined condition is reached. Run test cases --&gt; Report Bugs --&gt; revise test cases (if needed) --&gt; add new test cases (if needed) --&gt; bug fixing --&gt; retesting (test cycle 2, test cycle 3….).&lt;br /&gt;Final Testing and Implementation&lt;br /&gt;&lt;br /&gt;In this we have to execute remaining stress and performance test cases, documentation for testing is completed / updated, provide and complete different matrices for testing. Acceptance, load and recovery testing will also be conducted and the application needs to be verified under production conditions.&lt;br /&gt;Post Implementation&lt;br /&gt;In this phase, the testing process is evaluated and lessons learnt from that testing process are documented. Line of attack to prevent similar problems in future projects is identified. Create plans to improve the processes. The recording of new errors and enhancements is an ongoing process. Cleaning up of test environment is done and test machines are restored to base lines in this stage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-7841134843099769490?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/7841134843099769490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2010/10/software-testing-life-cycle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7841134843099769490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7841134843099769490'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2010/10/software-testing-life-cycle.html' title='Software testing life cycle'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-7419165331353303029</id><published>2010-10-07T05:12:00.001-07:00</published><updated>2010-10-07T05:12:28.072-07:00</updated><title type='text'>MUTATION TESTING</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;A kind of testing in which, the application is tested for the code that was modified after fixing a particular bug/defect. It also helps in finding out which code and which strategy of coding can help in developing the functionality effectively.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-7419165331353303029?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/7419165331353303029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2010/10/mutation-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7419165331353303029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7419165331353303029'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2010/10/mutation-testing.html' title='MUTATION TESTING'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-2927619415070212504</id><published>2010-06-09T23:41:00.000-07:00</published><updated>2010-06-09T23:42:34.358-07:00</updated><title type='text'>Proof of Concept &amp; Interoperability Testing</title><content type='html'>Interoperability testing has become a requirement for companies that deploy multi-vendor networks. To satisfy this requirement, network and storage providers and managers have three options.&lt;br /&gt;&lt;br /&gt;   1. Set up an interoperability lab, an expensive and time-consuming project.&lt;br /&gt;&lt;br /&gt;   2. Use a third-party interoperability lab, such as ISOCORE or the University of New Hampshire.&lt;br /&gt;&lt;br /&gt;   3. Create a proof-of-concept lab, such as the labs at Cisco or Spirent Communications.&lt;br /&gt;&lt;br /&gt;These labs typically connect the devices with a copper or fiber-optic patch cable and run the tests. Such testing reflects a best-case scenario that is useful for base-line interoperability testing but doesn’t represent how the devices will interoperate in an actual network.&lt;br /&gt;&lt;br /&gt;It is analogous to testing the auto-pilot system of an airplane to see if it could land the plane in ideal weather conditions. While the test proves the plane can land itself on a perfect day, it is not a predictor of how the system will behave in wide range of weather conditions under which a plane will have to operate.&lt;br /&gt;&lt;br /&gt;Sometimes spools of fiber are used to create the delay found in wide area networks. While this is an improvement over patch cables, there are three major limitations to proof of concept and interoperability testing with spools of fiber:&lt;br /&gt;&lt;br /&gt;   1. Spools of fiber cannot provide dynamic tests. The tests must be manually stopped and restarted to change out the spool of fiber for one with a different length.&lt;br /&gt;&lt;br /&gt;   2. Spools of fiber are expensive and impractical. Imagine the cost associated with moving an 50,000 km spool of fiber to another lab.&lt;br /&gt;&lt;br /&gt;   3. Spools of fiber only provide delay. They do not address the various other impairments that exist in a network.&lt;br /&gt;&lt;br /&gt;It is as if we improved our auto-pilot system testing to include fixed amounts of wind from a single direction. Factors such as fog, rain, snow and wind sheers are still ignored in the testing. Weather conditions are dynamic and multifaceted. Testing under a single condition is not a realistic test. As with weather, so it is with networks. Impairments in real networks do not limit themselves to a single issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-2927619415070212504?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/2927619415070212504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2010/06/proof-of-concept-interoperability.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2927619415070212504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2927619415070212504'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2010/06/proof-of-concept-interoperability.html' title='Proof of Concept &amp; Interoperability Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-4129881734054266218</id><published>2010-06-09T04:31:00.001-07:00</published><updated>2010-06-09T04:33:24.402-07:00</updated><title type='text'></title><content type='html'>&lt;a href="www.qaamitahuja.blogspot.com"&gt;www.qaamitahuja.blogspot.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-4129881734054266218?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/4129881734054266218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2010/06/www.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/4129881734054266218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/4129881734054266218'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2010/06/www.html' title=''/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-2906541548531463264</id><published>2009-10-14T23:27:00.000-07:00</published><updated>2009-10-14T23:32:22.724-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDLC Models'/><title type='text'>Iterative Model</title><content type='html'>&lt;div style="text-align: justify;"&gt;An iterative lifecycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model. Consider an iterative lifecycle model which consists of repeating the following four phases in sequence:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A Requirements phase, in which the requirements for the software are gathered and analyzed. Iteration should eventually result in a requirements phase that produces a complete and final specification of requirements. - A Design phase, in which a software solution to meet the requirements is designed. This may be a new design, or an extension of an earlier design.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;An Implementation and Test phase, when the software is coded, integrated and tested.&lt;br /&gt;&lt;br /&gt;A Review phase, in which the software is evaluated, the current requirements are reviewed, and changes and additions to requirements proposed.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;For each cycle of the model, a decision has to be made as to whether the software produced by the cycle will be discarded, or kept as a starting point for the next cycle (sometimes referred to as incremental prototyping). Eventually a point will be reached where the requirements are complete and the software can be delivered, or it becomes impossible to enhance the software as required, and a fresh start has to be made.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The iterative lifecycle model can be likened to producing software by successive approximation. Drawing an analogy with mathematical methods that use successive approximation to arrive at a final solution, the benefit of such methods depends on how rapidly they converge on a solution.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The key to successful use of an iterative software development lifecycle is rigorous validation of requirements, and verification (including testing) of each version of the software against those requirements within each cycle of the model. The first three phases of the example iterative model is in fact an abbreviated form of a sequential V or waterfall lifecycle model. Each cycle of the model produces software that requires testing at the unit level, for software integration, for system integration and for acceptance. As the software evolves through successive cycles, tests have to be repeated and extended to verify each version of the software.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt;&lt;br /&gt;Amit Ahuja&lt;br /&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-2906541548531463264?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/2906541548531463264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/10/iterative-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2906541548531463264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2906541548531463264'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/10/iterative-model.html' title='Iterative Model'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-1910101950213002731</id><published>2009-10-06T03:45:00.000-07:00</published><updated>2009-10-06T03:57:30.464-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Test Cases'/><title type='text'>Test Cases</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Designing Test Cases&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A test case is a detailed procedure that fully tests a feature or an aspect of a feature. Whereas the test plan describes what to test, a test case describes how to perform a particular test. You need to develop a test case for each test listed in the test plan. Figure 2.10 illustrates the point at which test case design occurs in the lab development and testing process.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test case includes:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   * The purpose of the test.&lt;br /&gt;&lt;br /&gt;   * Special hardware requirements, such as a modem.&lt;br /&gt;&lt;br /&gt;   * Special software requirements, such as a tool.&lt;br /&gt;&lt;br /&gt;   * Specific setup or configuration requirements.&lt;br /&gt;&lt;br /&gt;   * A description of how to perform the test.&lt;br /&gt;&lt;br /&gt;   * The expected results or success criteria for the test.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://qaamitahuja.blogspot.com/search/label/Test%20Cases" title='Test Cases'&gt;Test cases&lt;/a&gt; should be written by a team member who understands the function or technology being tested, and each test case should be submitted for peer review.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Organizations take a variety of approaches to documenting &lt;a href="http://qaamitahuja.blogspot.com/search/label/Test%20Cases" title='Test Cases'&gt;test cases;&lt;/a&gt; these range from developing detailed, recipe-like steps to writing general descriptions. In detailed &lt;a href="http://qaamitahuja.blogspot.com/search/label/Test%20Cases" title='Test Cases'&gt;test cases,&lt;/a&gt; the steps describe exactly how to perform the test. In descriptive test cases, the tester decides at the time of the test how to perform the test and what data to use.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Most organizations prefer detailed &lt;a href="http://qaamitahuja.blogspot.com/search/label/Test%20Cases" title='Test Cases'&gt;test cases&lt;/a&gt; because determining pass or fail criteria is usually easier with this type of case. In addition, detailed test cases are reproducible and are easier to automate than descriptive test cases. This is particularly important if you plan to compare the results of tests over time, such as when you are optimizing configurations. Detailed test cases are more time-consuming to develop and maintain. On the other hand, test cases that are open to interpretation are not repeatable and can require debugging, consuming time that would be better spent on testing.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test Case Design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test Case ID:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is unique number given to test case in order to be identified.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test description:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The description if test case you are going to test.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Revision history:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Each test case has to have its revision history in order to know when and by whom it is created or modified.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Function to be tested:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The name of function to be tested.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Environment:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It tells in which environment you are testing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test Setup:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Anything you need to set up outside of your application for example printers, network and so on.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test Execution:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is detailed description of every step of execution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Expected Results:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The description of what you expect the function to do.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Actual Results:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;pass / failed&lt;br /&gt;&lt;br /&gt;If pass - What actually happen when you run the test.&lt;br /&gt;&lt;br /&gt;If failed - put in description of what you've observed.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt; &lt;br /&gt;Amit Ahuja&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-1910101950213002731?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/1910101950213002731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/10/test-cases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1910101950213002731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1910101950213002731'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/10/test-cases.html' title='Test Cases'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-8313539913460570590</id><published>2009-10-02T23:13:00.000-07:00</published><updated>2009-10-06T03:42:41.090-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Black Box Testing'/><title type='text'>Black Box Testing</title><content type='html'>Testing not based on any knowledge of the internal design or code. Tests are based on requirements and functionality.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt; &lt;br /&gt;Amit Ahuja&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-8313539913460570590?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/8313539913460570590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/10/black-box-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8313539913460570590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8313539913460570590'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/10/black-box-testing.html' title='Black Box Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-4315500165792304568</id><published>2009-09-30T23:18:00.000-07:00</published><updated>2009-10-06T03:43:24.529-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Articles'/><title type='text'>Who should test? and what? – An Overview</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Who should do the testing?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://qaamitahuja.blogspot.com/search/label/Software%20Testing" title="Software Testing"&gt;Software Testing&lt;/a&gt; is not the job of one person. It is teamwork. The size of the team depends upon the complexity and size of the software being tested. The software developer should have minimum or no role in the testing process as everyone knows that for a person who has developed the software, it is very difficult to pin point errors in his own creations.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Seven soft skills crucial for a good tester are – that He or She must:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1) Be Cautious&lt;br /&gt;2) Be Curious&lt;br /&gt;3) Have Patience&lt;br /&gt;4) Have Perseverance&lt;br /&gt;5) Be Analytical&lt;br /&gt;6) Be Critical but with an attitude of not jumping to conclusions.&lt;br /&gt;7) Be Good Communicator&lt;br /&gt;&lt;br /&gt;Thus “More the soft skills a tester has, better tester He or She is”&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Above all, a Most Successful Tester is the one:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1) Who is completely passionate.&lt;br /&gt;&lt;br /&gt;2) Who is always eager to learn more &amp;amp; more.&lt;br /&gt;&lt;br /&gt;3) Who never gives up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Various personnel and their roles during development &amp;amp; testing are:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A) Customer:&lt;/span&gt; Provides funding, provides requirements, approves changes and some of the test results.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;B) Project Manager:&lt;/span&gt; Plans and manages the project.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C) Software Developer:&lt;/span&gt;&lt;/span&gt; Designs the codes and builds the software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;D) Testing coordinator:&lt;/span&gt; Creates test plans and test specifications based on the requirements and functional and technical documents.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;E) Testing person:&lt;/span&gt; Executes the tests and documents the results.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Role based demarcation exclusive to the field of Testing:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) Junior Software Testers:&lt;/span&gt; Are the ones having good theoretical knowledge of testing &amp;amp; would have participated in good number of seminars on testing or would have passed some courses in testing. Such individuals are not expected to have experience on testing; however little experience can be desirable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Software Testers: &lt;/span&gt;Are the ones having good ability to understand testing packs, do testing, and doing documentation / defect logging. Such individuals usually do repetitive work &amp;amp; are invariably involved in front-end testing. Usually at least 6 months of testing experience is preferred for this role.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;3) Senior Software Testers:&lt;/span&gt; Are the ones having responsibility of doing all tasks usually performed by a Tester. In addition to this they are involved in back-end testing. The senior testers also do updating of test cases. Usually 1 to 2 years of experience of testing is preferred for this role.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;4) Testing Analysts:&lt;/span&gt; Are the ones having expertise in extracting requirements out of documentation &amp;amp; doing thorough verification with business &amp;amp; ascertaining the correctness of all the information. The testing analysts also do writing of test cases, executing the tests &amp;amp; reporting the findings thereafter. Usually 2 to 3 years of experience of testing along with at least 1-year experience of analysis is preferred for this role.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;5) Testing Managers:&lt;/span&gt; Are the ones having experience of doing all the tasks described above. Apart from this they possess the ability of managing the entire testing process, personnel as well as the testing environment. Usually 3 to 4 years of experience of testing along with at least 1-year of managerial experience &amp;amp; sound expertise of Project Management is ideal for this role.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6) Testing Consultants: &lt;/span&gt;Are the senior people having experience of doing all the tasks described above. Consultants are usually good communicators having proven ability of man management, with the help of which they are able to effectively handle the client &amp;amp; the senior executives of the organization. This includes doing systematic analysis of the current testing process of the client &amp;amp; ability to guide the client with their expert comments &amp;amp; recommendations to improve. Consultants have great expertise of manual testing in addition to sound knowledge of specialized fields like Automation, Usability &amp;amp; Security etc.&lt;br /&gt;&lt;br /&gt;Generally persons with 5 years or more of Testing &amp;amp; Project Management experience in some senior capacity are appointed as testing consultants.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7) Test Automators: &lt;/span&gt;Are the ones having good skills of development plus sound experience of manual testing &amp;amp; have acquired specialization of Automated Testing; but as of date they would not prefer to get involved in manual testing. Automators have thorough knowledge &amp;amp; experience of using different Automation Tools. Usually 1 to 2 years of experience of test automation is preferred for this role.&lt;br /&gt;&lt;br /&gt;Next question comes as to what should be tested?&lt;br /&gt;&lt;br /&gt;According to Myer (The great Testing Guru) - for most of the programs, it is impractical to attempt to test the program with all possible inputs, due to a combinatorial explosion. For those inputs selected, a testing oracle is needed to determine the correctness of the output for particular test input.&lt;br /&gt;&lt;br /&gt;Myer also says that, for most programs, it is impractical to attempt to test all execution paths through the product, due to combinatorial explosion. It is also not possible to develop an algorithm for generating test data for paths in an arbitrary product, due to the inability to determine path feasibility.&lt;br /&gt;&lt;br /&gt;The point, which is being emphasized here, is that complete or exhaustive testing is just not possible. This is because exhaustive testing requires every statement in the program and every possible path combination to be executed at once.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt; &lt;br /&gt;&lt;br /&gt;Amit Ahuja&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-4315500165792304568?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/4315500165792304568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/09/who-should-test-and-what-overview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/4315500165792304568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/4315500165792304568'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/09/who-should-test-and-what-overview.html' title='Who should test? and what? – An Overview'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-8441047057927065075</id><published>2009-09-24T23:37:00.000-07:00</published><updated>2009-10-06T03:44:11.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Free Download SQL Books</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;1) &lt;a href="http://www.db.cs.ucdavis.edu/teaching/sqltutorial/tutorial.pdf"&gt; Teach Yourself SQL in 21 Days&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt; &lt;br /&gt;&lt;br /&gt;Amit Ahuja&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-8441047057927065075?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/8441047057927065075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/09/free-download-sql-books.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8441047057927065075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8441047057927065075'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/09/free-download-sql-books.html' title='Free Download SQL Books'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-2364482041726294647</id><published>2009-09-24T03:11:00.000-07:00</published><updated>2009-09-24T03:19:40.792-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDLC Models'/><title type='text'>Waterfall Model</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;There are various software development approaches defined and designed which are used/employed during development process of software, these approaches are also referred as "Software Development Process Models".&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Waterfall Model&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Waterfall approach was first Process Model to be introduced and followed widely in Software Engineering to ensure success of the project. In "The Waterfall" approach, the whole process of software development is divided into separate process phases.&lt;br /&gt;&lt;br /&gt;The phases in Waterfall model are: Requirement Specifications phase, Software Design, Implementation and Testing &amp;amp; Maintenance. All these phases are cascaded to each other so that second phase is started as and when defined set of goals are achieved for first phase and it is signed off, so the name "Waterfall Model". All the methods and processes undertaken in Waterfall Model are more visible.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The stages of "The Waterfall Model" are:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Requirement Analysis &amp;amp; Definition:&lt;/span&gt; All possible requirements of the system to be developed are captured in this phase. Requirements are set of functionalities and constraints that the end-user (who will be using the system) expects from the system. The requirements are gathered from the end-user by consultation, these requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied. Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System &amp;amp; Software Design:&lt;/span&gt; Before a starting for actual coding, it is highly important to understand what we are going to create and what it should look like? The requirement specifications from first phase are studied in this phase and system design is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The system design specifications serve as input for the next phase of the model.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Implementation &amp;amp; Unit Testing:&lt;/span&gt; On receiving system design documents, the work is divided in modules/units and actual coding is started. The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality; this is referred to as Unit Testing. Unit testing mainly verifies if the modules/units meet their specifications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Integration &amp;amp; System Testing:&lt;/span&gt; As specified above, the system is first divided in units which are developed and tested for their functionality. These units are integrated into a complete system during Integration phase and tested to check if all modules/units coordinate between each other and the system as a whole behaves as per the specifications. After successfully testing the software, it is delivered to the customer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operations &amp;amp; Maintenance:&lt;/span&gt; This phase of "The Waterfall Model" is virtually never ending phase (Very long). Generally, problems with the system developed (which are not found during the development life cycle) come up after its practical use starts, so the issues related to the system are solved after deployment of the system. Not all the problems come in picture directly but they arise time to time and needs to be solved; hence this process is referred as Maintenance.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Advantages and Disadvantages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Advantages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The advantage of waterfall development is that it allows for departmentalization and managerial control. A schedule can be set with deadlines for each stage of development and a product can proceed through the development process like a car in a carwash, and theoretically, be delivered on time. Development moves from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds in strict order, without any overlapping or iterative steps.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Disadvantages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The disadvantage of waterfall development is that it does not allow for much reflection or revision. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. Alternatives to the waterfall model include joint application development (JAD), rapid application development (RAD), synch and stabilize, build and fix, and the spiral model.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Common Errors in Requirements Analysis&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the traditional waterfall model of software development, the first phase of requirements analysis is also the most important one. This is the phase which involves gathering information about the customer's needs and defining, in the clearest possible terms, the problem that the product is expected to solve.&lt;br /&gt;&lt;br /&gt;This analysis includes understanding the customer's business context and constraints, the functions the product must perform, the performance levels it must adhere to, and the external systems it must be compatible with. Techniques used to obtain this understanding include customer interviews, use cases, and "shopping lists" of software features. The results of the analysis are typically captured in a formal requirements specification, which serves as input to the next step.&lt;br /&gt;&lt;br /&gt;Well, at least that's the way it's supposed to work theoretically. In reality, there are a number of problems with this theoretical model, and these can cause delays and knock-on errors in the rest of the process. This article discusses some of the more common problems that project managers experience during this phase, and suggests possible solutions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem 1: Customers don't (really) know what they want&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Possibly the most common problem in the requirements analysis phase is that customers have only a vague idea of what they need, and it's up to you to ask the right questions and perform the analysis necessary to turn this amorphous vision into a formally-documented software requirements specification that can, in turn, be used as the basis for both a project plan and an engineering architecture.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To solve this problem, you should:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   * Ensure that you spend sufficient time at the start of the project on understanding the objectives, deliverables and scope of the project.&lt;br /&gt;   * Make visible any assumptions that the customer is using, and critically evaluate both the likely end-user benefits and risks of the project.&lt;br /&gt;   * Attempt to write a concrete vision statement for the project, which encompasses both the specific functions or user benefits it provides and the overall business problem it is expected to solve.&lt;br /&gt;   * Get your customer to read, think about and sign off on the completed software requirements specification, to align expectations and ensure that both parties have a clear understanding of the deliverabl&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem 2: Requirements change during the course of the project&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The second most common problem with software projects is that the requirements defined in the first phase change as the project progresses. This may occur because as development progresses and prototypes are developed, customers are able to more clearly see problems with the original plan and make necessary course corrections; it may also occur because changes in the external environment require reshaping of the original business problem and hence necessitates a different solution than the one originally proposed.&lt;br /&gt;&lt;br /&gt;Good project managers are aware of these possibilities and typically already have backup plans in place to deal with these changes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To solve this problem, you should:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   * Have a clearly defined process for receiving, analyzing and incorporating change requests, and make your customer aware of his/her entry point into this process.&lt;br /&gt;   * Set milestones for each development phase beyond which certain changes are not permissible -- for example, disallowing major changes once a module reaches 75 percent completion.&lt;br /&gt;   * Ensure that change requests (and approvals) are clearly communicated to all stakeholders, together with their rationale, and that the master project plan is updated accordingly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem 3: Customers have unreasonable timelines&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's quite common to hear a customer say something like "it's an emergency job and we need this project completed in X weeks". A common mistake is to agree to such timelines before actually performing a detailed analysis and understanding both of the scope of the project and the resources necessary to execute it. In accepting an unreasonable timeline without discussion, you are, in fact, doing your customer a disservice: it's quite likely that the project will either get delayed (because it wasn't possible to execute it in time) or suffer from quality defects (because it was rushed through without proper inspection).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To solve this problem, you should:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;    * Convert the software requirements specification into a project plan, detailing tasks and resources needed at each stage and modeling best-case, middle-case and worst-case scenarios.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;   * Ensure that the project plan takes account of available resource constraints and keeps sufficient time for testing and quality inspection.&lt;br /&gt;&lt;br /&gt;   * Enter into a conversation about deadlines with your customer, using the figures in your draft plan as supporting evidence for your statements. Assuming that your plan is reasonable, it's quite likely that the ensuing negotiation will be both productive and result in a favorable outcome for both parties.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem 4: Communication gaps exist between customers, engineers and project managers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Often, customers and engineers fail to communicate clearly with each other because they come from different worlds and do not understand technical terms in the same way. This can lead to confusion and severe miscommunication, and an important task of a project manager, especially during the requirements analysis phase, is to ensure that both parties have a precise understanding of the deliverable and the tasks needed to achieve it.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To solve this problem, you should:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   * Take notes at every meeting and disseminate these throughout the project team.&lt;br /&gt;&lt;br /&gt;   * Be consistent in your use of words. Make yourself a glossary of the terms that you're going to use right at the start, ensure all stakeholders have a copy, and stick to them consistently.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem 5: The development team doesn't understand the politics of the customer's organization&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The scholars Bolman and Deal suggest that an effective manager is one who views the organization as a "contested arena" and understands the importance of power, conflict, negotiation and coalitions. Such a manager is not only skilled at operational and functional tasks, but he or she also understands the importance of framing agendas for common purposes, building coalitions that are united in their perspective, and persuading resistant managers of the validity of a particular position.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;These skills are critical when dealing with large projects in large organizations, as information is often fragmented and requirements analysis is hence stymied by problems of trust, internal conflicts of interest and information inefficiencies.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To solve this problem, you should:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   * Review your existing network and identify both the information you need and who is likely to have it.&lt;br /&gt;   * Cultivate allies, build relationships and think systematically about your social capital in the organization.&lt;br /&gt;   * Persuade opponents within your customer's organization by framing issues in a way that is relevant to their own experience.&lt;br /&gt;   * Use initial points of access/leverage to move your agenda forward.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;/div&gt;&lt;div style="text-align: justify;" id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-2364482041726294647?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/2364482041726294647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/09/waterfall-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2364482041726294647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2364482041726294647'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/09/waterfall-model.html' title='Waterfall Model'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-5695234393054099946</id><published>2009-09-24T02:06:00.001-07:00</published><updated>2009-10-01T03:39:35.463-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Kinds of Testing that should be considered for Websites.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Black box testing &lt;/a&gt;&lt;/span&gt;– Testing not based on any knowledge of the internal design or code. Tests are based on requirements and functionality.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Incremental Integration Testing &lt;/a&gt;&lt;/span&gt;– Continuous testing of website as new functionality is added; requires that various aspects of an web applications functionality be independent enough to work separately before all parts of the program are completed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Integration Testing&lt;/a&gt;&lt;/span&gt; – Testing that is done on combined parts of an application to determine if they function together correctly. The ‘parts’ can be code modules, individual applications, pages in a website etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Functional Testing&lt;/a&gt;&lt;/span&gt; – Black box type testing geared to functional requirements of an application; testers should do this type of testing. This doesn’t mean that the programmers shouldn’t check that their code works before releasing it (which of course applies to any stage of testing.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;System Testing&lt;/a&gt;&lt;/span&gt; – Black box type testing that is based on overall requirements specifications; covers all combined parts of a web application.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;End-to-end Testing&lt;/a&gt;&lt;/span&gt; – Similar to system testing; the ‘macro’ end of the test scale; involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Sanity Testing or Smoke Testing&lt;/a&gt;&lt;/span&gt; – typically an initial testing effort to determine if a new web application is performing well enough to accept it for a major testing effort. For example, if there are lots of missing links, missing images, missing validations, or corrupting databases, the website may not be in a ’sane’ enough condition to warrant further testing in its current state.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Regression Testing&lt;/a&gt; &lt;/span&gt;– re-testing after fixes or modifications of the website or its pages. It can be difficult to determine how much re-testing is needed, especially near the end of the development cycle. Automated testing tools can be especially useful for this type of testing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Acceptance Testing &lt;/a&gt;&lt;/span&gt;– final testing based on specifications of the end-user or customer, or based on use by end-users/customers over some limited period of time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Load Testing&lt;/a&gt;&lt;/span&gt; – testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Stress Testing&lt;/a&gt; &lt;/span&gt;– term often used interchangeably with ‘load’ and ‘performance’ testing. Also used to describe such tests as system functional testing while under unusually heavy loads, heavy repetition of certain actions or inputs, input of large numerical values, large complex queries to a database system, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Performance Testing&lt;/a&gt;&lt;/span&gt; – term often used interchangeably with ’stress’ and ‘load’ testing. Ideally ‘performance’ testing (and any other ‘type’ of testing) is defined in requirements documentation or QA or Test Plans.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Usability Testing &lt;/a&gt;&lt;/span&gt;– testing that is done for ‘user-friendliness’. Clearly this is subjective, and will depend on the targeted end-user or customer. User interviews, surveys, video recording of user sessions, and other techniques can be used. Programmers and testers are usually not appropriate as usability testers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Security Testing &lt;/a&gt;&lt;/span&gt;– testing how well the system protects against unauthorized internal or external access, willful damage, etc; may require sophisticated testing techniques.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Compatibility Testing&lt;/a&gt;&lt;/span&gt; – testing how well website performs in a particular hardware/software/operating system//browser/network etc. environment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Exploratory Testing&lt;/a&gt;&lt;/span&gt; – often taken to mean a creative, informal software test that is not based on formal test plans or test cases; testers may be learning the website as they test it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Ad-hoc Testing&lt;/a&gt;&lt;/span&gt; – similar to exploratory testing, but often taken to mean that the testers have significant understanding of the website before testing it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;User acceptance Testing &lt;/a&gt;&lt;/span&gt;– determining if website is satisfactory to an end-user or customer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Alpha Testing &lt;/a&gt;&lt;/span&gt;– testing of a web application when development is nearing completion; minor design changes may still be made as a result of such testing. Typically done by end-users or others, not by programmers or testers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://qaamitahuja.blogspot.com"&gt;Beta Testing&lt;/a&gt;&lt;/span&gt; – testing when development and testing are essentially completed and final bugs and problems need to be found before final release. Typically done by end-users or others, not by programmers or testers.&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-5695234393054099946?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/5695234393054099946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/09/kinds-of-testing-that-should-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5695234393054099946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5695234393054099946'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/09/kinds-of-testing-that-should-be.html' title='Kinds of Testing that should be considered for Websites.'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-7446170610445445357</id><published>2009-03-18T05:01:00.001-07:00</published><updated>2009-10-06T00:19:43.839-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bug Reporting'/><title type='text'>Bug Life Cycle</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;The steps in defect life cycle varies from company to company. But the basic flow remains the same. However, below I'm describing a basic flow for Bug Life Cycle:&lt;br /&gt;&lt;br /&gt;    * A Tester finds a bug. Status --&gt; Open&lt;br /&gt;    * Test lead review the bug and authoriz the bug. Stats --&gt; Open&lt;br /&gt;    * Development team lead review the defect. Stats --&gt; Open&lt;br /&gt;    * The defect can be authorized or unauthorized by the development team. (Here the status of the defect / bug will be Open (For Authorized Defects) &amp; Reject (For Unauthorized Defects).&lt;br /&gt;    * Now, the authorized bugs will get fixed or deferred by the development team. Status of the fixed bugs will be Fixed &amp; Status will be Deferred for the bugs which got Deferred.&lt;br /&gt;    * The Fixed bugs will be again re-tested by the testing team (Here based on the Closure of the Bug, the status will be made as Closed or if the bug still remains, it will be re-raised and status will be Re-opened.&lt;br /&gt;&lt;br /&gt;The above-mentioned cycle continues until all the bugs / defects gets fixed in the application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-7446170610445445357?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/7446170610445445357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/bug-life-cycle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7446170610445445357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7446170610445445357'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/bug-life-cycle.html' title='Bug Life Cycle'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-2705614256647012054</id><published>2009-03-18T05:00:00.001-07:00</published><updated>2009-10-06T00:18:36.272-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bug Reporting'/><title type='text'>Software Testing Bug Report Template</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;In continuation to my previous post, here in this post, I'm explaining a simple and effective software bug report.&lt;br /&gt;&lt;br /&gt;If you are using any Software Testing Management tool or any Bug reporting tool&lt;br /&gt;like Bugzilla or Test Director or Bughost or any other online bug tracking tool, then; the tool will automatically generate the bug report. If you are not using any tool, you may refer to the following template for your software bug report:&lt;br /&gt;&lt;br /&gt;    * Name of Reporter:&lt;br /&gt;    * Email Id of Reporter:&lt;br /&gt;    * Version or Build: &lt;Version or Build of the product&gt;&lt;br /&gt;    * Module or component: &lt;mention here the name of tested module or component&gt;&lt;br /&gt;    * Platform / Operating System:&lt;br /&gt;    * Type of error: &lt;coding error / design error / suggestion / UI / documentation / text error / hardware error &gt;&lt;br /&gt;    * Priority:&lt;br /&gt;    * Severity:&lt;br /&gt;    * Status:&lt;br /&gt;    * Assigned to:&lt;br /&gt;    * Summary:&lt;br /&gt;    * Description: &lt;mention here the steps to reproduce, expected result and actual result&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-2705614256647012054?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/2705614256647012054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/software-testing-bug-report-template.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2705614256647012054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2705614256647012054'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/software-testing-bug-report-template.html' title='Software Testing Bug Report Template'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-6610935105381781819</id><published>2009-03-18T04:58:00.000-07:00</published><updated>2009-09-24T03:05:49.431-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Software Testing Bug Report</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;After you complete your Software Testing, it is good practice to prepare an effective bug report. Fixing a bug depends on how effectively you report it. Below are some tips to write a good software bug report:&lt;br /&gt;&lt;br /&gt;    * If you are doing manual Software Testing and reporting bugs withour the help of any tool, assign a unique number to each bug report. This will help to identify the bug record.&lt;br /&gt;    * Clearly mention the steps to reproduce the bug. Do not assume or skip any reproducing step.&lt;br /&gt;    * Be Specific and to the point&lt;br /&gt;&lt;br /&gt;Apart from these tips, below are some good practices:&lt;br /&gt;&lt;br /&gt;    * Report the problem immediately&lt;br /&gt;    * Reproduce the bug atleast one more time before you report it&lt;br /&gt;    * Test the same bug occurrence on other similar modules of the application&lt;br /&gt;    * Read bug report before you submit it or send it.&lt;br /&gt;    * Never ever criticize any developer or attack any individual&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-6610935105381781819?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/6610935105381781819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/software-testing-bug-report.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/6610935105381781819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/6610935105381781819'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/software-testing-bug-report.html' title='Software Testing Bug Report'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-9023002791616528662</id><published>2009-03-18T03:46:00.000-07:00</published><updated>2009-09-24T03:05:49.431-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Validation vs Verification, Reviews, Inspections</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Validation:&lt;/span&gt; The process of evaluating software at the end of the software development&lt;br /&gt;process to ensure compliance with software requirements. It is actual testing of the application.&lt;br /&gt;&lt;br /&gt;1. Am I building the right product.&lt;br /&gt;&lt;br /&gt;2. Determining if the system complies with the requirements and performs functions for which it is intended and meets the organization’s goals and user needs. It is traditional and is performed at the end of the project.&lt;br /&gt;&lt;br /&gt;3. Am I accessing the right data (in terms of the data required to satisfy the requirement).&lt;br /&gt;&lt;br /&gt;4. High level activity.&lt;br /&gt;&lt;br /&gt;5. Performed after a work product is produced against established criteria ensuring that the product integrates correctly into the environment.&lt;br /&gt;&lt;br /&gt;6. Determination of correctness of the final software product by a development project with respect to the user needs and requirements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Verification:&lt;/span&gt; The process of determining whether of not the products of a given phase of the software development cycle meet the implementation steps and can be traced to the incoming objectives established during the previous phase.&lt;br /&gt;&lt;br /&gt;Verification process helps in detecting defects early, and preventing their leakage downstream. Thus, the higher cost of later detection and rework is eliminated. It includes:&lt;br /&gt;&lt;br /&gt;1. Am I building the product right.&lt;br /&gt;&lt;br /&gt;2. The review of interim work steps and interim deliverables during a project to ensure they are acceptable. To determine if the system is consistent, adheres to standards, uses reliable techniques and prudent practices, and performs the selected functions in the correct manner.&lt;br /&gt;&lt;br /&gt;3. Am I accessing the data right (in the right place; in the right way).&lt;br /&gt;&lt;br /&gt;4. Low level activity.&lt;br /&gt;&lt;br /&gt;5. Performed during development on key artifacts, like walkthroughs, reviews and inspections, mentor feedback, training, checklists and standards.&lt;br /&gt;&lt;br /&gt;6. Demonstration of consistency, completeness, and correctness of the software at each stage and between each stage of the development life cycle.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Review:&lt;/span&gt; A process or meeting during which a work product, or set of work products, is presented to project personnel, managers, users, customers, or other interested parties for comment or approval. The main goal of reviews is to find defects. Reviews are a good compliment to testing to help assure quality. A few purposes’ of SQA reviews can be as follows:&lt;br /&gt;&lt;br /&gt;Assure the quality of deliverable’s before the project moves to the next stage.&lt;br /&gt;Once a deliverable has been reviewed, revised as required, and approved, it can be used as a basis for the next stage in the life cycle.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Various types of reviews:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Management Reviews:&lt;/span&gt; Management reviews are performed by those directly responsible for the system in order to monitor progress, determine status of plans and schedules, confirm requirements and their system allocation. Therefore the main objectives of Management Reviews can be categorized as follows:&lt;br /&gt;&lt;br /&gt;- Validate from a management perspective that the project is making progress according to the project plan.&lt;br /&gt;&lt;br /&gt;- Ensure that deliverables are ready for management approvals.&lt;br /&gt;&lt;br /&gt;- Resolve issues that require management’s attention.&lt;br /&gt;&lt;br /&gt;- Identify any project bottlenecks.&lt;br /&gt;&lt;br /&gt;- Keeping project in Control.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Requirement Review:&lt;/span&gt; A process or meeting during which the requirements for a system, hardware item, or software item are presented to project personnel, managers, users, customers, or other interested parties for comment or approval. Types include system requirements review, software requirements review. Product management leads Requirement Review. Members from every affected department participates in the review.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Input Criteria:&lt;/span&gt; Software requirement specification is the essential document for the review. A checklist can be used for the review.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Exit Criteria:&lt;/span&gt; Exit criteria include the filled &amp; completed checklist with the reviewers’ comments &amp; suggestions and the re-verification whether they are incorporated in the documents.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Design Review:&lt;/span&gt; A process or meeting during which a system, hardware, or software design is presented to project personnel, managers, users, customers, or other interested parties for comment or approval. Types include critical design review, preliminary design review, and system design review.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Inspection:&lt;/span&gt; A static analysis technique that relies on visual examination of development products to detect errors, violations of development standards, and other problems. Types include code inspection; design inspection, Architectural inspections, Test ware inspections etc. The participants in Inspections assume one or more of the following roles:&lt;br /&gt;&lt;br /&gt;- Inspection leader&lt;br /&gt;- Recorder&lt;br /&gt;- Reader&lt;br /&gt;- Author&lt;br /&gt;- Inspector&lt;br /&gt;&lt;br /&gt;All participants in the review are inspectors. The author shall not act as inspection leader and should not act as reader or recorder. Other roles may be shared among the team members. Individual participants may act in more than one role.&lt;br /&gt;&lt;br /&gt;Individuals holding management positions over any member of the inspection team shall not participate in the inspection.&lt;br /&gt;&lt;br /&gt;Input to the inspection shall include the following:&lt;br /&gt;&lt;br /&gt;- A statement of objectives for the inspection&lt;br /&gt;- The software product to be inspected&lt;br /&gt;- Documented inspection procedure&lt;br /&gt;- Inspection reporting forms&lt;br /&gt;- Current anomalies or issues list&lt;br /&gt;&lt;br /&gt;Input to the inspection may also include the following:&lt;br /&gt;&lt;br /&gt;- Inspection checklists: Any regulations, standards, guidelines, plans, and procedures against which the software product is to be inspected.&lt;br /&gt;&lt;br /&gt;- Hardware product specifications&lt;br /&gt;&lt;br /&gt;- Hardware performance data&lt;br /&gt;&lt;br /&gt;- Anomaly categories&lt;br /&gt;&lt;br /&gt;The individuals may make additional reference material available responsible for the software product when requested by the inspection leader.&lt;br /&gt;&lt;br /&gt;The purpose of the exit criteria is to bring an unambiguous closure to the inspection meeting. The exit decision shall determine if the software product meets the inspection exit criteria and shall prescribe any appropriate rework and verification. Specifically, the inspection team shall identify the software product disposition as one of the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Accept with no or minor rework:&lt;/span&gt; The software product is accepted as is or with only minor rework. (For example, that would require no further verification).&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Accept with rework verification:&lt;/span&gt; The software product is to be accepted after the inspection leader or a designated member of the inspection team (other than the author) verifies rework.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Re-inspect:&lt;/span&gt; Schedule a re-inspection to verify rework. At a minimum, a re-inspection shall examine the software product areas changed to resolve anomalies identified in the last inspection, as well as side effects of those changes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-9023002791616528662?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/9023002791616528662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/validation-vs-verification-reviews.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/9023002791616528662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/9023002791616528662'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/validation-vs-verification-reviews.html' title='Validation vs Verification, Reviews, Inspections'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-3708650529569371392</id><published>2009-03-18T03:43:00.000-07:00</published><updated>2009-09-24T03:08:12.709-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Software Testing Principles</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;Below are some basic Software Testing Principles:&lt;br /&gt;&lt;br /&gt;- A necessary part of a test case is a definition of the expected output or result.&lt;br /&gt;&lt;br /&gt;- A programmer should avoid attempting to test his or her own program.&lt;br /&gt;&lt;br /&gt;- A programming organization should not test its own programs.&lt;br /&gt;&lt;br /&gt;- Thoroughly inspect the results of each test.&lt;br /&gt;&lt;br /&gt;- Test cases must be written for input conditions that are invalid and unexpected, as well as for those that are valid and expected.&lt;br /&gt;&lt;br /&gt;- Examining a program to see if it does not do what it is supposed to do is only half the battle; the other half is seeing whether the program does what it is not supposed to do.&lt;br /&gt;&lt;br /&gt;- Avoid throwaway test cases unless the program is truly a throwaway program.&lt;br /&gt;&lt;br /&gt;- Do not plan a testing effort under the tacit assumption that no errors will be found.&lt;br /&gt;&lt;br /&gt;- The probability of the existence of more errors in a section of a program is proportional to the number of errors already found in that section.&lt;br /&gt;&lt;br /&gt;- Software Testing is an extremely creative and intellectually challenging task.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-3708650529569371392?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/3708650529569371392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/software-testing-principles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/3708650529569371392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/3708650529569371392'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/software-testing-principles.html' title='Software Testing Principles'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-6656770423066169394</id><published>2009-03-18T03:25:00.000-07:00</published><updated>2009-09-24T03:08:16.417-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Software Testing Process</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;Below is a very basic software testing process&lt;br /&gt;. Many companies use this process. Later on I'll post some more testing processes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Understand of business logic and analysis of requirements: In this phase consider the following:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    * Are the definitions and descriptions of the required functionalities precise?&lt;br /&gt;    * Is there clear delineation between the system and its environment?&lt;br /&gt;    * Can the requirements be realized in practice?&lt;br /&gt;    * Can the requirements be tested effectively?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Test Planning:&lt;/span&gt; During this phase Test Strategy is defined and Test Bed is created. The plan should identify:-&lt;br /&gt;&lt;br /&gt;    * Which aspects of the system should be tested.&lt;br /&gt;    * The methods, techniques and tools to be used.&lt;br /&gt;    * Personnel responsible for the testing.&lt;br /&gt;    * Manual and Automation Testing&lt;br /&gt;    * Defect Management and Risk Management etc.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;&lt;br /&gt;3. Test Environment Setup:&lt;/span&gt; A different testing server is prepared where the application will be tested. It is an independent testing environment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4. Test Design: &lt;/span&gt;Identify the test scenarios and prepare the test cases / scripts. Selection of test data is also done in this phase. If required, test designing is done with some automated tools like QTP or LoadRunner or with some other software testing tool. Designing framework, scripting, script integration, Review and approval will be undertaken in this phase.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5. Test Execution:&lt;/span&gt; Testers execute the test cases and report any errors found to the development team.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;6. Defect Tracking:&lt;/span&gt; Raised defects are tracked using some tools like Test Director or Bug Host etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;7. Test Reports:&lt;/span&gt; As soon as testing is completed, Test Lead or Manager generate metrics and make final reports for the whole testing effort.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-6656770423066169394?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/6656770423066169394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/software-testing-process.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/6656770423066169394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/6656770423066169394'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/software-testing-process.html' title='Software Testing Process'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-3865856603460583221</id><published>2009-03-13T04:32:00.000-07:00</published><updated>2009-09-24T03:05:49.432-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>The Big Picture (Software testing)</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&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;div style="text-align: justify;"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CItm%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CItm%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CItm%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:usefelayout/&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:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 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;} @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 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:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	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:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	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;} --&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;span style="line-height: 115%;font-family:&amp;quot;;font-size:7;"  &gt;All software problems can be termed as bugs. A software bug usually occurs when the software &lt;/span&gt;&lt;br /&gt;&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%5CItm%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CItm%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CItm%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:usefelayout/&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:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 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;} @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:536871559 0 0 0 415 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:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	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:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	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;} --&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;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 100%; text-align: justify;"&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:7;"  &gt;does not do what it is intended to do or does something that it is not intended to do. Flaws in specifications, design, code or other reasons can cause these bugs. Identifying and fixing bugs in the early stages of the software is very important as the cost of fixing bugs grows over time. So, the goal of a software tester is to find bugs and find them as early as possible and make sure they are fixed.&lt;/span&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 4.4pt; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 100%; text-align: justify;"&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:7;"  &gt;Testing is context-based and risk-driven. It requires a methodical and disciplined approach to finding bugs. A good software tester needs to build credibility and possess the attitude to be explorative, troubleshooting, relentless, creative, diplomatic and persuasive.&lt;/span&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 8.6pt; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 100%; text-align: justify;"&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:7;"  &gt;As against the perception that testing starts only after the completion of coding phase, it actually begins even before the first line of code can be written. In the life cycle of the conventional software product, testing begins at the stage when the specifications are written, i.e. from testing the &lt;i&gt;product specifications&lt;/i&gt; or &lt;i&gt;product spec&lt;/i&gt;. Finding bugs at this stage can save huge amounts of time and money.&lt;/span&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 4.45pt; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 100%; text-align: justify;"&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:7;"  &gt;Once the specifications are well understood, you are required to design and execute the test cases. Selecting the appropriate technique that reduces the number of tests that cover a feature is one of the most important things that you need to take into consideration while designing these test cases. Test cases need to be designed to cover all aspects of the software, i.e. security, database, functionality (critical and general) and the user interface. Bugs originate when the test cases are executed.&lt;/span&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 4.4pt; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 100%; text-align: justify;"&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:7;"  &gt;As a tester you might have to perform testing under different circumstances, i.e. the application could be in the initial stages or undergoing rapid changes, you have less than enough time to test, the product might be developed using a life cycle model that does not support much of formal testing or retesting. Further, testing using different operating systems, browsers and the configurations are to be taken care of.&lt;/span&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 4.45pt; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;Reporting a bug may be the most important and sometimes the most difficult task that you as a software tester will perform. By using various tools and clearly communicating to the developer, you can ensure that the bugs you find are fixed.&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 4.4pt; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: 100%; text-align: justify;"&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:7;"  &gt;Using automated tools to execute tests, run scripts and tracking bugs improves efficiency and effectiveness of your tests. Also, keeping pace with the latest developments in the field will augment your career as a software test engineer.&lt;/span&gt;&lt;span style="line-height: 100%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-3865856603460583221?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/3865856603460583221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/big-picture-software-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/3865856603460583221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/3865856603460583221'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/03/big-picture-software-testing.html' title='The Big Picture (Software testing)'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-1774795491789659880</id><published>2009-02-20T21:03:00.000-08:00</published><updated>2009-09-24T03:08:04.179-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Requirements Testing</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;&lt;span class="701044312-07092007"&gt;T&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;esting&lt;/span&gt; software is an integral part of building a system. However, if the software is based on inaccurate requirements, then despite well written code, the software will be unsatisfactory. &lt;span class="701044312-07092007"&gt;M&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ost&lt;/span&gt; of the defects &lt;span class="701044312-07092007"&gt;in a system &lt;/span&gt;can be traced back to wrong, missing, vague or incomplete requirements. &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Requirements seem to be ephemeral. They flit in and out of projects, they are capricious, intractable, unpredictable and sometimes invisible. When gathering requirements we are searching for all of the criteria for a system's success. We throw out a net and try to capture all these criteria.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Book Antiqua;"&gt;&lt;strong&gt;The Quality Gateway&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;As soon as we have a single requirement in our net we can start testing. The aim is to trap requirements-related defects as early as they can be identified. We prevent incorrect requirements from being incorporated in the design and implementation where they will be more difficult and expensive to find and correct.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;To pass through the quality gateway and be included in the requirements specification, a requirement must pass a number of tests. These tests are concerned with ensuring that the requirements are accurate, and do not cause problems by being unsuitable for the design and implementation stages later in the project.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Make The Requirement Measurable&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;In his work on specifying the requirements for buildings, Christopher Alexander describes setting up a quality measure for each requirement.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family: Book Antiqua;"&gt;"The idea is for each requirement to have a quality measure that makes it possible to divide all solutions to the requirement into two classes: those for which we agree that they fit the requirement and those for which we agree that they do not fit the requirement."&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;In other words, if we specify a quality measure for a requirement, we mean that any solution that meets this measure will be acceptable. Of course it is also true to say that any solution that does not meet the measure will not be acceptable.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;The quality measures will be used to test the new system against the requirements. The remainder of this paper describes how to arrive at a quality measure that is acceptable to all the stakeholders.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Quantifiable Requirements&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Consider a requirement that says "The system must respond quickly to customer enquiries". First we need to find a property of this requirement that provides us with a scale for measurement within the context. Let's say that we agree that we will measure the response using minutes. To find the quality measure we ask: "under what circumstances would the system fail to meet this requirement?" The stakeholders review the context of the system and decide that they would consider it a failure if a customer has to wait longer than three minutes for a response to his enquiry. Thus "three minutes" becomes the quality measure for this requirement.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Any solution to the requirement is tested against the quality measure. If the solution makes a customer wait for longer than three minutes then it does not fit the requirement. So far so good: we have defined a quantifiable quality measure. But specifying the quality measure is not always so straightforward. What about requirements that do not have an obvious scale?&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Non-quantifiable Requirements&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Suppose a requirement is "The automated interfaces of the system must be easy to learn". There is no obvious measurement scale for "easy to learn". However if we investigate the meaning of the requirement within the particular context, we can set communicable limits for measuring the requirement.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Again we can make use of the question: "What is considered a failure to meet this requirement?" Perhaps the stakeholders agree that there will often be novice users, and the stakeholders want novices to be productive within half an hour. We can define the quality measure to say "a novice user must be able to learn to successfully complete a customer order transaction within 30 minutes of first using the system". This becomes a quality measure provided a group of experts within this context is able to test whether the solution does or does not meet the requirement.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;An attempt to define the quality measure for a requirement helps to rationalise fuzzy requirements. Something like "the system must provide good value" is an example of a requirement that everyone would agree with, but each person has his own meaning. By investigating the scale that must be used to measure "good value" we identify the diverse meanings.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Sometimes by causing the stakeholders to think about the requirement we can define an agreed quality measure. In other cases we discover that there is no agreement on a quality measure. Then we substitute this vague requirement with several requirements, each with its own quality measure.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 1&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Does each requirement have a quality measure that can be used to test whether any solution meets the requirement?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;By adding a quality measure to each requirement we have made the requirement visible. This is the first step to defining all the criteria for measuring the goodness of the solution. Now let's look at other aspects of the requirement that we can test before deciding to include it in the requirements specification.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 2&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Does the specification contain a definition of the meaning of every essential subject matter term within the specification? &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;When the allowable values for each of the attributes are defined it provides data that can be used to test the implementation.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 3&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Is every reference to a defined term consistent with its definition?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 4&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Is the context of the requirements wide enough to cover everything we need to understand?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 5&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Have we asked the stakeholders about conscious, unconscious and undreamed of requirements?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 5 (enlarged)&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Have we asked the stakeholders about conscious, unconscious and undreamed of requirements? Can you show that a modelling effort has taken place to discover the unconscious requirements? Can you demonstrate that brainstorming or similar efforts taken place to find the undreamed of requirements? &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 6&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Is every requirement in the specification relevant to this system?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 7&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Does the specification contain solutions posturing as requirements?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 8&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Is the stakeholder value defined for each requirement?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 9&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Is each requirement uniquely identifiable?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua; color: rgb(255, 0, 0);"&gt;Requirements Test 10&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family: Book Antiqua;"&gt;Is each requirement tagged to all parts of the system where it is used? For any change to requirements, can you identify all parts of the system where this change has an effect?&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Conclusions&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;The requirements specification must contain all the requirements that are to be solved by our system. The specification should objectively specify everything our system must do and the conditions under which it must perform. Management of the number and complexity of the requirements is one part of the task.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;The most challenging aspect of requirements gathering is communicating with the people who are supplying the requirements. If we have a consistent way of recording requirements we make it possible for the stakeholders to participate in the requirements process. As soon as we make a requirement visible we can start testing it. and asking the stakeholders detailed questions. We can apply a variety of tests to ensure that each requirement is relevant, and that everyone has the same understanding of its meaning. We can ask the stakeholders to define the relative value of requirements. We can define a quality measure for each requirement, and we can use that quality measure to test the eventual solutions.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: Book Antiqua;"&gt;Testing starts at the beginning of the project, not at the end of the coding. We apply tests to assure the quality of the requirements. Then the later stages of the project can concentrate on testing for good design and good code. The advantages of this approach are that we minimise expensive rework by minimising requirements-related defects that could have been discovered, or prevented, early in the project's life.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-1774795491789659880?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/1774795491789659880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/02/requirements-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1774795491789659880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1774795491789659880'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/02/requirements-testing.html' title='Requirements Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-594361847396480692</id><published>2009-02-20T04:35:00.001-08:00</published><updated>2009-09-24T03:07:57.188-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>I18N Testing</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;Products developed in one location are used all over the world with different languages and regional standards. This arises the need to test product in different languages and different regional standards. Multilingual and localization testing can increase your products usability and acceptability worldwide. &lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Internationalization testing is the process, which ensures that product’s functionality is not broken and all the messages are properly externalized when used in different languages and locale. Internationalization testing is also called I18N testing, because there are 18 characters between I and N in Internationalization. &lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Internationalization, Globalization and Localization, all these words are normally used together. Though the objective of these word is same, that is to make sure that product is ready for the global market, but they serve different purpose and have different meaning.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;I hope this article has given you better clarity about I18N testing&lt;/p&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-594361847396480692?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/594361847396480692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/02/i18n-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/594361847396480692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/594361847396480692'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/02/i18n-testing.html' title='I18N Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-6881714137017882876</id><published>2009-02-20T04:24:00.000-08:00</published><updated>2009-09-24T03:07:52.194-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Functional Testing The only Answer to Quality</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;Functional Testing refers to the type of testing which ensures that all functional requirements are met without any consideration to the final program structure. Functional Testing confirms that the application under development is capable to deliver as per user requirements. Functional Testing emulates the actions performed by the user and ensures that all execution paths are operating perfectly as desired in addition we are able to get the desired for the inputs supplied to the system. &lt;/p&gt;  &lt;p&gt;1) Perform Unit Testing &amp;amp; ensure proper execution of each &amp;amp; every line of the code:&lt;/p&gt; &lt;p style="text-align: justify;"&gt;The software developers tend to design the code in isolation. When there is absence of pair programming, full code reviews &amp;amp; highly experienced developers, there is bound to be the possibility of inclusion of defects in the new code. Such defects if not detected during early stages of SDLC are quite difficult as well as expensive to detect later on as the project moves.&lt;/p&gt; &lt;p style="text-align: justify;"&gt;Hence a strong unit testing process is the backbone of the testing process, upon which the entire reliability of the product depends. Unit testing refers to the process of testing each &amp;amp; every unit of the code going down to the single component level. The developer during the development of the component does the unit testing. It is the responsibility of the developer to ensure that each &amp;amp; every part of the code is logically correct. Unit tests usually provide following type of coverage: &lt;/p&gt; &lt;p&gt;Function coverage: Ensures that every function or method is getting executed by at least one test case. &lt;/p&gt; &lt;p&gt;Statement coverage: Ensures that every line of the code gets covered by a minimum of one test case.&lt;/p&gt; &lt;p&gt;Path coverage: Ensures that every possible path through code gets covered by a minimum of one test case. There can be more number of test cases if need be.&lt;/p&gt; &lt;p style="text-align: justify;"&gt;Unit testing helps the developers to regularly ensure that every unit of code performs as expected. Unit tests are modified on continuous basis as the evolution process of the software continues. This helps in maintaining an updated documentation as well.&lt;/p&gt; &lt;p&gt;2) Perform Functional Testing &amp;amp; ensure expected results from every function:&lt;/p&gt; &lt;p style="text-align: justify;"&gt;As a part of the testing strategy all expected outcomes must be confirmed by functional testing.&lt;br /&gt;All the function points of various lines of code must yield expected outcome which must be in line with the functional specification described in the specification document. &lt;/p&gt; &lt;p style="text-align: justify;"&gt;Functional testing takes care of all concerns revolving around the proper implementation of functional requirements. Commonly known as black box testing, it requires no prior knowledge of the basic code. &lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Functional test cases are created from requirement use cases wherein every scenario becomes a functional test. As the individual software components get implemented, after successful unit testing the corresponding functional tests are employed on them. &lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;For some software projects, it is not feasible to test every functional aspect. Instead of that appropriate functional testing goals are defined. Critical and commonly used functions are prioritized according to the limitations of resources &amp;amp; time.&lt;/p&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-6881714137017882876?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/6881714137017882876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/02/functional-testing-only-answer-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/6881714137017882876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/6881714137017882876'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/02/functional-testing-only-answer-to.html' title='Functional Testing The only Answer to Quality'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-1274677673887338653</id><published>2009-02-19T23:39:00.000-08:00</published><updated>2009-10-06T00:20:27.255-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bug Reporting'/><title type='text'>“Reporting bugs - a how-to guide”</title><content type='html'>&lt;!-- Begin BlogToplist tracker code --&gt;&lt;br /&gt;&lt;a href="http://www.blogtoplist.com/software/" title="Software"&gt;&lt;br /&gt;&lt;img src="http://www.blogtoplist.com/tracker.php?u=63040" alt="Software" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End BlogToplist tracker code --&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;When working with a developer or team of developers on an application – whether you are a designer working with developers or an end client hiring developers – you all want the same end result, a slick and bug free application. During the testing process of any application it is likely that some bugs or issues will show up and this article aims to explain how to report bugs and problems effectively so that your developers don’t need to spend time working out what the problem is before being able to fix it. This helps to ensure that projects stay on budget and that developers are spending their time adding features to the application rather than trying to get enough details to be able to reproduce and fix issues.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;“It’s just not working!”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;When you find a problem, it is very tempting to just fire off an email and presume that the developer will immediately be able to see the problem too. However, by taking a few minutes to describe the problem you have encountered accurately you can prevent any confusion occurring as to what the problem is and save both your time and the developer’s as she won’t need to get back to you to find out what actually happened, or spend a long time trying to reproduce the issue.&lt;br /&gt;&lt;/div&gt;A good report&lt;br /&gt;&lt;br /&gt;A good bug report tells your developer three vital things:&lt;br /&gt;&lt;br /&gt;  * What you expected to happen&lt;br /&gt;  * What actually happened&lt;br /&gt;  * What you did/were doing when it happened&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What you expected to happen&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;There are two kinds of ‘bugs’, the first is where something breaks – you see an error message, your uploaded data disappears, you submit a form and the change isn’t saved. These bugs are generally pretty easy to report and identify as all your developer needs is to know exactly what you were doing or inputting at the time and they should be able to reproduce and fix the issue.&lt;br /&gt;&lt;br /&gt;The second kind of bug is where the application doesn’t function as you expected. This might be because the developer has misinterpreted part of the specification or it could be that what you expect just isn’t how something can work. In this case the developer believes that it is working fine – and in fact it is ‘working’ even if it is incorrect. If your bug report is that the feature is broken, the developer may then spend time looking for some error in this part of the application when what they need to realize is that it isn’t working as you expected. By giving the information about what you expected to happen the developer can think ‘ah … you wanted it to do x and it is doing y’ and a resolution can be sorted out quickly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What actually happened&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;What actually happened is very rarely ‘nothing’ yet bug reports often contain the phrase, ‘nothing happened’. If what happened was ‘nothing’ in terms of the intended result then explain that in a few more words, for example, if you clicked the submit button on a form and it didn’t submit and go onto the next page you could say,&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;“The form didn’t submit – it just remained on the same page.”&lt;br /&gt;&lt;br /&gt;Or perhaps the form submitted and a blank page displayed,&lt;br /&gt;&lt;br /&gt;“After submitting the form a blank page loaded.”&lt;br /&gt;&lt;br /&gt;If an error message displays on the screen then include that in the report. Just copy and paste the error message.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;If you use Internet Explorer then your browser may not display the error message generated by the server, instead showing a generic error page. You can ensure the IE displays the real error message by going to Tools &gt; Internet Options &gt; Advanced. Then scroll down to the browsing section and uncheck ‘Show Friendly HTTP error messages’.&lt;br /&gt;What you were doing when it happened&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Your developer wants to know this information – not because they want to tell you that you were doing something wrong, but because it is highly likely that the bug occurs only when a certain path of actions is followed, or when a certain type of data is entered. The more information you can give your developer the easier it will be for them to reproduce the problem you saw and fix it. Things you should include:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The steps taken&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;List exactly what you did, in the order you did it if possible. If you can go back and try the same steps again and the problem happens again that is great – note down exactly how you made the problem occur. Your developer will be pleased as you have just saved her time trying to reproduce the issue. Even if you can’t reproduce it, no-one is going to doubt that the problem happened – just describe as much as you can remember how you got to the broken point.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Any data you were entering&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;If the problem happened after you added some data to a form, include the data with the bug report. If you were uploading something such as an image into the application then include that too.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;It may also be helpful to copy and paste the URL out of the address bar of the browser so the developer knows exactly which page you were on at the time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The browser and operating system you were using at the time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;With web applications problems may only be occurring in one browser. Let your developer know exactly what you are using – including the version number - so they can create the same environment to test the problem.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Effective bug reporting can make a huge difference in how quickly problems can be resolved, and prevent frustration on both sides of the process. Including the above information, even if it doesn’t seem relevant, will be appreciated by the developer. You don’t need to write an essay, just a few clear lines explaining the key information of:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;  * what you expected to happen&lt;br /&gt;  * what actually happened and,&lt;br /&gt;  * what you did/were doing when it happened.&lt;br /&gt;&lt;br /&gt;This will be enough to isolate all but the most complicated of issues, and once an issue can be reproduced it is well on its way to being fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-1274677673887338653?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/1274677673887338653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2009/02/reporting-bugs-how-to-guide.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1274677673887338653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1274677673887338653'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2009/02/reporting-bugs-how-to-guide.html' title='“Reporting bugs - a how-to guide”'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-2292650313720420708</id><published>2008-11-07T02:51:00.000-08:00</published><updated>2009-09-24T03:08:00.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Quality control</title><content type='html'>&lt;div style="text-align: justify;"&gt;Quality control describes the directed use of testing to measure the achievement of a specified standard. Quality control is a formal (as in structured, not as in wearing-a-tuxedo fancy) use of testing. Quality control is a superset of testing, although it often used synonymously with testing. Roughly, you test to see if something is broken, and with quality control you set limits that say, in effect, if this particular stuff is broken then whatever you're testing fails.&lt;br /&gt;&lt;br /&gt;Yet another way of looking at the difference between testing and quality control is to consider the difference between a test as an event and a test as a part of a system. For example, let's say our test is the measurement of your ability to assemble a jigsaw puzzle in one hour. We test you today, and you complete the puzzle in fifty-eight minutes, so you pass. This seems pretty trivial, but say that there is some need in your life requiring you to solve puzzles quickly: we tested you once, but we must verify that you can meet this weird requirement continually over time. The solution is to test you at regular intervals, which will allow us to see if you can still be successful when under stress, when you haven't slept, when your workload is high -- our quality control approach to this issue says "you must finish puzzle in one hour or less" and "we will test this requirement periododically over time". And as a side effect of this quality control testing, you might find that you are more likely to improve in your puzzle solving skills because of the repeated practice; this is the beginning of a shift to quality&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-2292650313720420708?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/2292650313720420708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/11/quality-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2292650313720420708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2292650313720420708'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/11/quality-control.html' title='Quality control'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-407975868022255266</id><published>2008-10-23T02:56:00.001-07:00</published><updated>2009-09-24T03:05:49.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Suggestions to Improve Testing.</title><content type='html'>&lt;div style="text-align: justify;"&gt;1) List down the modules to be tested.This include functional and non-functional testing&lt;br /&gt;&lt;br /&gt;2) List down the functionality that you will not test either because of incompleteness of module, data dependency or hardware limitations etc.&lt;br /&gt;&lt;br /&gt;3) Pl. get formal approval from your manager for the activities/schedule that you are planning.This will endorse your deliverables and validity.&lt;br /&gt;&lt;br /&gt;4) Make sure that you have the defect tracking system in place with severity norms and owners defined.The defect logging format should be approved by your manager.&lt;br /&gt;&lt;br /&gt;5) Make sure that you have set of data that will help you in testing various test scenarios.If data is not available, pl. check how you can generate the same.&lt;br /&gt;&lt;br /&gt;6) Make sure that you take daily back-up of your test logs and discuss progress and issues with your management team every day.&lt;br /&gt;&lt;br /&gt;7) Keep talking with developers. That will help you to increase product understanding.&lt;br /&gt;&lt;br /&gt;8) Release notes from Developer team to Testing team will be entry criteria to start testing activity. The release notes will include information like the defects fixed in the build, any work around ,features not addressed.&lt;br /&gt;&lt;br /&gt;9) Multiple iterations of testing will bring up new defects. Periodically update the test cases checking the possibility of new scenerios.Once the defect probability starts reducing in further testing iterations, this may be the indication of product getting stable. Introducing multiple testing heads will also help to filter new defects.&lt;br /&gt;&lt;br /&gt;10)Try to set the processes with help of your manager. Eventually that will be helpful in long run.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-407975868022255266?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/407975868022255266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/10/suggestions-to-improve-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/407975868022255266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/407975868022255266'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/10/suggestions-to-improve-testing.html' title='Suggestions to Improve Testing.'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-4170418620402978064</id><published>2008-10-23T02:54:00.000-07:00</published><updated>2009-09-24T03:05:49.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Cross Browser Testing</title><content type='html'>&lt;p style="margin-bottom: 0in; text-align: justify;"&gt;It is critical to test across many browser and operating system combinations because the page can look different in each scenario. Another concern is the screen resolution and color depth. A page might look good at a resolution of 600 x 800, but parts of it might get cut off at 640 x 480. Different color depths should be used on the test machines also. Colors might vary unpredictably if a browser-safe palette is not used. As a QA, we should look for:&lt;br /&gt;&lt;br /&gt;Color of links&lt;br /&gt;Broken images&lt;br /&gt;Low color contrast&lt;br /&gt;Spacing in tables&lt;br /&gt;Text wrapping issues&lt;br /&gt;Margins&lt;br /&gt;Alignment, formatting, and size of text  &lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="margin-bottom: 0in; text-align: justify;"&gt;Alignment of controls such as radio buttons and check boxes&lt;br /&gt;Switch Javascript off&lt;br /&gt;Switch cookies off&lt;br /&gt;Switch plug-ins off&lt;br /&gt;Switch images off&lt;br /&gt;Printing - Do not forget to test printing of your Web pages by printing on a variety of popular printers. Printing can be unpredictable, particularly with frames. Keep an eye on what is printed, the readability of content, and the speed of the print job.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="margin-bottom: 0in; text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="margin-bottom: 0in; text-align: justify;"&gt;Be sure to use clean machines when you start testing and make sure no plug-ins are installed. If the plug-ins are already installed,you might miss a defect that has a dependency on the plug-in. There should always be some test cases that involve using a browser as it is first installed,with no extra components.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="margin-bottom: 0in; text-align: justify;"&gt;Netscape Navigator requires a plug-in.Netscape users must be aware that the plug-in is required and should be given instructions on how to install it. (Anyway Netscape is a dying browser)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="margin-bottom: 0in; text-align: justify;"&gt;View in text browser (Incidentally the Opera browser has a built-in text-browser emulator)  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-4170418620402978064?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/4170418620402978064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/10/cross-browser-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/4170418620402978064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/4170418620402978064'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/10/cross-browser-testing.html' title='Cross Browser Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-8761342701475996251</id><published>2008-10-23T02:52:00.000-07:00</published><updated>2009-10-06T00:22:24.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bug Reporting'/><title type='text'>Missed a Bug</title><content type='html'>&lt;div style="text-align: justify;"&gt;Most of the testers/QAs are concern about external issues that they have missed. Carrier wise external issues are not good for testers profile inside their organization. More external issues may destroy the testers reputation within organization. On the other hand it is not fair to put 100% responsibility of external issues to testers. Why testers miss bugs?.&lt;br /&gt;&lt;br /&gt;1.Lack of project management.&lt;br /&gt;2.Not enough time to test.&lt;br /&gt;3.Requirement change in last moment before releases.&lt;br /&gt;4.Lack of domain knowledge.&lt;br /&gt;5.Lack of QA/test resources.&lt;br /&gt;6.Poor requirement specifications.&lt;br /&gt;7.Limited time to acquire domain knowledge.&lt;br /&gt;8.Selecting automation testing in the earlier stage of project. ( Where manually testing is required.)&lt;br /&gt;9.High coupling with developers. ( testers who depends of developers to get domain/technical knowledge may influence by developers.&lt;br /&gt;10.Not enough motivation towards testing. ( more open bugs, ignorance of QA team within organization, lost of existing functionalities due to new bugs, less salary.... )&lt;br /&gt;11.Developers/QA/tester attitude towards bugs.&lt;br /&gt;&lt;br /&gt;There are more to add for above reasons list, Above points can be categorized in to two.&lt;br /&gt;&lt;br /&gt;1.Self factors&lt;br /&gt;2.Organization factors.&lt;br /&gt;&lt;br /&gt;Anyway most of the above factors caused due to lots of sub reasons. Head of the organization or middle layer management should take actions to treat the organization factors. Immediate supervisor should care about the testes self factors.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-8761342701475996251?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/8761342701475996251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/10/missed-bug.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8761342701475996251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8761342701475996251'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/10/missed-bug.html' title='Missed a Bug'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-5218528294152734496</id><published>2008-09-05T04:35:00.001-07:00</published><updated>2009-10-06T00:21:54.521-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Test Director'/><title type='text'>Test Director:</title><content type='html'>&lt;p style="text-align: justify;"&gt;TestDirector is a single, Web-based application for all essential aspects of test management — Requirements Management, Test Plan, Test Lab, and Defects Management. You can leverage these core modules either as a standalone solution or integrated within a global Quality Centre of Excellence environment. TestDirector supports high levels of communication and collaboration among IT teams. Whether you are coordinating the work of many disparate QA teams, or working with a large, distributed Centre of Excellence, this test management tool helps facilitate information access across geographical and organization boundaries.&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal; font-family: times new roman;"&gt;&lt;span style="font-size: 12pt;"&gt;Qulity center is the latest vesion of the testdirector. upto 8.0 it is called as testdirector after that it is&lt;span style=""&gt;  &lt;/span&gt;called as QC. TestDirector for Quality Center has same 4 tabs - that did not change. Quality Center perfectly integrates with Functional Testing that now includes QTP + WinRunner (this &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal; font-family: times new roman;"&gt;&lt;span style="font-size: 12pt;"&gt;integration was possible before with TestDirector as well). As far as tabs... There is 1 additional tab that appeared in Quality Center that was not there before and it's called Dashboard (for project management). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;br style="font-family: times new roman;"&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br style=""&gt; &lt;!--[endif]--&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/822230696137075392-5218528294152734496?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/5218528294152734496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/09/test-director_05.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5218528294152734496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5218528294152734496'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/09/test-director_05.html' title='Test Director:'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-7815595555615739277</id><published>2008-09-05T04:35:00.000-07:00</published><updated>2009-09-24T03:05:49.434-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Test Director:</title><content type='html'>&lt;p style="text-align: justify;"&gt;TestDirector is a single, Web-based application for all essential aspects of test management — Requirements Management, Test Plan, Test Lab, and Defects Management. You can leverage these core modules either as a standalone solution or integrated within a global Quality Centre of Excellence environment. TestDirector supports high levels of communication and collaboration among IT teams. Whether you are coordinating the work of many disparate QA teams, or working with a large, distributed Centre of Excellence, this test management tool helps facilitate information access across geographical and organization boundaries.&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Qulity center is the latest vesion of the testdirector.upto 8.0 it is called as testdirector after that it is&lt;span style=""&gt;  &lt;/span&gt;called as QC. TestDirector for Quality Center has same 4 tabs - that did not change. Quality Center perfectly integrates with Functional Testing that now includes QTP + WinRunner &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;As far as tabs... There is 1 additional tab that appeared in Quality Center that was not there before and it's called Dashboard (for project management). &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/822230696137075392-7815595555615739277?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/7815595555615739277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/09/test-director.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7815595555615739277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7815595555615739277'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/09/test-director.html' title='Test Director:'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-8235633964712515526</id><published>2008-09-05T04:34:00.001-07:00</published><updated>2009-10-06T03:40:43.167-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Win Runner'/><title type='text'>WinRunner:</title><content type='html'>&lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;It&lt;span style=""&gt;  &lt;/span&gt;is Mercury Interactive Functional Automation Testing Tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;    &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;How many types of Run Modes are available in WinRunner?&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;WinRunner provide three types of Run Modes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;ul style="text-align: justify;" type="disc"&gt;&lt;li class="MsoNormal"  style="line-height: normal;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Verify Mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;ul style="text-align: justify;" type="disc"&gt;&lt;li class="MsoNormal"  style="line-height: normal;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Debug Mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;ul style="text-align: justify;" type="disc"&gt;&lt;li class="MsoNormal"  style="line-height: normal;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Update Mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;What’s the Verify Mode?&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;In Verify Mode, WinRunner compare the current result of application to it’s expected result.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;What’s the Debug Mode?&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;In Debug Mode, WinRunner track the defects in a test script.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;What’s the Update Mode?&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;In Update Mode, WinRunner update the expected results of test script.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;How many types of recording modes available in WinRunner?&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;WinRunner provides two types of Recording Mode?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;ul style="text-align: justify;" type="disc"&gt;&lt;li class="MsoNormal"  style="line-height: normal;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Context Sensitive&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;ul style="text-align: justify;" type="disc"&gt;&lt;li class="MsoNormal"  style="line-height: normal;color:black;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Analog&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;What’s the Context Sensitive recording?&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;WinRunner captures and records the GUI objects, windows, keyboard inputs, and mouse click activities through Context Sensitive Recording.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;What’s the Analog recording?&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;It captures and records the keyboard inputs, mouse click and mouse movement. It’s not captures the GUI objects and Windows.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-8235633964712515526?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/8235633964712515526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/09/winrunner.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8235633964712515526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8235633964712515526'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/09/winrunner.html' title='WinRunner:'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-1479141364307491657</id><published>2008-09-01T03:06:00.000-07:00</published><updated>2009-09-24T03:05:49.434-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Why do we test for performance?</title><content type='html'>&lt;p style="text-align: justify;"&gt;What a simple question! I even have a simple answer. &lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;blockquote&gt;"To determine or estimate various performance characteristics under various conditions."&lt;/blockquote&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;The problem is that answer is virtually useless unless we also know what performance characteristics are interesting to whom and for what purpose. Worse, more often than not, the folks who ask us to do the performance testing fundamentally don't know what they want to know and don't know what we can reasonably provide. They also don't understand that how the results are going to be used significantly impacts which tests we run and how we design them. &lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;In my experience, when I ask stakeholders what the goals of the performance testing effort are, I generally get one of three answers: &lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;You're the performance tester, you tell me. &lt;/li&gt;&lt;li&gt;Tell me how many users/orders/customers we can handle in production. &lt;/li&gt;&lt;li&gt;Make sure it will be fast enough.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Needless to say, these answers aren't only as useless as my response about determining or estimating performance characteristics, but the second two are practically impossible, since we almost never have either the data or the equipment available to accomplish those missions reliably. Somewhere between "virtually useless" and "practically impossible" there must be some reasons for testing performance that are both useful and possible. If there weren't useful and possible reasons for testing performance, we wouldn't still be doing it. (I hope!) &lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;As it turns out, the key to my coming up with a model to explore that middle ground was to stop thinking about performance testing as a "testing effort" and start thinking about it as a "business effort." Once I made that shift, I was quickly able to identify four groups of "for whom" with common "for what purposes." Since then, I've found that using this model to frame conversations about prioritizing performance testing objectives fundamentally changes the discussion and increases the value of the performance testing effort. It also reduces wasted effort from designing tests to collect one class of results only to find out that an entirely different test was needed to provide the class of results that stakeholders wanted, but were unable to articulate until after they were presented with the less valuable results&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-1479141364307491657?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/1479141364307491657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/09/why-do-we-test-for-performance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1479141364307491657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1479141364307491657'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/09/why-do-we-test-for-performance.html' title='Why do we test for performance?'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-2919063713139771601</id><published>2008-08-19T06:12:00.000-07:00</published><updated>2009-10-06T00:21:18.930-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='White Box Testing'/><title type='text'>Whitebox Testing - Is it really white ?</title><content type='html'>&lt;ul style="text-align: justify;"&gt;&lt;li&gt;The popular myths around &lt;span style="text-decoration: underline;"&gt;Blackbox &lt;/span&gt;&amp;amp; &lt;a href="http://en.wikipedia.org/wiki/White_box_testing"&gt;White Box &lt;/a&gt;Testing are by it’s name. It’s &lt;strong&gt;black &lt;/strong&gt;since we can’t see it (don’t have access to the code) &amp;amp; it’s &lt;strong&gt;white &lt;/strong&gt;since you have access to all the code. But then, With in the code there are many black boxes inside and it’s tough to have access to that code base.&lt;/li&gt;&lt;li&gt;We don’t have access to code of a language API. Most of the applications have been built on top of a API &amp;amp; assume that the API works fine&lt;/li&gt;&lt;li&gt;Most of the application do integrate some third party tools over it’s API. We don’t have access to that code base.&lt;/li&gt;&lt;li&gt;We don’t have access to the code of Compiler&lt;/li&gt;&lt;li&gt;We don’t have access to code of rum time engine that executes our application code&lt;/li&gt;&lt;li&gt;We don’t have access to the code of Operating System Services on top of which the application runs&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;The list goes on and there are many black boxes in side our code too. We are just testing the code written for the application and it’s better to call it as &lt;strong&gt;Code Based Testing&lt;/strong&gt; rather than &lt;strong&gt;Whitebox Testing&lt;/strong&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;– Happy Testing..&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-2919063713139771601?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/2919063713139771601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/whitebox-testing-is-it-really-white.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2919063713139771601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2919063713139771601'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/whitebox-testing-is-it-really-white.html' title='Whitebox Testing - Is it really white ?'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-1194544270986978281</id><published>2008-08-19T05:42:00.000-07:00</published><updated>2009-09-24T03:05:49.435-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>How to get job in Software Testing quickly?</title><content type='html'>&lt;div style="text-align: justify;"&gt;I came across this article while surfing the net…..so I thot I shud share it with u all…. In recent days this is the most asked question to me by readers. How to get software testing job? How to come in software testing field? or Can I get job in testing?&lt;br /&gt;All these questions are similar and I want to give also similar answer for this. I have written post on choosing software testing as your career where you can analyze your abilities and know which are the most important skills required for software testing.&lt;br /&gt;I will continue mentioning that “know your interest before going into any career field”. Just going to software testing career or any other hot career is wrong and which may result into loss of your job interest as well as your job.&lt;br /&gt;Now you know your abilities, skills, interests right? and you have made decision to go for software testing career as it is your favorite career and you suit most in this career. So here is a guideline for how to get a good job in software testing field.&lt;br /&gt;If you are a fresher and just passed out from your college or passing out in coming months then you need to prepare well for some software testing methodologies. Prepare all the manual testing concepts. If possible have some hands-on on some automation and bug tracking tools like winrunner and test director. It is always a good idea to join any software testing institute or class which will provide you a good start and direction of preparation. You can join any 4 months duration software testing course or can do diploma in software testing which is typically of 6 months to 1 year. Keep the preparation going on in your course duration. This will help you to start giving interviews right after getting over your course.&lt;br /&gt;If you have some sort of previous IT experience and want to switch to software testing then it’s somewhat simple for you. Show your previous IT experience in your resume while applying for software testing jobs. If possible do some crash course to get idea of software testing concepts like I mentioned for freshers above. Keep in mind that you have some kind of IT experience so be prepared for some tough interview questions here.&lt;br /&gt;As companies always prefer some kind of relevant experience for any software job, its better if you have relevant experience in software testing and QA. It may be any kind of software testing tools hands-on or some testing course from reputed institutes.&lt;br /&gt;Please always keep in mind- Do not add fake experience of any kind. This can ruin your career forever. Wait and try for some more days to get the job by your abilities instead of getting into trap of fake experience.&lt;br /&gt;Last important words, Software testing is not ‘anyone can do career!’ Remove this attitude from your mind if someone has told such kind of foolish thing to you. Testing requires in depth knowledge of SDLC, out of box thinking, analytical skill and some programming language skill apart from software testing basics.&lt;br /&gt;&lt;br /&gt;So best luck and start preparation for your rocking career! &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-1194544270986978281?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/1194544270986978281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/how-to-get-job-in-software-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1194544270986978281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1194544270986978281'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/how-to-get-job-in-software-testing.html' title='How to get job in Software Testing quickly?'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-6102460495403249127</id><published>2008-08-19T00:52:00.000-07:00</published><updated>2009-09-24T03:05:49.435-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>What Do You Mean By SRS</title><content type='html'>&lt;ul style="text-align: justify;"&gt;&lt;span style="font-size:+1;"&gt;&lt;li&gt;a set of precisely stated properties or constraints which a software system must satisfy.  &lt;/li&gt;&lt;li&gt;a software requirements document establishes boundaries on the solution space of the problem of developing a useful software system. &lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;div&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt; &lt;span style="font-size:+1;"&gt;A software requirements document allows a design to be validated - if the constraints and properties specified in the document are satisfied by the  software design, then that design is an acceptable solution to the problem.  &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt; &lt;span style="font-size:+1;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt; &lt;span style="font-size:+1;"&gt;Six requirements which a software requirements document should satisfy   &lt;/span&gt;&lt;/p&gt;&lt;ol style="text-align: justify;"&gt;&lt;span style="font-size:+1;"&gt; &lt;li&gt;it should specify only external system behaviour,  &lt;/li&gt;&lt;li&gt;it should specify constraints on the implementation,  &lt;/li&gt;&lt;li&gt;it should be easy to change,  &lt;/li&gt;&lt;li&gt;it should serve as a reference tool for system maintainers,  &lt;/li&gt;&lt;li&gt;it should record forethought about the life cycle of the   system, and  &lt;/li&gt;&lt;li&gt;it should characterize acceptable responses to undesired   events&lt;/li&gt;&lt;/span&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;span style="font-size:+1;"&gt;&lt;a name="characteristics"&gt;Characteristics of a Software Requirements Specification&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p&gt; &lt;span style="font-size:+1;"&gt;A good SRS is &lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;span style="font-size:+1;"&gt;&lt;li&gt;unambiguous, &lt;/li&gt;&lt;li&gt;complete, &lt;/li&gt;&lt;li&gt;verifiable, &lt;/li&gt;&lt;li&gt;consistent, &lt;/li&gt;&lt;li&gt;modifiable, &lt;/li&gt;&lt;li&gt;traceable, and &lt;/li&gt;&lt;li&gt;usable during the operation and maintenance phase. &lt;/li&gt;&lt;/span&gt;&lt;/ol&gt;  &lt;h3&gt;&lt;span style="font-size:+1;"&gt;&lt;a name="unamb"&gt;Unambiguous&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt; &lt;ul&gt;&lt;span style="font-size:+1;"&gt;&lt;li&gt;Every requirement has only one interpretation. &lt;/li&gt;&lt;li&gt;Each characteristic of the final product is described using a single unique  term. &lt;/li&gt;&lt;li&gt;A glossary should be used when a term used in a particular context could have  multiple meanings. &lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;  &lt;h3&gt;&lt;span style="font-size:+1;"&gt;&lt;a name="compl"&gt;Complete&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt; &lt;ul&gt;&lt;span style="font-size:+1;"&gt;A complete SRS must possess the following qualities:  &lt;/span&gt;&lt;ol&gt;&lt;span style="font-size:+1;"&gt; &lt;li&gt;inclusion of all significant requirements,  &lt;/li&gt;&lt;li&gt;definition of the responses of the software to all realizable   classes of input,  &lt;/li&gt;&lt;li&gt;conformity to any standard that applies to it,  &lt;/li&gt;&lt;li&gt;full labelling and referencing of all tables and diagrams and   the definition of all terms.  &lt;/li&gt;&lt;/span&gt;&lt;/ol&gt;&lt;/ul&gt;  &lt;h3&gt;&lt;span style="font-size:+1;"&gt;&lt;a name="verif"&gt;Verifiable&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt; &lt;ul&gt;&lt;span style="font-size:+1;"&gt;&lt;li&gt;Every requirement must be verifiable. &lt;/li&gt;&lt;li&gt;There must exist some finite cost-effective process with which a  person or machine can check that the software meets the requirement. &lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;  &lt;h3&gt;&lt;span style="font-size:+1;"&gt;&lt;a name="consi"&gt;Consistent&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt; &lt;ul&gt;&lt;span style="font-size:+1;"&gt;&lt;li&gt;No set of individual requirements described in the SRS can be in  conflict. &lt;/li&gt;&lt;li&gt;Types of likely conflicts:  &lt;ol&gt;&lt;li&gt;Two or more requirements describe the same real world object in  different terms.  &lt;/li&gt;&lt;li&gt;The specified characteristics of real world objects might conflict.  &lt;/li&gt;&lt;li&gt;There may be a logical or temporal conflict between two specified  actions.  &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;  &lt;h3&gt;&lt;span style="font-size:+1;"&gt;&lt;a name="modif"&gt;Modifiable&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt; &lt;ul&gt;&lt;span style="font-size:+1;"&gt;&lt;li&gt;The structure and style of the SRS are such that any necessary changes  to the requirements can be made easily, completely and consistently. &lt;/li&gt;&lt;li&gt;Requirements:  &lt;ol&gt;&lt;li&gt;a coherent and easy-to-use organization (including a table of     contents, index and cross-referencing),  &lt;/li&gt;&lt;li&gt;not be redundant - this can lead to errors.  &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;  &lt;h3&gt;&lt;span style="font-size:+1;"&gt;&lt;a name="trace"&gt;Traceable&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt; &lt;ul&gt;&lt;span style="font-size:+1;"&gt;&lt;li&gt;The origin of each requirement must be clear. &lt;/li&gt;&lt;li&gt;The SRS should facilitate the referencing of each requirement in  future development or enhancement documentation. &lt;/li&gt;&lt;li&gt;Types:  &lt;ol&gt;&lt;li&gt;Backward traceability   &lt;ul&gt;&lt;li&gt;Each requirement must explicitly reference its    source in previous documents.   &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;Forward traceability   &lt;ul&gt;&lt;li&gt;Each requirement must have an unique name or    reference number.   &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;  &lt;h3&gt;&lt;span style="font-size:+1;"&gt;&lt;a name="usabl"&gt;Usable during the operation and maintenance phase&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt; &lt;ul&gt;&lt;span style="font-size:+1;"&gt;&lt;li&gt;The SRS must address the needs of the operation and maintenance phase, including the eventual replacement of the software. &lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-6102460495403249127?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/6102460495403249127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/what-do-you-mean-by-srs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/6102460495403249127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/6102460495403249127'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/what-do-you-mean-by-srs.html' title='What Do You Mean By SRS'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-9223099001052893925</id><published>2008-08-13T02:32:00.000-07:00</published><updated>2009-09-24T03:05:49.435-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Feasibility and Requirement Analysis</title><content type='html'>The purpose of the feasibility study is to determine that whether the project can go ahead or not. If the project can go ahead the feasibility study produce the project plan and budget for the future stages of Development. The main goal of this phase is to identify the exact requirement for the System. This study sometimes performed by the market organizations, developer and Client. If the system already exist the goal of this phase is to identify the part of the System which have to be automated. Developing a system which does not exist is more Difficult task because it requires more creative thinking. Once the requirement’s are Identified, they are recorded in the document called SRS. For this pupose some specific language has been selected. The document at the end of this phase is known as SRS.&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Amit Ahuja&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-9223099001052893925?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/9223099001052893925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/purpose-of-feasibility-study-is-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/9223099001052893925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/9223099001052893925'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/purpose-of-feasibility-study-is-to.html' title='Feasibility and Requirement Analysis'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-2640807776482595136</id><published>2008-08-12T06:08:00.000-07:00</published><updated>2009-09-24T03:05:49.435-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Difference between Testing Types and Testing Techniques</title><content type='html'>Testing types deal with what aspect of the computer software would be tested, while testing techniques deal with how a specific part of the software would be tested.&lt;br /&gt;&lt;br /&gt;That is, testing types mean whether we are testing the function or the structure of the software. In other words, we may test each function of the software to see if it is operational or we may test the internal components of the software to check if its internal workings are according to specification.&lt;br /&gt;&lt;br /&gt;On the other hand, ‘Testing technique’ means what methods or ways would be applied or calculations would be done to test a particular feature of a software (Sometimes we test the interfaces, sometimes we test the segments, sometimes loops etc.)&lt;br /&gt;&lt;br /&gt; Amit Ahuja&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-2640807776482595136?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/2640807776482595136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/difference-between-testing-types-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2640807776482595136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2640807776482595136'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/difference-between-testing-types-and.html' title='Difference between Testing Types and Testing Techniques'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-8593616448062522602</id><published>2008-08-12T06:07:00.000-07:00</published><updated>2009-09-24T03:06:50.600-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Inspection</title><content type='html'>&lt;div align="justify"&gt;A static analysis technique that relies on visual examination of development products to detect errors, violations of development standards, and other problems. Types include code inspection; design inspection, Architectural inspections, Test ware inspections etc.&lt;br /&gt;The participants in Inspections assume one or more of the following roles:&lt;br /&gt;a) Inspection leader&lt;br /&gt;b) Recorder&lt;br /&gt;c) Reader&lt;br /&gt;d) Author&lt;br /&gt;e) Inspector&lt;br /&gt;&lt;br /&gt;All participants in the review are inspectors. The author shall not act as inspection leader and should not act as reader or recorder. Other roles may be shared among the team members. Individual participants may act in more than one role.&lt;br /&gt;Individuals holding management positions over any member of the inspection team shall not participate in the inspection.&lt;br /&gt;&lt;br /&gt;Input to the inspection shall include the following:&lt;br /&gt;a) A statement of objectives for the inspection&lt;br /&gt;b) The software product to be inspected&lt;br /&gt;c) Documented inspection procedure&lt;br /&gt;d) Inspection reporting forms&lt;br /&gt;e) Current anomalies or issues list&lt;br /&gt;Input to the inspection may also include the following:&lt;br /&gt;f) Inspection checklists&lt;br /&gt;g) Any regulations, standards, guidelines, plans, and procedures against which the software product is to be inspected&lt;br /&gt;h) Hardware product specifications&lt;br /&gt;i) Hardware performance data&lt;br /&gt;j) Anomaly categories&lt;br /&gt;The individuals may make additional reference material available responsible for the software product when requested by the inspection leader.&lt;br /&gt;The purpose of the exit criteria is to bring an unambiguous closure to the inspection meeting. The exit decision shall determine if the software product meets the inspection exit criteria and shall prescribe any appropriate rework and verification. Specifically, the inspection team shall identify the software product disposition as one of the following:&lt;br /&gt;a) Accept with no or minor rework. The software product is accepted as is or with only minor rework. (For example, that would require no further verification).&lt;br /&gt;b) Accept with rework verification. The software product is to be accepted after the inspection leader or&lt;br /&gt;a designated member of the inspection team (other than the author) verifies rework.&lt;br /&gt;c) Re-inspect. Schedule a re-inspection to verify rework. At a minimum, a re-inspection shall examine the software product areas changed to resolve anomalies identified in the last inspection, as well as side effects of those changes.&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Amit Ahuja&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-8593616448062522602?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/8593616448062522602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/inspection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8593616448062522602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8593616448062522602'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/inspection.html' title='Inspection'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-348859424835735898</id><published>2008-08-12T06:06:00.000-07:00</published><updated>2009-09-24T03:06:50.600-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Walkthrough</title><content type='html'>&lt;div align="justify"&gt;A static analysis technique in which a designer or programmer leads members of the development team and other interested parties through a segment of documentation or code, and the participants ask questions and make comments about possible errors, violation of development standards, and other problems.&lt;br /&gt;The objectives of Walkthrough can be summarized as follows:&lt;br /&gt;Detect errors early.&lt;br /&gt;· Ensure (re)established standards are followed:&lt;br /&gt;· Train and exchange technical information among project teams which participate in the walkthrough.&lt;br /&gt;· Increase the quality of the project, thereby improving morale of the team members.&lt;br /&gt;The participants in Walkthroughs assume one or more of the following roles:&lt;br /&gt;a) Walk-through leader&lt;br /&gt;b) Recorder&lt;br /&gt;c) Author&lt;br /&gt;d) Team member&lt;br /&gt;To consider a review as a systematic walk-through, a team of at least two members shall be assembled. Roles may be shared among the team members. The walk-through leader or the author may serve as the recorder. The walk-through leader may be the author.&lt;br /&gt;Individuals holding management positions over any member of the walk-through team shall not participate in the walk-through.&lt;br /&gt;&lt;br /&gt;Input to the walk-through shall include the following:&lt;br /&gt;a) A statement of objectives for the walk-through&lt;br /&gt;b) The software product being examined&lt;br /&gt;c) Standards that are in effect for the acquisition, supply, development, operation, and/or maintenance of the software product&lt;br /&gt;Input to the walk-through may also include the following:&lt;br /&gt;d) Any regulations, standards, guidelines, plans, and procedures against which the software product is to be inspected&lt;br /&gt;e) Anomaly categories&lt;br /&gt;&lt;br /&gt;The walk-through shall be considered complete when&lt;br /&gt;a) The entire software product has been examined&lt;br /&gt;b) Recommendations and required actions have been recorded&lt;br /&gt;c) The walk-through output has been completed&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;Amit Ahuja&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-348859424835735898?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/348859424835735898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/walkthrough.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/348859424835735898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/348859424835735898'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/walkthrough.html' title='Walkthrough'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-5911460025482053512</id><published>2008-08-12T06:01:00.002-07:00</published><updated>2009-09-24T03:06:50.600-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Objective Testing</title><content type='html'>&lt;div align="justify"&gt;Objective testing is mainly used in systems where the data can be recorded while the simulation is running. This testing technique relies on the application of statistical and automated methods to the data collected.&lt;br /&gt;Statistical methods are used to provide an insight into the accuracy of the simulation. These methods include hypothesis testing, data plots, principle component analysis and cluster analysis.&lt;br /&gt;Automated testing requires a knowledge base of valid outcomes for various runs of simulation. This knowledge base is created by domain experts of the simulation system being tested. The data collected in various test runs is compared against this knowledge base to automatically validate the system under test. An advantage of this kind of testing is that the system can continually be regression tested as it is being developed.&lt;br /&gt;Statistical Methods&lt;br /&gt;Statistical methods are used to provide an insight into the accuracy of the simulation. These methods include hypothesis testing, data plots, principle component analysis and cluster analysis.&lt;br /&gt;Automated Testing&lt;br /&gt;Automated testing requires a knowledge base of valid outcomes for various runs of simulation. This knowledge base is created by domain experts of the simulation system being tested. The data collected in various test runs is compared against this knowledge base to automatically validate the system under test. An advantage of this kind of testing is that the system can continually be regression tested as it is being developed.&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;Amit Ahuja&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-5911460025482053512?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/5911460025482053512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/objective-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5911460025482053512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5911460025482053512'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/objective-testing.html' title='Objective Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-5726677354058161360</id><published>2008-08-12T06:01:00.001-07:00</published><updated>2009-09-24T03:06:50.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Subjective Testing</title><content type='html'>&lt;div align="justify"&gt;Subjective testing mainly depends on an expert's opinion. An expert is a person who is proficient and experienced in the system under test. Conducting the test involves test runs of the simulation by the expert and then the expert evaluates and validates the results based on some criteria.&lt;br /&gt;One advantage of this approach over objective testing is that it can test those conditions which cannot be tested objectively. For example, an expert can determine whether the joystick handling of the flight feels "right".&lt;br /&gt;&lt;br /&gt;One disadvantage is that the evaluation of the system is based on the "expert's" opinion, which may differ from expert to expert. Also, if the system is very large then it is bound to have many experts. Each expert may view it differently and can give conflicting opinions. This makes it difficult to determine the validity of the system. Despite all these disadvantages, subjective testing is necessary for testing systems with human interaction.&lt;/div&gt;&lt;br /&gt;Amit Ahuja&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-5726677354058161360?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/5726677354058161360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/subjective-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5726677354058161360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5726677354058161360'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/subjective-testing.html' title='Subjective Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-8496607442790403969</id><published>2008-08-11T00:13:00.001-07:00</published><updated>2009-09-24T03:06:50.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Black Box and Gray Box Testing</title><content type='html'>&lt;p style="text-align: justify;" class="text"&gt;Black box testing is based on the Software's specifications or  requirements, without reference to its internal workings. Gray box testing  combines white box techniques with black box input testing [Hoglund 04]. This  method of testing explores paths that are directly accessible from user inputs  or external interfaces to the software. In a typical case, white box analysis is  used to find vulnerable areas, and black box testing is then used to develop  working attacks against these areas. The use of gray box techniques combines  both white box and black box testing methods in a powerful way.&lt;/p&gt;&lt;div style="text-align: justify;"&gt;           &lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt; Amit Ahuja&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-8496607442790403969?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/8496607442790403969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/black-box-and-gray-box-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8496607442790403969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/8496607442790403969'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/black-box-and-gray-box-testing.html' title='Black Box and Gray Box Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-3859347708309469113</id><published>2008-08-11T00:10:00.000-07:00</published><updated>2009-09-24T03:06:50.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>White Box Testing</title><content type='html'>&lt;p style="text-align: justify;" class="text"&gt;The purpose of any Security testing method is to ensure the robustness of  a system in the face of malicious attacks or regular Software failures. White  box testing is performed based on the knowledge of &lt;em&gt;how&lt;/em&gt; the system is  implemented. White box testing includes analyzing data flow, control flow,  information flow, coding practices, and exception and error handling within the  system, to test the intended and unintended software behavior. White box testing  can be performed to validate whether code implementation follows intended  design, to validate implemented security functionality, and to uncover  exploitable vulnerabilities. &lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;" class="text"&gt;White box testing requires access to the source code. Though white box  testing can be performed any time in the life cycle after the code is developed,  it is a good practice to perform white box testing during the unit testing  phase. &lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;" class="text"&gt;White box testing requires knowing what makes software secure or insecure,  how to think like an attacker, and how to use different testing tools and  techniques. The first step in white box testing is to comprehend and analyze  source code, so knowing what makes software secure is a fundamental requirement.  Second, to create tests that exploit software, a tester must think like an  attacker. Third, to perform testing effectively, testers need to know the  different tools and techniques available for white box testing. The three  requirements do not work in isolation, but together. &lt;/p&gt;&lt;div style="text-align: justify;"&gt;           &lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt; Amit Ahuja&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-3859347708309469113?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/3859347708309469113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/white-box-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/3859347708309469113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/3859347708309469113'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/white-box-testing.html' title='White Box Testing'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-7973240360021812553</id><published>2008-08-09T03:44:00.001-07:00</published><updated>2009-09-24T03:06:50.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Kinds of testing that should be considered for Websites.</title><content type='html'>&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Black box testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - testing not based on any knowledge of the internal design or code. Tests are based on requirements and functionality.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Incremental integration testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - continuous testing of website as new functionality is added; requires that various aspects of an web applications functionality be independent enough to work separately before all parts of the program are completed. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Integration testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - testing that is done on combined parts of an application to determine if they function together correctly. The ‘parts’ can be code modules, individual applications, pages in a website etc. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Functional testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - black box type testing geared to functional requirements of an application; testers should do this type of testing. This doesn’t mean that the programmers shouldn’t check that their code works before releasing it (which of course applies to any stage of testing.)&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;System testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - black box type testing that is based on overall requirements specifications; covers all combined parts of a web application. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;End-to-end testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - similar to system testing; the ‘macro’ end of the test scale; involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Sanity testing or smoke testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - typically an initial testing effort to determine if a new web application is performing well enough to accept it for a major testing effort. For example, if there are lots of missing links, missing images, missing validations, or corrupting databases, the website may not be in a ’sane’ enough condition to warrant further testing in its current state. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Regression testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - re-testing after fixes or modifications of the website or its pages. It can be difficult to determine how much re-testing is needed, especially near the end of the development cycle. Automated testing tools can be especially useful for this type of testing. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Acceptance testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - final testing based on specifications of the end-user or customer, or based on use by end-users/customers over some limited period of time. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Load testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Stress testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - term often used interchangeably with ‘load’ and ‘performance’ testing. Also used to describe such tests as system functional testing while under unusually heavy loads, heavy repetition of certain actions or inputs, input of large numerical values, large complex queries to a database system, etc. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Performance testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - term often used interchangeably with ’stress’ and ‘load’ testing. Ideally ‘performance’ testing (and any other ‘type’ of testing) is defined in requirements documentation or QA or Test Plans. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Usability testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - testing that is done for ‘user-friendliness’. Clearly this is subjective, and will depend on the targeted end-user or customer. User interviews, surveys, video recording of user sessions, and other techniques can be used. Programmers and testers are usually not appropriate as usability testers.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Security testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - testing how well the system protects against unauthorized internal or external access, willful damage, etc; may require sophisticated testing techniques.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Compatibility testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - testing how well website performs in a particular hardware/software/operating system//browser/network etc. environment.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Exploratory testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - often taken to mean a creative, informal software test that is not based on formal test plans or test cases; testers may be learning the website as they test it.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Ad-hoc testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - similar to exploratory testing, but often taken to mean that the testers have significant understanding of the website before testing it.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;User acceptance testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - determining if website is satisfactory to an end-user or customer.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Alpha testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - testing of a web application when development is nearing completion; minor design changes may still be made as a result of such testing. Typically done by end-users or others, not by programmers or testers. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p class="MsoNormal" style="margin: 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Beta testing&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; - testing when development and testing are essentially completed and final bugs and problems need to be found before final release. Typically done by end-users or others, not by programmers or testers.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Amit Ahuja&lt;br /&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/822230696137075392-7973240360021812553?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/7973240360021812553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/kinds-of-testing-that-should-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7973240360021812553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/7973240360021812553'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/kinds-of-testing-that-should-be.html' title='Kinds of testing that should be considered for Websites.'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-2365530897074450851</id><published>2008-08-09T03:41:00.000-07:00</published><updated>2009-09-24T03:06:50.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Testing Policy VS. Quality Policy</title><content type='html'>&lt;div style="text-align: justify;" class="entry"&gt;          &lt;div class="snap_preview"&gt;&lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Testing Policy:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;A Testing policy is management‘s definition of testing a department. A testing policy involves the following four criteria&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Definition of testing: a clear, brief and unambiguous definition of testing&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Standards: The standards against which testing will be measured&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Testing system: The method through which testing will be achieved and enforced&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Evaluation: How testing team will measure and evaluate testing.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;strong&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Quality Policy:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;A quality policy is again a management definition of providing customer satisfaction for the first time and every time. Understanding the definition of excellence and quality is important because it is starting point of any management team contemplating the implementation of a quality policy.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0pt;"&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt;  &lt;span style=";font-family:Verdana;font-size:10;"  &gt;Amit Ahuja&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;                &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-2365530897074450851?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/2365530897074450851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/testing-policy-vs-quality-policy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2365530897074450851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/2365530897074450851'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/testing-policy-vs-quality-policy.html' title='Testing Policy VS. Quality Policy'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-3829618357343159559</id><published>2008-08-09T03:36:00.000-07:00</published><updated>2009-09-24T03:06:50.602-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>What if Automation finds bugs ....? Good thing or bad thing?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Now, let us track that trail of what happens a bug is discovered -&lt;br /&gt;In automation - situation could be bit tricky especially when the automation tests, logs are bigger. An error/bug reported by an automation bug needs to be checked to see if it is a bug in automation code or a bug in application or bug in data setup or some timing or synchronization related problem (in GUI automation scenario). Let us say you have 5-7 pages of log file - you will have to scan/read through the log file an locate the bug. You might have to do execute failed automated test manually (and corresponding data setup etc).&lt;br /&gt;In manual testing, human tester can easily trace and follow the bug trail and document the bug. At a high level, bug investigation and isolation tasks tend to become relatively low.&lt;br /&gt;&lt;br /&gt;Hence, when automation discovers a bug - things get really problematic.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;If one were to cut down cycle time by automation or otherwise, they HAVE to make sure either "no bugs are discovered" or "any discovered bugs are IGNORED" or "bugs that are discovered, if fixed, not tested again and other regression testing is done ....&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Can automation control or influence any of above events - prevents bugs being discovered or igonore the bugs if accidently discovered or mandate that bugs fixes will not be subsequently tested?&lt;br /&gt;&lt;br /&gt;For the sake of argument, let us suppose that both human test cycle and Automation find same number of bugs ... and take out "bugs" portion of test cycle, how automation can save test cycle time? On what parameters this cycle time reduction by Automation depends ?&lt;br /&gt;&lt;br /&gt;Type of test - nature of interactions between "test execution agent" (human or an automated script) and nature of verifications (during and post execution).&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;GUI Forms with lots of data input fields - can result in quick form fill tests when automated (zero think time).&lt;/li&gt;&lt;li&gt;Tests that require longer processing time can not gain from automation as automation can not speed up the processing time.&lt;/li&gt;&lt;li&gt;Tests that require visual inspection - window titles, error messages, color, tool tip and other GUI centric elements - are better tested manunally as programmatic tests would mean lots of investment. Human testes are quicker and cheaper in such cases.&lt;/li&gt;&lt;li&gt;Result verification that requires detailed analysis, text file processing, database check etc are good candidates for gaining cycle time.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Thus, there are parameters that are beyond the reach of automation ... hence the notion of cycle time reduction has to be really, really taken with "caution".&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt; Amit Ahuja&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-3829618357343159559?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/3829618357343159559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/what-if-automation-finds-bugs-good.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/3829618357343159559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/3829618357343159559'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/what-if-automation-finds-bugs-good.html' title='What if Automation finds bugs ....? Good thing or bad thing?'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-1731364584603575505</id><published>2008-08-09T03:25:00.000-07:00</published><updated>2009-09-24T03:06:50.602-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Are all best practices "worthless"? Testing Best Practices</title><content type='html'>&lt;p style="text-align: justify;"&gt;Other day I was quoting following from &lt;a href="http://www.geraldmweinberg.com/Site/Home.html"&gt;Jerry&lt;/a&gt;’s new &lt;a href="http://www.dorsethouse.com/books/perf.html"&gt;book&lt;/a&gt; on testing to one of my colleague who is a “best practice” proponent.&lt;br /&gt;&lt;br /&gt;…..&lt;em&gt;The risks in these two situations are vastly different, so do you think I recommended the same testing process I used for finding a personal web-writing application? Do you imagine I recommended that my client install random freeware pacemakers into live patients until he found something he liked, or didn't dislike? Why not?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I took above sentences as reference and told him.. “&lt;em&gt;Can you use software testing strategy that one uses for web application writing to that of an embedded software in a heart pace maker? Hence best practices are such a junk thing ...&lt;/em&gt;”&lt;br /&gt;&lt;br /&gt;To that he was silent for a while answered --- &lt;strong&gt;&lt;em&gt;I agree with your point that test strategy or approach used for web application cannot be applied for embedded software in pace maker … How about picking the practice from a same field/domain – will that not save the time, energy and effort for my client ? Let us say I develop a list of practices for a given field (embedded software used in human bodies) and keep “selling” them as best practices (jump start kit) for those clients who deal with such software? What is your opinion? Would you still say … best practices (in a context) are junk&lt;/em&gt;&lt;/strong&gt;?&lt;br /&gt;&lt;br /&gt;I did not have a good answer for him …. Then we discussed about “universal best practices” (I am not sure if such phrase exists as all best practices are universal in nature by default and context less??) such as “walking is good for health”,”Test considering end user scenarios”, “Do unit testing” “Do code review”, “Aspirin is good for heart”, “Drunken driving leads to accidents”, “Do meditation to calm your mind” etc. I told him about at least 3 contexts for each of these best practices where following best practices can lead to harmful effects.&lt;br /&gt;&lt;br /&gt;After listening to me … he said … &lt;em&gt;Shrini … you appear to be "making up" all these contexts to prove your point …I want you to answer my question – Are all generic best practices recommendations are worthless or fake? When customers want something readymade that will help them to jumpstart the work, they would like to see if I, as a consultant, can bring some “best practices” from my previous similar experiments. Is that expectation unreasonable?&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;I am thinking ... I don’t have a good answer for him … do you? I hope &lt;a href="http://secretsofconsulting.blogspot.com/"&gt;Jerry&lt;/a&gt; would have some answer … &lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;strong&gt;&lt;em&gt;Are there any "universal best practices" or by default all best practices are universal and context free? Will a best practice cease to remain as bet practice once it comes with a context?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;em&gt;&lt;strong&gt;[update]&lt;/strong&gt; Quoting from Jerry's book again&lt;strong&gt; - "As humans - we are not perfect thinkers, we are affected by emotions and we are not clones. We are Imperfect, irrational, value driven,diverse humans - hence we test software and test our&lt;br /&gt;testing AND hence test "best practices" that sales and marketing folks associate with software testing.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt;  Amit Ahuja&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-1731364584603575505?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/1731364584603575505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/are-all-best-practices-worthless.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1731364584603575505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/1731364584603575505'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/are-all-best-practices-worthless.html' title='Are all best practices &quot;worthless&quot;? Testing Best Practices'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-822230696137075392.post-5278353549408702169</id><published>2008-08-09T03:23:00.000-07:00</published><updated>2009-09-24T03:06:50.602-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Testing'/><title type='text'>Software - A game of questions and answers</title><content type='html'>&lt;div style="text-align: justify;"&gt;The most serious mistakes are not being made as a result of wrong answers. The truly dangerous thing is asking the wrong question."&lt;br /&gt;— Peter &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Drucker&lt;/span&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;"Testing is a questioning process in order to evaluate software" - James Bach&lt;/p&gt;&lt;p style="text-align: justify;"&gt;"Computers are useless. They can only give you answers." -  Pablo Picasso&lt;/p&gt;&lt;p style="text-align: justify;"&gt;"One who asks a question is a fool for five minutes; one who does not ask a question remains a fool forever." - A Chinese proverb &lt;/p&gt;&lt;p style="text-align: justify;"&gt; &lt;/p&gt;&lt;p style="text-align: justify;"&gt;Other day I was discussing with one of my colleague … somehow our discussion went about interpreting in simple terms the whole “game” of software development and testing. Here is what and how ended up in agreeing on the “simple” model to describe software and software &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;lifecycle&lt;/span&gt; …(not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SDLC&lt;/span&gt;  but &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SLC&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Software development is about coming up with answers (and demonstrating those answers with an example) to the questions raised by testers, end users and other stakeholders.&lt;br /&gt;&lt;br /&gt;Software testers ask questions about claims and capabilities of what software is supposed to do, take the questions to developers and project mangers and ask for answers.&lt;br /&gt;&lt;br /&gt;Project manager or project sponsors scan these questions and pick up those that they think are worth “answering”, prioritize them and pass on the developers for providing answers and ways to demonstrate the answers. Before releasing the software to testers, developer do some question-answer session with buddy developers and leads (peer testing, unit testing and code reviews)&lt;br /&gt;&lt;br /&gt;Developers then get on mission to analyze questions and develop/construct answers in the form of capabilities in the software and “release” to testers to check to see the answers are “satisfactory”. When developers do not get answers or feel that it takes relatively long time to find the answers – they turn to project manager with their analysis as why answer can not be made available immediately. Project manager then takes the decision of “deferring” those “unanswered” question to be taken up in future releases.&lt;br /&gt;At times Testers, act on behalf of end users and other&lt;br /&gt;&lt;br /&gt;Testers verify those answers and check to see they are OK … some times there will be follow-up questions or new questions (regression bugs/issues) and they are routed to developers via the project manager. This cycle repeats until there are new questions to be answered by the developers.&lt;br /&gt;&lt;br /&gt;So … as long as there are questions to be answered about software … there will be the need of developers (who will provide answers) and there will be need of Project managers (to prioritize and check which questions need to be answered) and hence a software development project …&lt;br /&gt;&lt;br /&gt;Guess what … it is software testers who drive the whole thing by asking relevant and important questions about software – about it’s claims and capabilities …&lt;br /&gt;&lt;br /&gt;So … as important trait of a tester is to practice asking “good” questions …&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;img src="http://onestoptesting.com/images/discussion.jpg" alt="discussion" align="middle" /&gt;   Amit Ahuja&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/822230696137075392-5278353549408702169?l=qaamitahuja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qaamitahuja.blogspot.com/feeds/5278353549408702169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/software-game-of-questions-and-answers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5278353549408702169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/822230696137075392/posts/default/5278353549408702169'/><link rel='alternate' type='text/html' href='http://qaamitahuja.blogspot.com/2008/08/software-game-of-questions-and-answers.html' title='Software - A game of questions and answers'/><author><name>Amit Ahuja</name><uri>http://www.blogger.com/profile/07349434084070785624</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
