1

I'm quite new to software testing.

I was studying about it and I've read testing can be either manual or automated.

So is unit testing with tools (e.g. unittest or pytest in python) considered manual or automated?

I think automated testing is when you do nothing about tests. Just giving the program to a test generator and it makes some inputs and runs them.

Example: symbolic execution tools can generate such tests. But, in case of unit testing tools, you are actually writing tests.

So it is not fully automated. Also obviously, oracle in unit testing with tools is a human. So it is manual, because a human determines the expected output results. However, it is kind of automated. Because you don't need to run all of the tests manually.

0

4 Answers 4

5

Putting it in simplest way (as per my thinking), test automation is writing a software (programs) to test another software.

With this said, I'm a little confused about a few of the statements in your question description.

I think automated testing is when you do nothing about tests. Just giving the program to a test generator and it makes some inputs and runs them.

What exactly do you mean when you say you do nothing about tests?

Who writes the tests?

How are the tests invoked and executed? Who wrote that process?

What is this test generator that you give your program to?

How does it decide what inputs to make and whether the result is right or wrong?

Also obviously, oracle in unit testing with tools is a human. So it is manual, because a human determines the expected output results.

Whether you write programs to execute your tests or execute them yourself without the help of programs/tools, it is always you who determines the EXPECTED output. Programs/Tools don't have brains of their own to think and decide.

So in real sense there is nothing called automated or manual testing.

It's simply testing. Yes, sometimes to help with quicker executions or for any other reason, you may use tools and programs to aide your testing. It's like you may get bored repeating same steps over and over. So you would think of writing a program to perform those repetitions for you. Still it's always you in control of what can be programmed and how that program will execute and list out the result. It's always you who decides what input is to be given to the program and which results will be considered and right or wrong behavior of the software that you are testing.

Say you may also program the process of invoking your testing programs and generating and sending out reports to concerned people. People do that in CI/Cd pipelines usually.

But, at the end of the day it's all you (a human) who did that. Nothing happened on it own.

So don't fall into the pit of what's manual and what's automated. Focus on testing and wherever you think use or tools/programs can enhance your work, go ahead and do it. But, never forget, it's all just TESTING.

Happy Testing!

3
  • Thank you for your answer. According to my study, a part of testing is an oracle that determines if the test output is correct or not. As an example, it can be an older version of the software if you are just refactoring your code. In this case, the oracle simply compares the results of the execution in old and new versions. Oracle also can be AI-based or a kind of heuristic. In unit testing, the oracle is the person who writes unit test scripts.
    – ssaf
    Feb 7, 2022 at 18:49
  • Also, another part is the test source. Tests can be generated by some tools. e.g symbolic execution tools. In NodeJS for example, there is a tool, ExpoSE, that generates some values for specified variables to achieve maximum branch coverage. I think, by having a test source that can be automated and an AI-based oracle for example it is possible to test a program without writing tests. Also about its execution, I think it's not big deal. ExpoSE for example, just runs program with different values for specified variables. However, ExpoSE doesn't specify if the results were correct or not.
    – ssaf
    Feb 7, 2022 at 18:57
  • As you mentioned ExpoSE doesn't actually determine the result is correct. Also, I guess it would be able to decide what variables it needs to test and how(as in what values to insert in a particular variable). Although if your employer/team is happy to call your use of tools test automation, you can just go with it. Where required you can always give reasoning and examples to explains why there isn't a thing called manual or automation testing. It's simply testing, where no matter how much AI or tools you use, eventually you will need a human to build/maintain/enhance/analyse it. Feb 8, 2022 at 6:50
2

I was studying about it and I've read testing can be either manual or automated.

Unfortunately many resources mention that, so it's up to you to question it and decide whether it is actually true.

Perhaps a better and more accurate view is that testing can be supported by tools.

You typically use tools when:

  • it can help you get more information
  • it can help you become faster
  • it can help you question the system in a different way
  • it provides more observability into the system or environment
  • it can help with improving testability
  • it can help with checking same things over and over again
  • it can help you unload what humans are not good at onto computers - typically performing some calculations
  • and perhaps more that this

I have yet to meet a tester who uses no tools at all. So all of us do test automation to a certain degree. But I also see that not many use tools in a purposeful way, some do test automation just because someone told them to, or because it seems to be trendy nowadays. Again, your role as a tester is to question it and decide when some automation is useful and when it is not.

It might be that the division into manual and automated is (perhaps was?) mostly created by non-testers because it simplifies testing into an easy model that doesn't require much mental effort to comprehend. You can typically see that in job ads, hear that from managers of all sorts. Some testers use that (sadly) as well because, I suppose, it is again easier to just go along with it instead of questioning it and having an argument about it.

0

To make it simple understand what is automation and unit test.?

Unit Test:

Unit/component test simply means you tests the smallest level of abstration . IT can be a component like a separate package, a class or a method within a class.

Here we test the functionality of the unit and make sure it works as expected and ready to be consumed (integrated)

Automation

Something that is done programatically or mechanically with the no or least human involvement

In case of Automation it self , we have fully automated and semi automated

Fully automated :

Something that works with no human involvement

Semi automated

Need intermitent human involvement , like remove blockage from mechanical part , Approve pop ups , Validate next stage propogation etc in between the run

So comming to your question :

It doesnt matter whether you use a codeless tool or your own coded solution . Automation is automation no matter what the abstration is . The examples like oracle etc are semi automated tools

0

I wonder if you need more detail on manual and automation testing. Let me help you get some clarity with brief details of how things actually work in software testing.

When it comes to unit testing, it is a practice where testers work on checking small units of the application or software under test. Since these units could involve functions, interfaces, or procedures, the selection of manual or automation testing techniques entirely depends on the project requirements.

Also, to bring you more clarity on the automation concept, I would like to say that AI has not evolved enough to mimic the human brain. This means even when you are working with test automation tools, they demand some sort of human involvement to work on test scripts, produce test suites, and perform testing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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