Automation Concepts

10,632 views

Published on

Published in: Technology, Business
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total views
10,632
On SlideShare
0
From Embeds
0
Number of Embeds
164
Actions
Shares
0
Downloads
567
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide
  • To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely. To provide a code-execution environment that minimizes software deployment and versioning conflicts. To provide a code-execution environment that guarantees safe execution of code, including code created by an unknown or semi-trusted third party. To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments. To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications. To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code.
  • To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely. To provide a code-execution environment that minimizes software deployment and versioning conflicts. To provide a code-execution environment that guarantees safe execution of code, including code created by an unknown or semi-trusted third party. To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments. To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications. To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code.
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Each computer where the common language runtime is installed has a machine-wide code cache called the global assembly cache. As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code. Note   There are scenarios where you explicitly do not want to install an assembly into the global assembly cache. If you place one of the assemblies that make up an application in the global assembly cache, you can no longer replicate or install the application by XCOPYing the application directory. You must move the assembly in the global assembly cache as well. There are several ways to deploy an assembly into the global assembly cache:
  • Automation Concepts

    1. 1. Key to successful Automation
    2. 2. Murphy’s Rules for Testers <ul><li>Never assume anything. </li></ul><ul><li>There is no such thing as stupid question. </li></ul><ul><li>Record everything thoroughly. </li></ul><ul><li>If you don’t understand, it’s not your fault. </li></ul>
    3. 3. What is Testing ? <ul><li>Testing is a process of executing the program with intent to finding the bugs </li></ul><ul><li>Testing is the set of processes which ensure that the functionality and performance planned through design has been delivered through the system. </li></ul><ul><li>Testing is required to improve the quality of the product before handling over the product to the customer. </li></ul>
    4. 4. Type of testing <ul><li>Manual Testing </li></ul><ul><li>Automated testing </li></ul>
    5. 5. Manual Testing <ul><li>Traditional form of testing </li></ul><ul><li>Slow , tedious , boring </li></ul><ul><li>Costly , more time & effort </li></ul><ul><li>Difficult to Manage </li></ul><ul><li>Reliable ? </li></ul><ul><li>Flexible </li></ul><ul><li>(A lot have been said about the Slow and tediousness of the manual testing but it’s the flexibility that it provides that overshadows all other points. With the frequent change in the software its not viable to change the test script regularly. So when changes are brought into the software regularly, the manual testing is the best option). </li></ul>
    6. 6. Automation and its Need <ul><li>Automation is done to reduce repeated and redundant testing. Automation maintains a single standard of quality for your application over time — across releases, platforms, and networks. </li></ul><ul><li>It is used to replace or supplement manual testing with a suite of test programs. Benefits include increased software quality, improved time and resource efforts , repeatable test procedures, and reduced testing costs. </li></ul>
    7. 7. Myths about Automated testing <ul><li>Find more bugs:- In most places the test cases are written by test engineers who are familiar with the application they are testing. From test cases to test scripts, automation does not add anything in the process to find more bugs. The test scripts will work only as good as the test cases when comes to finding bugs. </li></ul><ul><li>Eliminate or reduce manual testers:-For the stable application we can say this, but for an application that required any change this is totally a myth. As said earlier that the test scripts are as good as the test cases itself so for the new test cases manual tester will definitely be required. </li></ul><ul><li>Automated Testing doesn't mean Automatic Testing …. It means Computer aided testing </li></ul>
    8. 8. Advantages of Automated testing <ul><li>Ease the testing process </li></ul><ul><li>Quicken the testing, by reducing the time and effort involved in manual testing . A typical automated test suite will run in less than 24 hours, without any human intervention required. For a sophisticated product, manual testing may require dozens of staff months to perform the same testing </li></ul><ul><li>Maintain consistency – After a new drop is taken, the same script would be run against the same data, thereby eliminating the chances of any inconsistency. With a complex testing process manual testing often yields inconsistent coverage and results depending on the staff and schedule employed. An automated test suite ensures the same scope and process is used repeatable each time testing is performed. </li></ul><ul><li>Accelerate release schedule by testing at any point in the development cycle </li></ul><ul><li>IMPROVED TESTING PRODUCTIVITY. With its much shorter execution time an automated test suite can be run multiple times over the course of a product development cycle. By testing earlier and more often bugs are detected and corrected earlier and at much reduced expense. </li></ul><ul><li>IMPROVED PRODUCT QUALITY. The sum of improved test procedures and testing productivity is a substantial improvement in product quality. Automated testing detects functional and performance issues more efficiently, allowing test staff to focus on quality in areas such as documentation, installation, hardware compatibility, etc. </li></ul><ul><li>Reuses test across platforms </li></ul><ul><li>Encourage more thorough testing without straining manual resources </li></ul>
    9. 9. Advantages of Automated testing <ul><li>Cost effective - Automated testing has an upfront cost to develop, but over the lifetime of a product it will offer substantial net savings. An average automated test suite development is 3-5 times the cost of a complete manual test cycle. Over multiple product releases with multiple cycles per release, this cost is quickly recouped. </li></ul><ul><li>Decrease the product’s time to market and prevent QA from being the bottleneck in product delivery </li></ul><ul><li>Improve coverage of regression testing </li></ul><ul><li>Improve the quality of testing by reducing the human error </li></ul><ul><li>Make test cycle more maintainable, consistent and thorough </li></ul><ul><li>Improve the reusability of tests </li></ul><ul><li>Provide the organized, detailed test log and audit trail of executed tests </li></ul><ul><li>Simplifies the debugging by allowing the exact test case to be replicated </li></ul><ul><li>Allows cross-referencing of automated test cases against bug logged in the bug tracking system. </li></ul>
    10. 10. Starting with Automation… <ul><li>The tester works begin once the developer is ready with the software. On an average effort require to automate 1 test case is equivalent to effort required for executing the test case 8 times manually. </li></ul><ul><li>There are several factors to consider before anyone go for the automated testing. </li></ul><ul><li>Cost effectiveness of the automation. </li></ul><ul><li>Resources availability. </li></ul><ul><li>Reusability of the automated test script. </li></ul><ul><li>Tool selection. </li></ul>
    11. 11. Typical Automated testing process <ul><li>Create a test plan </li></ul><ul><li>Record a test script ( Use agreed norms ) </li></ul><ul><li>Customise Code , Use Reusable components and functions </li></ul><ul><li>Add Check points and parameterize </li></ul><ul><li>Use standard programming conventions </li></ul><ul><li>Save and run Test Script </li></ul><ul><li>Create a Test Suite </li></ul>
    12. 12. Automation Tools <ul><li>WinRunner (From Mercury Interactive www.merc-int.com ) . </li></ul><ul><li>Quick Test Pro (From Mercury Interactive www.merc-int.com ) . </li></ul><ul><li>Silk Test (From Segue www.segue.com ) . </li></ul><ul><li>Visual Test (From Rational www.rational.com ) . </li></ul><ul><li>Rational Robot (From Rational www.rational.com ) . </li></ul><ul><li>QA Run and Test Partner ( www.compuware .com) </li></ul>
    13. 13. <ul><li>Maintainability </li></ul><ul><li>Reliability </li></ul>Most important criteria for Automation
    14. 14. Current Trend …. <ul><li>Programmers quickly create application using GUI tools which has lead to increase in their productivity </li></ul><ul><li>Pressure on Testers </li></ul><ul><ul><li>Test more and more code in less time </li></ul></ul><ul><ul><li>Improve their productivity </li></ul></ul><ul><ul><li>Move towards automation for GUI , CLI and API based application </li></ul></ul><ul><ul><li>Test Tools – a misnomer </li></ul></ul><ul><ul><li>Lack of Programming skills </li></ul></ul><ul><ul><li>Record and play back scripts , very sensitive to change </li></ul></ul><ul><li>How to effectively Design , Develop and maintain automated suites? </li></ul>
    15. 15. Who should Automate Tests <ul><li>Good Testing and development skills </li></ul><ul><li>Understand Testing Requirements and situations Testers face. </li></ul><ul><li>Testers who want to be programmers ? </li></ul><ul><li>Automate 100 % testing ? </li></ul><ul><li>A test automator needs to know how to develop software. He needs to be particularly aware of issues such as maintenance and reliability. Making the system easy to update with changes to the product under test should be the priority. </li></ul><ul><li>Independent contractors . Who will maintain tests after they have left ? </li></ul><ul><li>Rejects from Development or Testing as Automators ? </li></ul>
    16. 16. What and When to Automate <ul><li>Is 100 % automation possible ? </li></ul><ul><li>Testing is the art of pragmatic – Good software testing requires good judgment </li></ul><ul><li>The area where one spends a lot of time testing manually </li></ul><ul><li>Regression Testing </li></ul><ul><li>Smoke Testing </li></ul><ul><li>Don’t focus on areas that might otherwise go untested ( Difficult to maintain ) </li></ul><ul><li>Rigorous Manual testing of the functionality before </li></ul><ul><li>Very Strong Manual Testing Process and Procedures </li></ul><ul><li>Automating everything to make job exciting ? Problems associated </li></ul><ul><li>Test automation takes 8 times the time to test manually </li></ul><ul><li>continued …. </li></ul>
    17. 17. What and When to Automate <ul><li>Desire to be a programmer </li></ul><ul><li>Maintainability should be the top priority – Aim to run tests unattended </li></ul><ul><li>Usage of Reusable components and distribution of work </li></ul><ul><li>First run on test and then build test suite – Focus not on how much code has been written but how many test set have been automated and how reliable and maintainable they are . </li></ul><ul><li>All areas that are run frequently should be automated . </li></ul><ul><li>Don’t automate everything .. Look for parts that are big paybacks. </li></ul><ul><li>Introduction of Automation in Development cycle – Timing is important. </li></ul>
    18. 18. Building Maintainable and Reliable Test Suites <ul><li>Biggest challenge – Product Interface / components changes </li></ul><ul><li>Accurate automated Test suites </li></ul><ul><li>No False Positives </li></ul><ul><li>Abortions and False negatives are still o.k. </li></ul><ul><li>Usability and comprehension </li></ul><ul><li>Standard naming conventions and programming practices </li></ul><ul><li>Using Error Recovery Systems - Exception handling </li></ul><ul><li>Test Case Independence – base state restoration </li></ul>
    19. 19. Key to successful Automation <ul><li>Apply Software Development Process </li></ul><ul><li>Improve the Testing Process </li></ul><ul><li>Define Requirements </li></ul><ul><li>Prove the concept </li></ul><ul><li>Champion Product Testability </li></ul><ul><li>Design for Sustainability </li></ul><ul><li>Plan for Deployment </li></ul><ul><li>Face the Challenges of Success </li></ul>
    20. 20. Key to successful Automation <ul><li>Apply Software Development Process </li></ul><ul><li>Avoid Pattern Zero status (no distinction between user and developer ) </li></ul><ul><li>Dedicated resources to Test Automation and treating like development activity </li></ul><ul><li>Plan , Design </li></ul><ul><li>Effective coding practices </li></ul><ul><li>Configuration management , version control </li></ul><ul><li>Bug Tracking and testing </li></ul><ul><li>Usage of comments , functions etc </li></ul><ul><li>Usage of Re-usable components </li></ul><ul><li>Comprehensive documentation including Best practices guide </li></ul>
    21. 21. Key to successful Automation <ul><li>Improve the Testing Process </li></ul><ul><li>Robust Manual Testing and Defect Management process and procedures. </li></ul><ul><li>Objective is to streamline Test process , allowing things to move more quickly without delays. </li></ul><ul><li>Effective Regression and documentation of the same </li></ul><ul><li>Document Testing Approach </li></ul><ul><ul><li>Names , data for tests , preconditions etc </li></ul></ul><ul><ul><li>Expected results </li></ul></ul><ul><ul><li>Test Designs </li></ul></ul><ul><li>Creation of Logs </li></ul><ul><li>Identify product improvements that would help Manual Testing ( eg simplify installation process ) </li></ul><ul><li>More computers for Testing </li></ul>
    22. 22. Key to successful Automation <ul><li>Define Requirements </li></ul><ul><li>What needs to be tested – Test Design </li></ul><ul><li>Automation Requirements – Goals for automation </li></ul><ul><ul><li>Speed up testing to accelerate releases </li></ul></ul><ul><ul><li>Allow testing to happen more frequently </li></ul></ul><ul><ul><li>Reduce costs of testing by reducing manual labor </li></ul></ul><ul><ul><li>Improve test coverage </li></ul></ul><ul><ul><li>Ensure consistency </li></ul></ul><ul><ul><li>Improve the reliability of testing </li></ul></ul><ul><ul><li>Allow testing to be done by staff with less skill </li></ul></ul><ul><ul><li>Define the testing process and reduce dependence on the few who know it </li></ul></ul><ul><ul><li>Make testing more interesting </li></ul></ul><ul><ul><li>Develop programming skills </li></ul></ul><ul><li>Agree on all party expectations </li></ul>
    23. 23. Key to successful Automation <ul><li>Prove the concept </li></ul><ul><li>Proof of concept – A meaningful test suites that demonstrates suitability for </li></ul><ul><ul><li>Regression Testing </li></ul></ul><ul><ul><li>Configuration Testing </li></ul></ul><ul><ul><li>GUI / NON GUI Testing </li></ul></ul><ul><li>Demonstrate advantages of automation to higher management </li></ul><ul><li>Secure support and necessary approvals </li></ul><ul><li>Tool Evaluation and Feasibility study </li></ul><ul><ul><li>Need to investigate if the tool and approach will work for your product and staff . Is it even possible to automate tests for your product ? </li></ul></ul><ul><ul><li>Vendor issues, support , license etc </li></ul></ul><ul><ul><li>Budget and other considerations </li></ul></ul>
    24. 24. Key to successful Automation <ul><li>Champion Product Testability </li></ul><ul><li>CLI / API / GUI Testing </li></ul><ul><li>GUI is toughest to automate </li></ul><ul><ul><li>Heavy Customization of automated scripts ( programming) </li></ul></ul><ul><ul><li>Technical challenge of getting the tool to work with the product </li></ul></ul><ul><ul><ul><li>Add inns </li></ul></ul></ul><ul><ul><ul><li>Non standard components </li></ul></ul></ul><ul><ul><li>Keeping up with frequent design change to GUI . </li></ul></ul><ul><li>API Automation – Unit Testing </li></ul><ul><li>CLI Testing simpler – For e.g. .Install shield silent installation </li></ul>
    25. 25. Key to successful Automation <ul><li>Design for Sustainability </li></ul><ul><li>Long term focus on the need for maintenance and reliability so that the product remains functional and relevant with new releases. </li></ul><ul><li>Integrity of the tests are paramount </li></ul><ul><ul><li>Trust automation results , All checkpoints covered </li></ul></ul><ul><ul><li>No False positive or False Alarms </li></ul></ul><ul><ul><li>Tests have PASS, FAILED and NOTRUN Status </li></ul></ul><ul><li>Performance </li></ul><ul><ul><li>Attention on testing automation , automated code etc. </li></ul></ul><ul><ul><li>Proper Code Reviews , remove redundant code etc </li></ul></ul><ul><li>Ease of Analysis </li></ul><ul><ul><li>Analyze failure due to product defects or improper automation </li></ul></ul><ul><ul><li>False Alarm </li></ul></ul><ul><ul><li>Improve Error Reporting </li></ul></ul><ul><ul><li>Remove unreliable tests that are redundant or obsolete </li></ul></ul>
    26. 26. Key to successful Automation <ul><li>Reviewability </li></ul><ul><ul><li>Ease of understanding the objectives and working of each test </li></ul></ul><ul><ul><li>Good documentation and code coverage </li></ul></ul><ul><li>Maintainability </li></ul><ul><ul><li>Keep in mind product changes by using Centralized object repository , libraries etc </li></ul></ul><ul><li>Independence </li></ul><ul><ul><li>Must for successful execution of a test suite as one failure could cascade others. </li></ul></ul><ul><ul><li>Ideally two tests should be independent unlike Manual Testing </li></ul></ul><ul><ul><li>Each test should create its own test environment </li></ul></ul><ul><ul><li>Though redundancy increases there is more reliability </li></ul></ul><ul><ul><li>Object is to run tests unattended . </li></ul></ul>
    27. 27. Key to successful Automation <ul><li>Repeatability </li></ul><ul><ul><li>Tests should execute in the same way each and every time they are run </li></ul></ul><ul><li>Action Libraries </li></ul><ul><ul><li>Reusable components </li></ul></ul><ul><ul><li>Effective documentation </li></ul></ul><ul><ul><li>Differentiate between errors in Code or called function </li></ul></ul><ul><li>Data Driven Tests </li></ul><ul><ul><li>Also called Table Driven or third generation automation </li></ul></ul><ul><ul><li>Tests are written in simplified table format </li></ul></ul><ul><ul><li>Parser is written to interpret and execute test statements. </li></ul></ul><ul><li>Heuristic Verification </li></ul><ul><ul><li>Correct Result verification </li></ul></ul>
    28. 28. Key to successful Automation <ul><li>Plan for Deployment </li></ul><ul><ul><li>Document setup/installation, how to run tests and analyze failures </li></ul></ul><ul><ul><li>Package tests for other people to use </li></ul></ul><ul><ul><li>Helpful error messages </li></ul></ul><ul><ul><li>Treat Test Suites as a product – Least dependencies on external libraries /services. </li></ul></ul><ul><ul><li>Test suites readily available to concerned parties </li></ul></ul><ul><li>Face the challenges of success </li></ul><ul><ul><li>Staff should know how to diagnose failures . </li></ul></ul><ul><ul><li>Minimize calling automators for every issue </li></ul></ul><ul><ul><li>Defects should be reproduced manually </li></ul></ul><ul><ul><li>Repair Old tests / Add new / Maintenance etc </li></ul></ul><ul><ul><li>Formal Review of Test suites after each release. – Avoid Old Oak syndrome </li></ul></ul>
    29. 29. Key to successful Automation <ul><li>Reviewability </li></ul><ul><ul><li>Ease of understanding the objectives and working of each test </li></ul></ul><ul><ul><li>Good documentation and code coverage </li></ul></ul><ul><li>Maintainability </li></ul><ul><ul><li>Keep in mind product changes by using Centralized object repository , libraries etc </li></ul></ul><ul><li>Independence </li></ul><ul><ul><li>Must for successful execution of a test suite as one failure could cascade others. </li></ul></ul><ul><ul><li>Ideally two tests should be independent unlike Manual Testing </li></ul></ul><ul><ul><li>Each test should create its own test environment </li></ul></ul><ul><ul><li>Though redundancy increases there is more reliability </li></ul></ul><ul><ul><li>Object is to run tests unattended . </li></ul></ul>

    ×