Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Do you agree with the following 3 sentences about Automated Testing ?

  • Increases the agility of development
  • Increases software quality
  • Does not reduce global duration of testing (including planning, script writing, script maintenance...)
share|improve this question

closed as primarily opinion-based by Bruce McLeod Feb 4 '14 at 3:32

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

Is this a certification question? – Joe Strazzere Oct 16 '13 at 16:28
No it isn't :-) – pallier Oct 17 '13 at 6:31

In a word, "No".

Some more detail:

•Increases the agility of development

I've never seen this as either a goal or an outcome of automated testing. Typically, automated testing is used for regression - to provide some level of assurance that previously working software has not been broken by new changes. This has no impact on the agility of development, regardless of whether the automation is in the form of unit tests or GUI end-to-end automation.

•Increases software quality

Testing can never increase software quality. The quality comes from the design, the coding of that design, and how well both design and code work to solve the problem the software is intended to solve (be it "entertain a gamer for fifty hours" or "automate grocery store purchasing"). At most, testing provides information about the quality of the software.

In my experience, any organization that thinks quality can be "tested in" is headed for an ugly failure. The only questions are "how ugly?" and "when?" (a prime example here is the disaster in the USA - that site has numerous examples of basic failures in development and testing quality - in every job I've had if I'd missed even one of these it would be a firing offence for me as the tester and whoever coded it)

•Does not reduce global duration of testing (including planning, script writing, script maintenance...)

I honestly don't see how the overall duration of testing is relevant to automated testing at all. Well designed automated testing can reduce the amount of testing time spent on tedious, repetitive testing - which a computer can do more accurately than a human - allowing more time to be devoted to exploratory testing - which has a much higher likelihood of finding problems.

share|improve this answer
One more reason, not mentioned here yet, why to automate a test. Some tests cannot be done manually, because a component/system under test does not expose user interface (UI), but only application programming interface (API). This refers to testing both components in integration testing and backend systems. – dzieciou Oct 17 '13 at 6:55
OK, I made a little "shortcut" saying "Increases software quality". I thought of course "as much as test results are taken in account by the dev team". Concerning the agility, I'm surprised because I thought "automated testing" was a prerogative of all "agile software development‎s" (sorry for my approximative english"...) – pallier Oct 17 '13 at 6:55
@pallier - it's sad, but there are too many places who think that "increases software quality" means they can ignore quality until they let the testers at it, then put "quality" in. Concerning agility - there's a lot of discussion about that. Unit testing is supposed to be a big part of agile development, but that doesn't mean it always happens. – Kate Paulk Oct 17 '13 at 11:27
@dzieciou - the reasons for automating is a topic on its own. If you search, you'll find there are a lot of questions that cover that. – Kate Paulk Oct 17 '13 at 11:29

Increases the agility of development

Not quite correct. In my opinion, it could be one goal of test automation to "increase the agility of development", but there is no guarantee that it actually does.

Increases software quality

To be precise: No. Tests cannot increase software quality. But succesful tests can strengthen confidence in software quality. By testing, it is possible to measure software quality, in terms of defects found for functional and non-functional software requirements.

Does not reduce global duration of testing (including planning, script writing, script maintenance...)

That depends on the project or whatever one wants do to with it. If the automated tests will be used many times over a long period, the duration of testing might well be less than performing these tests manually.

share|improve this answer

It's all about the quality attributes. I use automation to improve one or more quality attributes of a test:

  • Availability. An automated test can be run by more people in more places at more times.
  • Triggered automatically. An automated test can be triggered by the automated detection of some event or condition, such as when someone checks in new code.
  • Response time. An automated test can run faster than a test executed by a person.
  • Precision. For some things, an automated test can control certain variables with greater precision and less variation than a human can. Precise timing issues, for example.
  • Cost of execution. An automated tests can consume fewer resources (money, people's time) compared to a test executed by a human.

A HUGE CAVEAT. When I say "An automated test can ..." I don't mean that you will necessarily get any of these benefits merely by automating. I mean that for some tests, it is possible (at some expense and with sufficient skill at automation) to automate the test so as to achieve one or more of these benefits.

Limitations of automated tests. Automation also has significant limitations compared to tests executed by people. For one thing, an automated test can be highly dependent on variables that do not affect the thing you're trying to test. For another, a person can observe things that an automated test can't, and apply judgment about whether they are relevant, or worth additional attention.

Criteria for automating. So I boil this down to two criteria:

An automated test should satisfy:

  • at least one good reason to be a test, and
  • at least one good reason to be automated.
share|improve this answer

I agree to your points mentioned below that are agility, quality and global duration of testing. Apart from this there can be other goals too. I've shared few according to my experience.

share|improve this answer

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

For your answer to be useful, you really need to provide more information in the body of your answer rather than just a link. The reason for this is that links die - if you put the information in the body of your answer it will stay with the question while this site is active. – Kate Paulk Feb 4 '14 at 13:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.