Manual Testing
Manual testing is a part of software testing. If you are new to the world of testing, this manual testing tutorial will prove to be of use to you. It will help you understand the basics of software testing and clear basic concepts for you.
Software development goes through a chain of process. It starts with requirement analysis phase and ends with the maintenance phase. There are two important phases of software development, namely coding and testing. Testing phase is an important phase, as it verifies and validates that the software has been developed according to the requirements of the user. Software testing can be carried out using two methods which are automation testing and manual testing. The names of software testing types are indeed self-explanatory. This manual testing tutorial will help you to understand the basics of software testing in general and manual testing in particular.
What is Manual Testing?
Manual testing is the method used to check a software for defects manually. In this type of testing, a tester wears garbs of an end-user. All features of a software are tested to know, if the behavior of the software is exactly according to the expectations of the customer. Normally, the tester has a test plan, which he uses. Other than test plan, there are test cases written, which are used for implementing the test plan.
Manual Testing Guide
After the introduction to software testing, we will now turn towards software testing tutorial. This tutorial deals with almost basics of manual testing.
Stages of Manual Testing
The entire process of manual testing goes through four phases. First phase is known as unit testing. It is the job of the developer to test units of the code written by the developer himself. In some cases, the code may also be tested by a peer. Integration testing is second phase of software testing. It is carried out, when big chunks of codes are integrated to form a bigger block. Either black box or white box testing is carried out in this phase. The next phase is system testing phase. The software is tested for all possibilities to rule out any kind of abnormality in the system. Normally black box testing technique is used in system testing phase. User acceptance testing is per se the last stage of manual testing. In this phase, software is tested keeping the end-user in mind. There are two types of acceptance testing which are used, namely alpha testing and beta testing.
Software Testing Life Cycle
Like the development life cycle, the software also goes through a testing life cycle. The different phases of software testing life cycle are:
Software Testing Strategy
There are three types of software testing, under which all software testing activities are carried out. They are:
- White Box Testing: Testing of internal structure of the software is known as white box testing.
- Black Box Testing: This testing strategy is used to test different functionality of the software, that is being developed.
- Gray Box Testing: The software is tested to find defects of any kind, whether in code or in structure.
There are other types of software testing, which are used to test a product to ensure that the software meets requirements of the end-user. They include:
- Functional Testing
- Smoke Testing
- Usability Testing
- Validation Testing
- Compatibility Testing
- Sanity Testing
- Exploratory Testing
- Security Testing
- Regression Testing
- Recovery Testing
- Performance Testing (This includes 2 sub-types - Load Testing and Stress Testing)
Software Testing Techniques
Software testing methodologies are divided into static testing techniques and dynamic testing techniques. Software review and static analysis by using tools are methods, which come under static testing techniques. Specification based testing techniques, structure based testing techniques and experience based testing techniques are all included under dynamic testing technique. Equivalence partitioning is one of the important strategy used in specification based testing technique.
Bug Life Cycle
The aim of entire software testing activity is to find defects in the software, before it is released to the end-user for use. Bug life cycles starts after a tester logs a bug. Phases in the bug life cycle are
Software Testing
Models
There are different software testing models, which the software testing team
can choose from. Each of these models have different methods, as they are based
on different principles. A number of factors are taken into consideration,
before a particular model is chosen. The different models that are used are:
- Waterfall Model in Testing
- Validation and Verification Model
- Spiral Model
- Rational Unified Process (RUP) Model
- Agile Model
- Rapid Application Development (RAD) Model
1. Validation vs.
Verification
Verification answers the question, Am I building the product right,
while validation answers the question, Am I building the right product.
To explain it further, verification is carried out at the end of every phase to
ensure that the software has been developed in accordance with the conditions
set up at the beginning of the said phase. On the other hand, validation is
carried throughout the software development life cycle, to ensure that all the
requirements are satisfied.
2. What is severity and priority?
Impact the defect has on working of the system is called severity. It is the
tester, who decides severity of the defect found in the system. Priority,
however, is used to describe level of importance of the defect from customer or
business standpoint. The developer is the one, who will decide priority of the
defect logged in.
3. Tell me in short about requirement
testing?
Requirement testing has an important role to play in entire software testing
process. In this testing method missing, vague, incomplete and wrong
requirements are tracked down, because if the software is made with wrong,
incomplete or wrong requirements, then the software may not serve the purpose
it was developed for. It ensures incomplete requirements do not make their way
into the software.
4. Explain boundary value analysis in brief.
It is an integral part of black box testing, where tests are carried out using
values on the boundary. It can either be a maximum value or a minimum value
permitted for that input or output. It helps in analyzing, if the system
performs in the desired manner for both ends of the spectrum.
5. Differentiate between Usability and
Functional testing.
In usability testing, application is tested to find, if there are errors
pertaining to functioning of the software. For example, if software gives
erroneous messages, which can confuse the user is a part of usability testing.
Functional testing is carried out to find, if the software performs an action
it is not supposed to. A classic example can be when the software accepts an
erroneous username and/or password and logs into the system.
6. What is a Test Strategy?
This is a document, which is used to define the test approach for a particular
software. It is decided using system requirement specification document. In the
initial phase, test plan is drawn using this document, however, since the
document is not updated at regular interval, it may not prove to be useful in
case there is a change in system requirement specification.
7. Explain in short a 'test case'
It is in a test case, that desired behavior of the software is described. It
includes input, expected output along with the action as well as the actual
output. Different parameters, which are essentially a part of a test case are
test case objective, test conditions, input data, test case name, etc. Test
cases are normally prepared at the beginning of the development cycle to
ascertain that requirements specification document does not have a problem.
8. Explain: a test suite
Several test cases put together is known as test suite. Often a test suite is
designed for every component of software under test. Post condition of the
first test case becomes the precondition of subsequent test case.
9. Differentiate between Load and Volume
Testing.
As the name suggests, load testing checks whether the system works as it is supposed
to work, when load on the system increases. Increased load can either be due to
increase in number of users at the same time or it can be due to numerous
transactions taking place on the system simultaneously.
10. Distinguish between regression testing
and retesting.
Regression testing is testing the software after changes have been made to it,
in order to ensure no new bugs have been introduced in the software. The added
advantage of regression testing is that any undiscovered bugs may also come to fore.
Retesting on the other hand is running the same set of test cases on the
system, which failed during the last round of tests, after changes were carried
out to the software. This helps in verifying corrective actions taken on the
software.
If you have an interview to attend, then make sure you are well versed with
this manual testing guide, so that you are able to crack the interview. Along
with the knowledge about manual testing, you should also be acquainted with
automation testing, as there are certain companies, which require the knowledge
of automation testing along with the knowledge of manual testing.
Need more explanation on stages,life cycle,and some definitions
Thank u
Sowmya