For last few years,
what I have seen many people are more interested of taking the Software Testing
as their career. There could be many reasons why they were thinking of choosing
this as their career. I welcome them all for feeling interested in this field. What I have seen is – they are taking a short course on Software Testing which will teach them
about Software Testing concepts and automation tools as well, which is good.
They are educating themselves before coming to the practical job field, which is the right way to do it. I had
the opportunity to meet some of teacher and student of some of those courses.
Talked about their courses a little bit, talked about these with the students
who were so excited. Sounds all good so far. Then I get scared a bit when I
came to know why they are so excited.
When talked with few of them, they said, they
will be learning all the new automation tools and there is a big market for
automated Software tester. So they concentrated more on automation testing then
the concepts of Software Testing. I would not say its bad, but it will have
effects at the end. I talked with them about the Manual Testing, did they have
any plan to learn how to do it. It seemed they were more interested about
automated testing than the manual testing as Manual Testing is dead/ Backdated method.
When people want to start their career in this field,
few fundamental things one need to learn/ study about. Once that part is
done then they can advance towards the automation testing. Automation testing is for those who know how to test, how to test
software thoroughly.
When anyone learned how to do the software testing,
in other words manual testing, then they can advance their level up with the
automated testing. What automation testing does is to help minimize the effort
for Regression Testing of the software. It definitely not a tool that will
identify the issues, does not help finding/reporting issues. So, before
learning automation, I would prefer learning the software testing (manual)
first and then go with the automated tools.
What we do with the automation is write some
scripts that will automatically read input data from somewhere and then will
apply those inputs to software UI. For example, lets say I’m given to test a web
application that will calculate how much student loan I need from the bank.
There are three parts of that web application. One take the input, then process
the input and then display the amount that is needed for loan from the bank.
There are some input fields on the application categorized under Expenses and
Income. Once those Expense and Income fields are populated with data, clicking
the calculate button will calculate the loan amount.
As a tester my job is to identify all possible
scenarios that can happen on/with that screen. Start planning about what type
of Testing you want to perform – Functional testing, Regression testing,
Performance testing, load testing. And then write down those possible scenarios
in the Test Cases. Find out all the valid, invalid set of inputs for each
field. Write down the expected results. Once these things are done then I can
say I’m ready for actual testing on the software.
With the Manual Testing, enter all those values,
checking all those combination of inputs with valid and invalid data sets, checking
the output whether it matches with the expected results or not. If there is any
problem then I will have to report the issue. These are few steps with Manual
testing. Same thing apply with automated testing. I’ll have to do all these
test scenarios. Only difference is, I’ll write some scripts, will run it with
some automated tools. I will have an Excel sheet that will have some Test Data
as input. On the automated tools I’ll write the code that will read from the
excel sheet and will apply the data on the web application and then store back
the calculated output to the excel sheet. Then looking at the excel sheet I can
tell whether any test data set failed or not.
Advantage of using automated tools is, I can run
multiple times to check the integrity of the software. It’s faster any than the
human effort of doing it same amount of time. Only side effect is, additional
learning is required based on which automated testing tools will be using.
The point I wanted to focus through out this writing
is, I’ll have to know, develop myself to identify all the possible scenarios,
all the possible test I can and should perform on the software. Running and
maintaining script for automation testing is not the key, the key is developing
the skill for finding issues of the software, methods to find issues, learn to
know which tools to apply, when to apply. Tools come and goes, but the concept,
methods stays.
Have fun testing! Cheers!
Update: 12/24/2013
In this writing I was referring the "Manual Testing" as the basis of "Software Testing Concept". It's Testing Concept that is more important to learn/ study about and that's what I was trying to point out. Manual or Automated method both has their own pros and cons and can be argued both ways. It's like if you want to learn driving a car, would you prefer learning a car with stick or the auto. Decade ago this could be a choice, now its very rare to find a car with stick shift. Anyway, the goal is to learn the driving concepts.
Update: 12/24/2013
In this writing I was referring the "Manual Testing" as the basis of "Software Testing Concept". It's Testing Concept that is more important to learn/ study about and that's what I was trying to point out. Manual or Automated method both has their own pros and cons and can be argued both ways. It's like if you want to learn driving a car, would you prefer learning a car with stick or the auto. Decade ago this could be a choice, now its very rare to find a car with stick shift. Anyway, the goal is to learn the driving concepts.