Active Topics Memberlist Calendar Search Help | |
Register Login |
One Stop Testing Forum : Types Of Software Testing @ OneStopTesting : Automated Testing @ OneStopTesting |
Topic: Introduction to QA Testing Tools |
|
Author | Message |
Mithi25
Senior Member Joined: 23Jun2009 Online Status: Offline Posts: 288 |
Topic: Introduction to QA Testing Tools Posted: 30Oct2009 at 11:42pm |
Test automation is the use of software to control the execution of
tests, the comparison of actual outcomes to predicted outcomes, the
setting up of test preconditions, and other test control and test
reporting functions. Commonly, test automation involves automating a
manual process already in place that uses a formalized testing process.
Testers are being asked to test more and more code Many test automation tools provide record and playback features that allow users to record interactively user actions and replay it back any number of times, comparing actual results to those expected. However, reliance on these features poses major reliability and maintainability problems. Most successful automators use a software engineering approach, and as such people with development experience undertake most serious test automation. A growing trend in software development is to use testing frameworks such as the xUnit frameworks (for example, JUnit and NUnit) that allow the code to conduct unit tests to determine whether various sections of the code are acting as expected under various circumstances. Test cases describe tests that need to be run on the program to verify that the program runs as expected. All three aspects of testing can be automated. Another important aspect of test automation is the idea of partial test automation, or automating parts but not all of the software testing process. If, for example, an oracle cannot reasonably be created, or if fully automated tests would be too difficult to maintain, then a software tools engineer can instead create testing tools to help human testers perform their jobs more efficiently. Testing tools can help automate tasks such as product installation, test data creation, GUI interaction, problem detection (consider parsing or polling agents equipped with oracles), defect logging, etc., without necessarily automating tests in an end-to-end fashion. Test automation is expensive and it is an addition, not a replacement, to manual testing. It can be made cost-effective in the longer term though, especially in regression testing. One way to generate test cases automatically is model-based testing where a model of the system is used for test case generation, but research continues into a variety of methodologies for doing so. Automated testing is the use of tools assist with a testing effort.
There are many types of test automation, including automated unit
testing, functional regression testing, and performance testing. Test
automation · Load and performance testing This article does not address the day-to-day details of test automation but focuses on developing a strategy for automation, putting together an automation team, and some simple first steps. It focuses on team makeup and coordination. Some of the steps will only be applicable for teams of more than one person. The steps discussed here apply primarily to teams of three or more people. If your automation effort has only one or two full-time automated testers there is still good information available to you here, though not all of it will apply. The first step when getting started with automation is to ensure
that you are setting the correct scope for your effort and that your
efforts are focused on the right goals. In this next section, we will
look at goals Setting Goals Setting goals for automation can affect what you automate: Use your goals to set your strategy and scope for your automation.
If your goal is to support your developers, select tools and training
to support that goal. You will need testers who know how to program By setting your goals, you can start small and keep things simple
for your first-time automating. In future iterations or projects, you
may want to go crazy and automate everything, but by · If you're testing a GUI or Web application, start with testing
simple functionality. This could include verifying that all the correct
controls exist on the screen, the proper fields enable/disable when
actions are taken, etc…. Once you have determined your goals, you will need to start thinking
about what kinds of skills you will need to have on your team. The next
step addresses one of the most common oversights when staffing Ideally have atleast one programmer on your team To ensure efficient well-planned automated testing, you will need to
have at least one experienced programmer in your testing-automation
group. You'll soon find out that automated testing is code Even if the scripting environment you are using is not Java or C++
(which it may very well be), you're still building systems of scripts,
data files, and libraries. Record-and-playback features only offer quick Once a decision has been made as to what tool will be used, it is
important that the users of that tool know how to use it properly. The
next step offers some places to look if you are still choosing Familiarity with the tools Depending on what tools you already have in your arsenal and what
types of automated testing you will be doing, this section may or may
not apply to you. Most automated testing tools are designed for unit The scope of your automation effort will depend heavily on the tools
you use and have access to. If you already have an investment in an
enterprise test tool, you will probably want to leverage it. If you are · Disk imaging tools Regardless of what tool(s) you select, you will need to be sure that
you spend time learning how to use them properly. Go through the
tutorials that are provided and read through whatever documentation is Setting up standards This is just as important in testing as it is in conventional software development. Your test system will develop more rapidly and will be easier to maintain if you establish and enforce naming standards, coding standards, environmental standards, and procedures for error and defect tracking. Having these standards documented will also allow people new to the project team to come up to speed faster. Naming standards for scripts, test logs, directory structures, data
structures, and verification points help to keep everyone on the same
page. Document your team's standards, and be sure your team knows the
standards and follows them. This step will also prepare you for the
remaining steps as it will potentially provide a framework for
decisionmaking Establishing Baselines Once you've decided what you're testing, you should establish some
simple baselines. As mentioned above this can be done using
record-and-playback features, by performing some simple scripting, by Once you have established your baselines you will be better prepared
to start looking at more advanced methods of scripting (or data
gathering, or scenarios, etc…). This is important as the next two steps
focus Modularize the scripts Now that you have your baseline scripts, grab a good software architect - or your team of testers and a large whiteboard. Start looking through the code in the scripts for repetitive calls or other common actions. What you're doing is looking for ways you can modularize your scripts. Ideally, you want to optimize your scripts so that maintenance is as easy as possible. A script will cost you more to maintain than it will to create,
unless you develop the script just as you would the software it's
testing. Do it right the first time and reap the rewards in all of the
following iterations of the project. After you've planned out what
modularization you can do, implement it using whatever method your
tools allow for the most reuse (libraries, objects, For ideas on how to modularize your scripts, look at user
communities for the tools you use, read literature on the topic from
any of the major testing websites, talk with your development team, or
hire in a Use Data Structures and Data-Drive Techniques Effective and cost-efficient automated testing is data-driven. Data-driven testing simply means that your test cases and test scripts are built around the data that will be entered into the application-under-test at runtime. That data is stored by some method and can be accessed by some key used in your scripts. This method offers the greatest flexibility when it comes to
developing workarounds for bugs and performing maintenance, and it
allows for the fastest development of large sets of test cases. Most
likely, Documentation (which would make sense in future..) Finally, document why you designed things the way you did. Document
what each module does, and what each function in it does. All of this
documentation is useful as training material or for future Review Just remember to follow this road map: · Set goals for automation. The clarity and simplicity of your goals, your understanding of the tools, and the makeup of your team. These are the factors that will determine your success. |
|
Post Resume: Click here to Upload your Resume & Apply for Jobs |
|
IP Logged | |
Forum Jump |
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |
© Vyom Technosoft Pvt. Ltd. All Rights Reserved.