Manual Testing1
Manual Testing1
The following are the major phases or major activities involved in developing a software
application.
SDLC Models:
Software Development Models will explain the way of constructing a project. There are two
ways of generally constructing the project, incremental approaches and sequential
approaches. Waterfall model and V models comes under sequential methodology. Agile
model comes under incremental methodology.s
Sequential Models:
The sequential models are recommended for developing small size of projects.
Waterfall Model and V Model are the best examples for sequential models.
Waterfall Model:
Waterfall model will be chosen for developing small size projects where the
requirements are very clear like a School Management System, Hospital Management
System, etc. . As the requirements are very clear, chances of making mistakes during their
development would be less. Hence, testing is carried out after the development i.e., Only
validation no verification in Waterfall model projects.
V Model:
V-Model will be selected V model will be selected for developing small size of projects
where the requirements are confusing or where the requirements are complex(sensitive).
Even if the requirements are few, but every feature is important and minor mistakes also not
accepted. In this situation, we go for V model. If a CT Scan machine generates a wrong report
and no working as expected, doctor may not proceed for further treatment.
As the requirements are complex, chances of making mistakes during development
would be high. So, to find out the mistake at early stages, testing carried out testing is
carried out right from the requirements that is both verification and validation both
verification and validation.
Examples of Small-scale projects where the requirements are few but complex are Medical
Treatment Software, Airplane navigation system, Traffic signals application, etc.
Actually, number of requirements are very few in traffic signals application showing the
directions but a minor mistake also not agreed. Two sides it is giving a green signal, accidents
will happen. In Traffic signals application, a pilot will drive the plane based on the signal
generator and if it is produced a wrong signal, he will go in a wrong direction. Such kind of
software application where number of requirements or number of functionalities are very
few but every functionality is very important, a minor mistake also not agreed, to develop
such a critical application, such a sensitive application, management will choose to go with V
Model.
In V model, as the left side is the input to carry out right side activity, the diagram took
in the direction as shown above. Almost it looks like a V shape, people named as V model.
Verification activity introduced from the V model. Once verification was introduced,
people have observed advantages of doing verification to find out the mistakes at early
stages, it is continued in all remaining models. Only in the waterfall model, testing is
performed after the development i.e., only validation. Rest of all software development
approaches, both verification and validation are performed.
Incremental Models:
Incremental models are recommended for developing big size of projects. In
incremental models, a big project is divided into smaller modules then module by
module system gets implemented. RAD model, prototyping model, spiral model and agile
model are the examples for incremental models.
Agile model is the most popular(used) incremental model.
Agile Model:
In Agile model, a big project is divided into modules, then each module further divided into
smaller components called Sprints. Then sprint by sprint, software gets implemented. Two-
three major business requirements are considered to implement at One schedule or one
Sprint.
A small piece of a module can be called as a sprint i.e., short schedule made for developing a
product can be called as a sprint.
let's say totally 40 requirements to be implemented in a product. In waterfall model, we plan
a lengthy schedule- three months of schedule- all 40 requirements will be implemented at
One schedule, whereas in agile model, totally 42 implemented but this will be split into
multiple phases- not three months of schedule, but one week of schedule, maximum 10 days
of schedule. Rather than making a lengthy schedule, make short schedule - one week of time,
ten days of time, not more than that. Consider two three major business requirements to
implement at one short schedule rather than asking developers, rather than asking testers
you develop 40 requirements and you test 40 requirements, work will be split like this- this
week you develop the home page, login page, user registration page, you write scenarios and
test cases for testing user registration, login and home page, we test those. Once those two
requirements is fully finished, I demonstrate to my client that this week these are the two
features we implemented for your business, if you say okay, then we go further. Once the
customer confirmed, next week we plan other two, three major business requirements, next
week you plan other two three major business requirements. Like these small schedules are
made and all 40 requirements will be implemented in 10-20 schedules.
What is the advantage of this approach? If I am giving a lengthy schedule for a person
the work will go slowly. If there is a short schedule, very aggressively work will go. If I ask my
developer you have to develop these 40 functionalities three months of time, first one or two
months this developer will not work aggressively. If I ask my team member you write test
cases for the 40 requirements, the work will go very slowly. Instead, if I say the developer
that next two days you develop the homepage, you develop user registration page, you
develop the login page, next two days you write scenarios and test cases for home page, you
write scenarios and test cases for user registration, you write scenarios and test cases for
login in three days of time. After three days, there is a review meeting, you have to
demonstrate the output to the scum Master project manager, I'll have a review. You need to
demonstrate the test cases to the project manager; I have a review. If I have any comments
about these two requirements, I'll give my updates, again modification, once I am happy with
the output, I'll show to my client so this week these four functionalities we have
implemented for you it's okay or if you have any comments on this and customer given some
comments. Based on the customer given comments, if required again modification, again
testing, again project manager will have a final output review, again demonstrate to the client
and if client said okay keep it aside, plan next two - three requirements. Rather than asking
developer 30 days you develop this, ask three days you develop this. Rather than giving 10
requirements to developer on 30 days of time, give only one or two requirements to
developer and give two days of time. No chance of skipping even one hour. That too rather
than understanding 40 requirements, you are focusing on understanding only two
requirements where the understanding levels would be high. Instead of planning all works
together, you plan small works, do it and go for next to requirements, do it next go for to
requirements. In this way, you will get a very productive output. It's a practical proven
scenario that 30 percent of the budget can be saved if you go with agile model instead of
when you compare with waterfall model. If I am developing 40 requirements in waterfall
model of three months of schedule, the estimated cost is 100 dollars. When the same project
will be opted for agile model, same project can be finished within 70 dollars. Budget saved,
time saved, very productive output, and every two three requirements you are showing to
the client, getting the approval, no chance of project failure and the frequent
communication with the client will give you the better output.
Note: Any compiled format of the application is called ‘build’ or ‘release’ or ‘version’.
If you are working on agile model projects, automation testing will start from the
beginning. Today, mostly projects are agile model projects. Every week, every 10 days, there
are some updates are happening and every updated version need to be retested. Doing this
retesting every time demands more man power, more time. This increases the cost. To
minimize this, we are planning automation testing when you are working with agile model
projects. If you are working on waterfall and V model projects, mostly manual testing is
there because in these models, testing is one time activity.
Software Testing Techniques or Approaches or
Methodologies:
Software Testing is classified into Verification and Validation. Verification is also called
as Static Testing and Validation is also called Dynamic Testing. Now a days software testing
approach is both verification and validation. Old approach is only verification.
Why Verification is called Static Testing?
On the entire verification(Reviews and walkthroughs), no code is executed, no
application is getting executed. Hence the verification process is called Static Testing. We are
testing whether we are building the right product or not by not executing the code.
Once the code is implemented, programmer will run(execute) the code and check her
code is working or not. This is called Dynamic testing.
Requirement Reviews:
Business Analyst and her team prepare the requirement documents. Once the
requirements are documented(SRS, FRS), Sr. BA(domain expert) will have check whether all
customer expectations are correctly documented or not. Verifying or reviewing the
requirement documents whether they are documented as per the customer expectations or
not is called Requirement Review.
In order to confirm the requirements are documented properly or not, no
code(application) is executed, only reading and checking the requirements documents.
Design Reviews:
Once the requirements are verified and approved, approved requirement documents
are given to the design team. Based on the requirements document, project architecture is
made, use case diagrams are made. Whether the design is made as per the approved
requirements or not, will be checked(verified) by the System Architect. This is called Design
Review.
Code Reviews:
one the design is reviewed and approved, the approved design will be hand over to the
development team. After building the code, a senior developer will have a check whether
the code is made as per the standards or not. A programmer should not write the code as
she wish.
Every code on the top, there should be some comment section. In a very simple English,
comment section should explain what is this program, what are the inputs for this program,
what is the output of this program, who prepared and when prepared. Rather than reading
the 100 lines of technical code, just by reading the comment section anybody should be able
to understand what for this program is made. Java program or Python program whatever,
before you start writing the technical code, first we need to put a comment section. The
comment section must explain description of the program i.e., what for this program is made,
what are the inputs, what is the output, who prepared and when prepared. So, instead of
reading the complete technical code by reading the comment section and in future anybody
should able to understand okay what is this program finally doing.
Programmer will declare some variables. They should not simply declare variables like
a or b or c. They should follow some naming rules. Say I am declaring a variable to store the
employee number, eno or empNo should be the variable name so that anybody can
understand okay this variable is used for storing the employee number. Instead of B, it is
preferred to declare a variable with a name called ename so that anybody can understand
okay this variable to store the employee name, so that in future also anybody can understand
what is the purpose of this code. Today these people involved in writing the code, tomorrow
they lest the company, I recruited other new two programmers but they are not
understanding what the code these people have prepared. It's a question mark for
continuation. So, there are some coding rules, coding standards to be followed for ease of
understanding the code, for ease of enhanciability, in future maintenance.
So, after writing the code, a senior developer will have a check whether the code is
made by following the rules, by following the standards or not. there are some coding
standards, developers should know them. Like we follow testing standards, they have to
follow coding standards. Such activity of verifying the code whether the code is written as
per the coding standards or not is called code review. Developer is responsible for doing
code reviews.
Unit Testing:
A smallest, separatable portion in the source code of the application such as
functions, procedures are called Program Units or Code Units. Each program unit will have
some business logic written inside it. No guarantee this code is working properly. To confirm
this, after implementing the code, programmer will run the code programmer and check
the developed code is producing the correct output or not(correct output is deleting cookies,
launching the app in the below example). Once the code is implemented, login functionality
for ex., is developed, programmer will run the code and check developer code working or
not which called unit testing.
Integration Testing:
Once, all units are independently tested, developer integrates all units together and
then check the overall output at code level is called integration testing.
The purpose of doing this code level testing to minimize the mistakes as many as
possible at code level. To minimize the mistakes as many as possible at code level, at least
one time, code needs to be run and tested by the development team. This is the goal behind
doing White Box testing.
This unit testing and integration testing are collectively called white box testing carried
out by the development team to ensure developer code is producing the correct output or
not. Code level testing is called white box testing. Why the name white box? As a
programmer doing testing on the code which is visible to them, clear to them the name given
as white box testing. If I write something in the Whiteboard, it will be visible to you. Hence,
the name is given as white boxes testing.
System Testing:
Once, the code is tested, white box testing done, code translated into executable
format of the application and application is given to testing team. Testers validate the
functional requirements and non-functional requirements on the finished or on
the developed system in a client’s point of view is called system testing.
For any project given to you, at first you start from functional testing or
non-functional testing?
Ans. Functional testing. In any project, the first priority and high priority goes
to functional testing. Non-function testing order may change from project from project.
But any project first priority and high priority goes to functional testing. And 90 percent of
our time, we invest for doing functional testing. If 100 of hours is the estimated time for
doing the entire system testing, I will say 90 percent of our time we invest in doing
only function testing. UI, usability testing will not take much amount of time. In the non-
functional testing, load and performance testing will take little amount of time. Doing load
testing, doing performance testing will need some good amount of time. Checking the logo
properly visible or not, background color good or not, system easily understandable or not,
application properly visible across various browsers or not will not take much amount of
time. 90 percent of our time we have to invest, schedule for doing only functional testing
job. This is the reason you'll find more job openings for doing function testing either
manually or using a tool like selenium.
Selenium is a tool used for automating functional testing areas in a project. Using
selenium, you cannot do UI testing, usability testing, load and performance testing. To
automate load and performance testing, we have some tools like load runner, JMeter
whereas Selenium is a tool specially made for automating functional testing. Don't think
using one tool Selenium, we can do everything. Different applications made for different
purposes. Similarly, Selenium is a software made for only automating functional testing job
in the project. UI testing and usability testing any project we can do manually
there are no tools in the market for automating UI usability, Security and
Compatibility. Two types of testing can be automated. Functional testing job can be
automated, load and performance testing job can be automated. To automate load testing
and performance testing, we have some tools like Apache JMeter introduced by organization
called Apache software Foundation and load Runner. There are many other tools in the
market specially made for automating load and performance testing. Selenium, QTP, Tosca
tools are made for automating functional testing job. So, finally validating the functional
requirement and non-functional requirement, not in a technical direction, in an end user
point of view is called system testing. Here, the first priority and high priority goes to
functional testing.
As functional testing on non-functional testing is our job, we have to learn the
functional testing and Non-functional testing in a detailed manner let us focus on this.
Functional Testing:
Validating or checking all functionalities working properly or not is called functional
testing.
Smoke Testing:
If a quick test carried out on the beginning versions(unstable versions) to confirm
whether they were in a testable condition or not is called smoke testing.
Sanity Testing:
If the quick test carried out on the later versions(stable versions) to confirm whether
they were eligible to continue for further testing or not is called smoke testing.
Objective of smoke or sanity is to make a decision whether the given build is eligible to
continue for further testing or not, not to find out bugs.
Formal Testing and Informal Testing(Ad hoc Testing):
Formal Testing:
If we test a software application by following proper testing procedures and
proper documentation( like writing scenario, writing test cases, neatly we have to
document what to test, neatly we document how to test, then test ), it is called formal
testing.
It is the systematic way of doing testing. We follow certain process, certain
documentation to test the application.
If big companies, while testing a project inside a company, you don’t apply our own
procedures or methodologies. The company management define a process about how we
have to carry out testing.
1. first understand the requirement,
2. neatly document what to be tested(writing scenarios),
3. neatly document how to test each and every scenario(writing test cases,
4. submit to your next level(senior person) for the scenarios review,
5. once the scenarios are reviewed and approved and once the test case are verified
approved, then only we start executing the test cases,
6. If you find a bug, neatly we have to document the bug(defect report),
7. Send to the development team,
8. then retesting, regression testing many activities like this.
If really testing carried out by following this process with proper documentation it is called
Formal Testing.
let's say you joined with a very startup company who are not following any process
because they are dealing small local projects for forty thousand or eighty thousand or one
lakh of rupees. They are developing small websites. Do you think they will follow a
systematic process in development and testing? NO. May be the management knows the
importance of the process, but their budget, their resources and their infrastructure will not
permit to follow the process. Infosys company - big infrastructure company - they deal big
clients; they charge in crores for the services. They follow a systematic method. Startup
organizations who are dealing small local projects like online bus booking mobile app, a small
gaming application, a small Supermarket billing software, do you think they will follow any
process. No, in this scenario how this small software company people will do? they develop
the product, they test the product. But they do not follow any standard, they do not follow
any procedures and proper documentation but they also doing software business. If you test
a software application by following a certain process, proper documentation than it is called
formal testing. If you test as you wish then it is called ad hoc testing informal testing.
Organized way of doing the testing, the systematic way of doing testing is called formal
testing. Like understanding the requirements, writing test scenarios, writing test cases,
executing test cases, if you really follow such process, it is called formal testing. You test as
you wish, no documentation nothing, then it is called ad hoc testing. I understand the
product, no scenarios, no test cases but directly you start testing your product that is called
ad hoc testing(informal testing).
In big companies, very process-oriented organizations, you see formal testing. In
startup companies, you see ad hoc testing.
Software Testing Life Cycle(STLC) is all about is all about formal testing.
Regression Testing:
To resolve the bugs, to add new requirements , to modify existing features code need to
be updated by the developer. This code change may introduce some side effects. We need to
identify the functionalities affected by the code change. We need to retest those affected
functionalities.
Testing various functionalities in the modified version where there is a chance of getting
side effect because of the code changes is called Regression testing.
While testing functionalities in the modified version, regression testing will not come
into the picture in the first build. From build2, something was modified. These modifications
are made properly or not need to be tested. What kind of modifications we reported a bulb
developer resolved it communicated
Whenever you receive a modified version, before performing Retesting and Regression
testing, first we need to have the clarity why this modified version created. i.e.,
1. We need to know what are the functionalities in which bugs are identified and fixed,
2. We need to know what are the are the existing features that are modified because of
client asking some changes in existing features,
3. We need to know what are the new functionalities added to the build.
Without knowing the above three, we will not be able to identify the functionalities for
retesting and we can’t identify the other features which are connected to this modified area
for regression testing.
So, after testing a modified area ( retesting ), identify the other features which are
connected to this modified area. Those features need to be once again tested for the
confirmation sake. This approach is called regression testing.
Whenever you receive the modified version, first you need to get the information from the
developer development team why this modified version created.
The Retesting is carried out on a modified version to make sure modifications, bug
fixes are made properly or not. The Regression testing is carried out on the modified version
to identify the side effects which may occur due to these code changes.
The objective of doing retesting to ensure modifications are first of all correctly made
or not. The objective of doing regression testing to identify the side effect which may occur
because of this code changes.
The retesting and Regression testing are the continuously carried out, repetitively
carried out testing activities on a maintenance project or agile model projects. Whenever a
new version created, next version created, something need to be retested, its connected
functionalities need to be regression tested. In every build, modified areas need to be tested
and its connected areas need to be again tested. Instead of doing this retesting and
regression testing manually every time, it is preferred to go for automation because every
time doing retesting and regression testing with manual effort demands lot of time and
effort, increase my project costing. To minimize that, your management may plan to go for
automating retesting and regression testing areas in a product. Automaton will not take
much amount of time. Test development will take lot of time test execution will not take
much amount of time.
For the products where there are frequently changes are happening, every updated version
need to be retested and regression tested, instead of doing this retesting and regression
testing manually every time, we go for automation. The major idea behind going for
automation is to automate retesting and regression testing areas in a product. So,
you tell me if we are doing some job only one time or rarely, will you think about automating
it? Any work, not only testing work, if we are doing this work rarely ah one or two times not
very repetitively, we don’t think about automating the job, we do it manually. Every day or
every week, I'm doing same work then there is an option for automation, again that is your
decision whether to automate or doing it manually.
In the modified version, no need to test everything again. We test the feature in which
bug is identified and fixed. And we also test the features which are connected to the modified
feature. In other words, only modified areas and its connected areas need to be tested
again.
Note: After informing developer about the bug, she takes some time to resolve the bug.
Meanwhile, as a tester, we don’t sit idle. We test remaining features.
System Integration Testing:
Checking the integration scenarios between two or more applications involved in the
business is called system integration testing.
Integration testing is done by the developer at code level. System integration testing is
done by the tester at the application level.
Ex1:
Integration Scenarios:
• Check a new employee registered in payroll application is getting recognized is
getting recognized by the biometric device or not.
• Check attendance recorded in the biometric system is automatically getting
updated in payroll database or not.
Again, team lead don't test everything in deep. Testers have tested in deep. Just to
build the confidence, Team Lead will perform a small overall check that is called end to end
testing.
Exploratory Testing: ( Exploring --> Understanding --> Testing )
Exploring the application ( We browse the product that is called exploring the
application), understanding its requirements then testing it is called exploratory testing.
This exploratory testing comes in to the picture in the following two situations:
1. If requirement documents are not available,
2. Requirement documents are available but not providing proper inputs because they
are not properly documented. By studying the requirement documents, we are not
understanding the product properly. We keep them aside and directly we explore the
product and start testing it. Such kind of testing approach is called exploratory testing.
Explanation:
Any product / project we are testing, first we need to understand the requirements of
the product. If requirements are properly documented, by analysing the requirement
documents, we gain the knowledge of the product. Based on the knowledge that we have
gained from the requirement documents, we plan what to test, how to test and then we test
it. This is the formal process – a systematic way of doing testing.
If we asked to test a product for which requirement documents are not available or
requirement documents are available but are not properly documented – They aren’t
providing the proper inputs, by referring the requirement documents, we aren’t gaining the
complete knowledge about the product – How we proceed testing this product in this
situation?
Without having / gaining the knowledge about the product, nobody can test it. First,
we need to gain the knowledge about the application. In this scenario, we can gain the
knowledge about the product only by exploring the product. Exploring means browsing the
product. By browsing / exploring the product, we gain some knowledge about the product.
With this knowledge, we plan what to test, how to test and then we test it. This kind of
testing approach is called Exploratory testing.
Is it a suggested method? No. We are trying to understand the product by referring the
developed application, by exploring the already made product. As per the client requirement,
there are 10 menus required. Our developer implemented only 9 menus. One option missed
by the developer but we do not come to know about it because we are exploring the
developed product to understand it. Whatever we see we assume they are the
requirements because we don't have a requirement separately. It's not really a preferred
approach. When the requirement documents not present, this is the only optional left. Such
kind of testing approach is called exploratory testing. it's informal testing approach or ad hoc
testing approach. Any work carried out in a very procedural way is called formal. When a
work carried out not following the defined procedure then it is called informal. This is not
suggested method because we are understanding the product by referring the developed
product. While development, the developer may made some mistakes. We will not come to
know about them. We assume whatever we see in the application are the requirements.
The actual requirements may be are different. So, it is not a suggested mechanism but when
the requirement documents are not present, this is the only option left in to gain the
knowledge about the product. Small companies with low budget projects don't follow proper
documentation. Generally, by exploring the product we start testing it.
Monkey Testing:
Intentionally performing uneven operations or zigzag operations with an intention of
making the system fail is called Monkey Testing. Uneven operations means invalid data,
wrong operations, etc.
Almost Monkey Testing is a negative kind of testing because we are trying to make the
system fail. In negative testing, we try to prove that the system is doing what it is not
supposed to do.
Explanation:
In order to test some product, we have created some test cases say 100 test case are
prepared to validate various features of the product. As a manager or a leader, I estimated -
I have a team of four members - how much time required for executing this test cases. Eight
days of time needed. Now I plan working this way mostly. I asked my team members first
eight days you complete the test case execution. First eight days you execute all these 100
test cases. Last two days, you test as you wish. In addition to formal testing, after executing
the test cases, I may ask my team members last two days you test as you wish. Intentionally
perform some random actions or zigzag actions or uneven actions with an intention of
making the system fail. If you are really doing such kind of testing, there is a possibility of
finding some hidden or tricky defects. For extra testing nothing will go wrong. If the time
permits, budget permits, you can plan some extra testing activities where there is a chance of
finding some tricky bugs. Formal testing give the confidence that no risk in releasing the
product because to test all these 40 requirements, my team members plan what to test, how
to test properly documented, a senior person verified, approved yes if these 100-test case are
executed successfully and pass, 40 requirements are Justified. To ensure the 100
requirements coverage, to get the confidence that no risk in releasing the product to the
client, formal methodologies are suggested. In addition to this formal testing, you plan some
little amount of time for doing some random testing (ad hoc testing). It is also an ad hoc
testing - test like a monkey. Random testing, zigzag testing, uneven testing, jumpy testing are
the other names for monkey testing. So, generally when we are doing a formal testing
supposing there is employee registration form. First, we enter employee number, employee
name, designation, salary, date of birth, date of joining in a very systematic way we input the
details and click submit button to verify the functionality working properly or not. Sometimes
after entering the employee number, when I press Escape i.e., after entering the employee
number without containing the remaining when I do some unwanted action, there is a
possibility the program may enter into the loop and may not come out. Finally, there is a
possibility of finding some hidden, tricky defects when we are doing random testing. That is
called monkey. Testing just like a monkey - the intention is we are trying to identify few more
of defects. In addition to formal testing, it is suggested where there is a chance of identifying
few more hidden effects. Generally, in industry, I said eight days of time is enough for
executing the trust cases. I plan the work for 10 days, I ask my team members that first 8 days
you complete the planned test cases and last two days you test as you wish, try to find out
some more issues. Such kind of testing approach is called monkey testing or random testing
or Jumpy testing which is again ad hoc testing.
Exploratory testing and monkey testing comes under ad hoc testing because they are
not planned procedures.
Note: exploratory testing and monkey testing comes under comes under ad hoc testing.
Note: ****************************************************************
Let's assume we are working on some ERP (Enterprise Resource Planning) project - sap
Erp kind of application. Sales activities, finance activities, accounts activities, marketing,
production planning, Human Resource Management, all departments to computerize - to
automate the complete activities of a manufacturing organization are ERP application is
designed. The target audience for Erp products are manufacturing companies such as Cement
factories, Sugar Factory pharmaceutical company, etc.
Say we are working on some Erp project, some changes made to purchase order
functionality. What is this purchase order? In a Manufacturing Company, production
Department need some raw material to make the product. These people will not go to the
market and buy the material. These people will raise a Indian to inventory stores
Department. The stores Department people will check the stocks available or not. If available
dispatch, not available, raise a purchase order. The vendors give the quotation, the purchase
department will place a purchase order. Again, is the purchase order, they supply the material
to the company, Finance people will make a payment. That's the process - a simple life cycle I
have discussed. Say you are working on such kind of application, some modifications made at
purchase order. Some changes made to the existing purchase order functionality. What are
the other features need to be tested? We have to determine what are the other areas
connected to the purchase order. So, as a tester we need to find out what are the other
features connected to this purchase order and those features need to be once again tested.
It is called education testing. You answer me what are the other functionalities related to
purchase order in a Erp product? Without having the Erp domain knowledge nobody can
say. Without having this technical or domain knowledge we cannot identify the regression
testing area. Domain knowledge is mandate to find out the regression testing areas. Without
having the knowledge about the product domain, we cannot able to identify what are the
other areas may get affected because of the changes made here. Domain experience
domain, knowledge is mandate for identifying regression testing areas.
Companies are hiring experienced people because of the domain knowledge.
Supposing my new project (new client) is a Erp client or project. If I'm the project manager, I'll
ask my HR people that I need at least one person who has 5 to 8 days of experience in testing
and also previous working on ERP domain, at least one project on Erp domain. I need another
3 - 4 people who has 3 plus years of experience in testing (manual & selenium). In addition to
that, this person should have previous knowledge about previous projects Erp domain. One
person 5 – 8 years of experience, maybe 2 - 3 people 3 plus years of experience, remaining all
6 people are freshers. That 5 – 8 years of experience person I'll put him as a lead. 3 people
senior members, other four or five people, six people junior level people because these
Juniors do not know about the Erp domain. the 3 plus years of experienced people know
about the Erp domain because three years they worked. They'll be having sufficient
knowledge about the product domain. That 5 or 8 of experienced person can able to manage
a teamwork work collocation, work coordination, guiding and training everything. This will be
my plan for a new project if I need 10 people. If I hire all experienced people, all 10 people 3
plus years of experience, my cost, my budget will not permit because each person's salary
will be about eight lakhs or nine lakhs or ten lakhs. If I hire all freshers project will go. Finally,
any project is a combination of high-level resources middle level resources, junior
level resources.
I repeat today we received the modified version and I am the senior person working in
this team or I am the team lead for this project. I don't let all my team members you decide
the regression testing areas. First, I'll get a confirmation from the development team what
are the modifications made in this question They said A and B are modified. As I have
experience in testing and also experience in the product domain, I identify what are the other
features connected to A and what are the other features connected to B, I make a list, I
document them. Now I allocate over to my team members you do this, you do this. Every
junior level resource cannot able to identify regression testing areas correctly. This is the
job of the senior person to identify the regression testing areas, document them. In the
second build these 4 features need to be once again tested, documented them. Ask the
people to test. I can ask Junior person now you test these four features. I identified what are
the other areas may get affected, listed, now I ask my team member you tested this. This is
a practical process inside the company. So finally, some domain knowledge is mandate for
identifying the regression testing areas in a project. The people who are planning for
experience, if you are giving three plus years of experience, in addition to this testing
subject what we are learning, you have to decide what kind of projects we have to
highlight on the resume. Definitely you are going to put up some 2 - 3 projects in your
resume. You have to decide the projects which are in the demand in the market - Erp
applications, e-commerce domain, banking, Insurance, Finance, Retail. This is a happening
business in the industry - the big business, billion trillion dollars of business in a day. ICICI
Bank doing billions of dollars of a business in a day which is international brand, they invest
some portion of the amount for technology i.e., in these hundred dollars we have to invest
ten dollars for the Technology support. That is their budget planning. They keep on investing
the amount for the technology. The big companies will have a budget planning - in these
hundred dollars, we have to invest 10 percent of the budget for Technology support, ten
percent of the budget for advertising or marketing something like this. Here they give
continuous input to the software companies. Bigger organizations will take such kind of
projects where they get continuous investment, I mean continues amount from the clients.
School manager, School owner if you say above one lakh is the project cost, they will say I'll
maintain 200 Pages notebook. They will not put the investment for much technology. But
banking business needs a Technology support, Finance business needs a Technology support,
e-commerce business must need a technology. They invest the amount for the technology
because only technology run their business. You need to list out what are the hot domains in
the market, that is happening business in the market - Finance business is happening,
banking business, e-commerce business, Erp business, retail business. You select two projects
from any one of these domains. Let us say decide two projects. Whatever you decided you
need to gain some knowledge about the product domain. In Internet, there are many
applications available - Amazon is e-commerce domain, Flipkart is an e-commerce, any e-
commerce application will looks in the same fashion or if you Google, you'll get some
documentation about e-commerce domain - what is e-commerce domain, some requirement
documents for e-commerce domain you'll get something, you've decided banking project
what is banking domain, what are the models of banking, what are the detailed requirements
of the banking, you'll get many documents. Whatever the projects you decided, you Google
you get some documentation. If you give interview, maybe the interviewer will ask you will
you explain about your current project or will you explain about your current project domain.
You should able to demonstrate for about five minutes what is your project, what are the
modules available, what are the requirements something like this. most other people will
fail here. They copy some projects from other resume and paste and go to interview and they
will fail. School management system, Hospital management system will not work out. You
have to put a good project like Erp bromine project, e-commerce demand project, then only
your resume will be filtered. I said previously the scenario clearly when I am giving if I am a
project manager, I am giving the requirement to my HR team I need 10 people for this new
client, new project. In this one person or four people should have previous working
knowledge on e-commerce domain. I clearly mentioned. So, what HR people will do? They go
to naukri.com, they filter the profiles that contain Erp domain project in their resume. Only
such people interview will be scheduled because project manager clearly said I need four
people who have previous working experience in e-commerce domain. According to this
requirement only HR people will search and schedule the interviews. So, e-commerce, Erp,
banking, Finance is the happening business, you try to put up the projects related to these
domains. This is a winning mechanism rather than blindly putting some school management
system and going to an interview. Going to enter is not important, cracking the job is
important.
****************************************************************************