You are on page 1of 14

QA Review Questions

1) Briefly explain below terms in your own words.


a. Test case
A test case is a document that describes an input, action or event an excepted
response to determine if a feature of an application is working correctly.
A test case should contain particulars such as test case identifier, test case name,
test case designer, test case tester, input data requirements, expected output, actual
output and results.

b. Test plan
A test plan is a detailed document that describes the test strategy, objectives,
schedule, estimation and deliverables and resources required for testing. Test plan
is a dynamic document. The success of testing project depends on a well written
test plan document.

c. Traceability matrix
A Traceability Matrix is a document that co-relates any two-baseline documents
that require a many-to-many relationship to check the completeness of the
relationship.

d. Test management
Test management process of managing the test. The purpose of test management is
to help meet customer demands as efficiently and as economically as possible by
making best use of all asserts in a timely manner.
Test management process
1. Test analysis
2. Test planning and preparation
3. Test execution
4. Test closure.
e. Defect
A defect is an error in coding or logic that causes a program to malfunction or to
produce incorrect/unexpected results.

2) How could you write “good test case”?


A good test case is
➢ Effective
➢ Exemplary
➢ Evolvable
➢ Economic
A test case should contain particulars such as test case identifier, test case name,
objective, test conditions, input data requirements, steps and excepted results.

3) Write test cases for below scenarios.

a. Verify mobile phone


Test Test Case Designer Tester Input Output Actual Test
Case Name output Result
No
1 Check if E1841369 E1841369 Press up Volume Volume Pass
the top the increases increases
press on volume
the button button
increases
volume

Test Test Case Designer Tester Input Output Actual Test


Case Name output Result
No
2 Check if E1841369 E1841369 Press Volume Volume Pass
the down down the decreases increases
press on volume
the button button
increases
volume

Test Test Case Designer Tester Input Output Actual Test


Case Name output Result
No
3 Check if E1841369 E1841369 Dial the Make the Make the Pass
the phone phone phone call phone
allows dial- number call
pad for
making
call.

b. Verify gmail login page


Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No
1 Checking E1841369 E1841369 Username: Invalid User Invalid PASS
Login by tester Name or User
entering Password Name or
Password:
incorrect Password
1234
username
and correct
password.

Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No

2 Checking E1841369 E1841369 Username: Invalid User Invalid PASS


user Login by tester Name or User
entering Password Name or
Password:
incorrect Password
12345
username
and incorrect
password.

Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No

3 Checking E1841369 E1841369 Username: Invalid User Invalid PASS


Login by Name or User
Password:
keeping Password Name or
empty value Password
for username
and
password.

c. Verify google search feature


Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No

1 Check that E1841369 E1841369 Corona Display all Display PASS


the response keyword about contain all about
fetched for a the corona contain
particular keyword. the
keyword is
correct and corona
related to the keyword.
keyword.

Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No

2 Check that E1841369 E1841369 Corona Most Most PASS


the response keyword relevant result relevant
are sorted by for the corona result for
relevance in are displayed the
descending on top. keyword
order are
displayed
on top

Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No

3 check auto- E1841369 E1841369 Input fac Give Suggestions PASS


suggestion in suggestions ‘facebook’,
Google like ‘facebook
‘facebook’, messenger’,
‘facebook ‘facebook
messenger’, chat’ etc.
‘facebook
chat’ etc.

d. Verify LMS
Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No

1 Check that E1841369 E1841369 Input LMS No internet No PASS


wrong LMS URL error internet
URL can be online.codl.lk massage. error
reached maseage.
without
internet
Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No

2 Check that E1841369 E1841369 Input LMS No internet No PASS


wrong LMS URL error internet
URL can be online.codl.lk massage. error
reached maseage.
without
internet

Test
Test Case Expected Actual Test
Case
Name Designer Tester Input Output Output Result
No

3 Checking E1841369 E1841369 Username: Invalid User Invalid PASS


Login by Name or User
Password:
keeping Password Name or
empty value Password
for username
and
password.

4) Mention 5 testing types and explain them in detail.


➢ Alpha Testing
It is the most common type of testing used in the Software industry. The objective of this
testing is to identify all possible issues or defects before releasing it into the market or to
the user. Alpha Testing is carried out at the end of the software development phase but
before the Beta Testing. Still, minor design changes may be made as a result of such testing.
Alpha Testing is conducted at the developer’s site. In-house virtual user environment can
be created for this type of testing.
Alpha testing has two phases,
1. The first phase of testing is done by in-house developers. They either use hardware-assisted
debuggers or debugger software. The aim to catch bugs quickly. Usually while alpha
testing, a tester will come across to plenty of bugs, crashes, missing features, and docs.
2. While the second phase of alpha testing is done by software QA staff, for additional testing
in an environment. It involves both black box and White Box Testing.

Usually, an alpha testing takes place in the test lab environment on a separate system. In
this technique, project manager teams up with the developer to define specific goals for
alpha testing, and to integrate the results into evolving project plans.
As such alpha testing is done on a prototype, in-depth reliability testing, installation testing,
and documentation testing can be ignored.
A good alpha test must have a well-defined Test Plan with comprehensive test cases.
Various activities involved in alpha testing are logging defects, fixing defects, retesting,
several iterations, etc.

How to do Alpha Testing


• Review the design specification and functional requirements
• Develop comprehensive test cases and test plan
• Execute test plan
• Log defects
• Retest once the issues have been fixed
Advantage of Alpha testing
• Better insight about the software's reliability at its early stages
• Free up your team for other projects
• Reduce delivery time to market
• Early feedback helps to improve software quality

➢ Black Box Testing


Internal system design is not considered in this type of testing. Tests are based on the
requirements and functionality.

How to do Black Box Testing


Here are the generic steps followed to carry out any type of Black Box Testing.
• Initially, the requirements and specifications of the system are examined.
• Tester chooses valid inputs (positive test scenario) to check whether SUT processes them
correctly. Also, some invalid inputs (negative test scenario) are chosen to verify that the
SUT is able to detect them.
• Tester determines expected outputs for all those inputs.
• Software tester constructs test cases with the selected inputs.
• The test cases are executed.
• Software tester compares the actual outputs with the expected outputs.
• Defects if any are fixed and re-tested.

➢ Component testing
Component testing is defined as a software testing type, in which the testing is performed
on each individual component separately without integrating with other components. It's
also referred to as Module Testing when it is viewed from an architecture perspective.
Component Testing is also referred to as Unit Testing, Program Testing or Module
Testing.
Advantages of Component Testing
1. It finds the defects in the module and verifies the functioning of the
software.
2. It helps in faster delivery.
3. It leads to re-usability of software which provides a lot of benefits.
4. Reduces the development cycle time.
5. Helps in reducing the project cost.
6. Leads to a significant increase in productivity.
Component Testing Disadvantages
1. Less control over the evolution of the system.
2. There is a need to compromise the requirements.

➢ Unit testing
Unit testing performed on each module or block of code during development. unit testing
is normally done by the programmer who writes the code.
How to do Unit Testing
Unit Testing is of two types
• Manual
• Automated
Unit testing is commonly automated but may still be performed manually. Software
Engineering does not favor one over the other but automation is preferred. A manual
approach to unit testing may employ a step-by-step instructional document.
Unit Testing Advantage
• Developers looking to learn what functionality is provided by a unit and how to use it can
look at the unit tests to gain a basic understanding of the unit API.
• Unit testing allows the programmer to refactor code at a later date, and make sure the
module still works correctly (i.e. Regression testing). The procedure is to write test cases
for all functions and methods so that whenever a change causes a fault, it can be quickly
identified and fixed.
• Due to the modular nature of the unit testing, we can test parts of the project without waiting
for others to be completed.
Unit Testing Disadvantages
• Unit testing can't be expected to catch every error in a program. It is not possible to evaluate
all execution paths even in the most trivial programs
• Unit testing by its very nature focuses on a unit of code. Hence it can't catch integration
errors or broad system level errors.

➢ Integration testing
Integration testing done before, during and after integration of a new module into the main
software package. This involves testing of each individual code module. One piece of
software can contain several modules which are often created by several different
programmers. It is crucial to test each module's effect on the entire program model.

How to do Integration Testing?


The Integration test procedure irrespective of the Software testing strategies
1. Prepare the Integration Tests Plan
2. Design the Test Scenarios, Cases, and Scripts.
3. Executing the test Cases followed by reporting the defects.
4. Tracking & re-testing the defects.
5. Steps 3 and 4 are repeated until the completion of Integration is successful.

Advantages of integration testing:


• Integration testing provides a systematic technique for assembling a software system while
conducting tests to uncover errors associated with interfacing.
• The application is tested in order to verify that it meets the standards set by the client as
well as reassuring the development team that assumptions which were made during unit
testing are correct.
• Integration testing need not wait until all the modules of a system are coded and unit tested.
Instead, it can begin as soon as the relevant modules are available.
• Integration testing or incremental testing is necessary to verify whether the software
modules work in unity.
• System Integration testing includes a number of techniques like Incremental, Top- down,
Bottom –Up, Sandwich and Big Bang Integration techniques

5) What is the difference between Retesting and Regression testing?


Regression testing Retesting

Retesting is done to confirm whether the


Regression testing is done to find out the
failed test cases in the final execution are
issues which may get introduced because of
working fine or not after the issues have been
any change or modification in the application.
fixed.

The purpose of regression testing is that any


The purpose of retesting is to ensure that the
new change in the application should NOT
particular bug or issue is resolved and the
introduce any new bug in existing
functionality is working as expected.
functionality.

Verification of bugs are not included in the Verification of bugs are included in the
regression testing. retesting.

Regression testing can be done in parallel with Retesting is of high priority so it’s done before
retesting. the regression testing.

For regression testing test cases can be For retesting the test cases cannot be
automated. automated.

In case of regression testing the testing, style In case of retesting the testing is done in a
is generic planned way.

During regression testing even the past test During retesting only failed test cases are re-
cases are executed. executed.

Regression testing is carried out to check for Retesting is carried out to ensure that the
unexpected side effects. original issue is working as expected.

Regression testing is done only when any new


Retesting is executed in the same environment
feature is implemented or any modification or
with same data but in new build.
enhancement has been done to the code.

Test cases of regression testing can be


Test cases of retesting can be obtained only
obtained from the specification documents and
when the testing starts.
bug reports.

6) State the differences between in “Agile and waterfall “

Waterfall Agile
The waterfall methodology is sequential and Agile methodology is incremental and
linear. iterative.
Requirements have to be frozen at the Requirements are expected to change and
beginning of SDLC. changes are incorporated at any point.
The working model of software is delivered at The working model is delivered during the
the later phases of SDLC. initial phases and successive iteration of the
model is delivered to the client for feedback.
It is difficult to scale-up projects based on Scaling up of products is easy because of the
waterfall methodology. iterative approach.
Customers or end-user doesn’t have a say Frequent customer interaction and feedbacks
after the requirements are frozen during the are involved in agile methodology.
initial phases. They only get to know the
product once it is built completely.
Waterfall requires formalized In agile documentation is often neglected and
documentations. a working prototype serves as the basis for
customer evaluation and feedback.
Testing is performed once the software is Continuous testing is performed during each
built. iteration.

7) Why do we need to create “test strategy”?


The number one reason of writing a test strategy document is to "have" a signed, sealed, and
delivered, FDA (or FAA) approved document, where the document includes a written testing
methodology, test plan, and test cases. Having a test strategy does satisfy one important step
in the software testing process. The test strategy document tells us how the software product
will be tested. The creation of a test strategy document presents an opportunity to review the
test plan with the project team. The test strategy document describes the roles,
responsibilities, and the resources required for the test and schedule constraints. When we
create a test strategy document, we have to put into writing any testing issues requiring
resolution (and usually this means additional negotiation at the project management level).
The test strategy is decided first, before lower level decisions are made on the test plan, test
design, and other testing issues.

8) Explain Defect cycle.


A Defect life cycle, also known as a Bug life cycle, is a cycle of a defect from which it goes
through covering the different states in its entire life. This starts as soon as any new defect is
found by a tester and comes to an end when a tester closes that defect assuring that it won’t
get reproduced again.

1) New: This is the first state of a defect in the Defect Life Cycle. When any new defect is
found, it falls in a ‘New’ state and validations and testing are performed on this defect in the
later stages of the Defect Life Cycle.
2) Assigned: In this stage, a newly created defect is assigned to the development team for
working on the defect. This is assigned by the project lead or the manager of the testing team
to a developer.
3) Open: Here, the developer starts the process of analyzing the defect and works on fixing
it, if required. If the developer feels that the defect is not appropriate then it may get
transferred to any of the below four states namely Duplicate, Deferred, Rejected or Not a
Bug-based upon the specific reason.
4) Fixed: When the developer finishes the task of fixing a defect by making the required
changes then he can mark the status of the defect as ‘Fixed’.
5) Pending Retest: After fixing the defect, the developer assigns the defect to the tester for
retesting the defect at their end and till the tester works on retesting the defect, the state of the
defect remains in ‘Pending Retest’.
6) Retest: At this point, the tester starts the task of working on the retesting of the defect to
verify if the defect is fixed accurately by the developer as per the requirements or not.
7) Reopen: If any issue still persists in the defect then it will be assigned to the developer
again for testing and the status of the defect gets changed to ‘Reopen’.
8) Verified: If the tester does not find any issue in the defect after being assigned to the
developer for retesting and he feels that if the defect has been fixed accurately then the status
of the defect gets assigned to ‘Verified’.
9) Closed: When the defect does not exist any longer then the tester changes the status of the
defect to ‘Closed’.
9) “Exhaustive testing is impossible” Justify the statement.

Exhaustive testing is impossible. The domain of possible input of a program is very


complicated and there are so many valid input and invalid inputs.
The program may have a large number of states. They are may be timing constrains on the
inputs that is an input may be valid at a certain time and invalid at other types. The input
domain of a system can be very large to be completely used in a testing program.
The design issues may be very complex. (Sometimes unclear design decisions and
assumptions.) It may not possible to create all possible execution environments of the
system. This becomes more significant when the behavior of the software system depends
on the real, out side world.

10) Mention the differences between "Quality Assurance, Quality Control and Testing"
Quality Assurance

QA focuses on the processes of quality assessment including their planning, arrangement,


and establishment. Its main aim is to ensure the optimized and effective ways of ensuring
the expected quality of a ready product. QA assists not in detecting issues but in their
preventing. It is a proactive way of quality verification. QA is integrated in a software
development lifecycle (SDLC), and it requires the whole project team to be involved.

The QA procedure includes the preparation of a Test Plan, planning and execution of risk-
based testing, industry-specific testing, and test data management. It helps to specify and
establish the requirements for both software development and quality verification to reach
a defined level of software quality and to improve the productivity of the project team.

Quality Control

QC focuses on a product quality. Its main goal is to ensure a proper implementation of the
processes established at the QA stage. The QC activities are called to find software issues
and to make sure they will not appear the second time. It is a reactive process that helps to
confirm that the achieved results correspond to the expected ones.

QC includes the examination of product according to the predetermined requirements. In


comparison to QA, Quality Control is more time-consuming. The QC activities can be
performed only after QA procedure. A software testing life cycle includes the QC activities.
The effectiveness of QC depends only on a testing team.

Testing

Software Testing is a process of verifying different attributes of a system and aspects of its
usage in order to make sure that the product operates as expected and that it does not
perform any functions that it is not supposed to conduct. Testing is a part of QC. It includes
various techniques that are called to detect software issues. Besides, the goal of Software
Testing is also to make sure the detected bugs are fully fixed without any side effects.

Quality Assurance Quality Control Testing

It can be described as the QC is a method of identify It is a process of


planned activities that are bugs, defects and other identifying and locating
carried out in a systematic quality related issues, along the bugs, defects and
manner to ensure fulfilment with its study, analysis and other vulnerable issues, in
of requirements. correction. a software product.

QA may be seen as a subset It is a subset of quality A subset of quality


of a testing life cycle. assurance. control process.

It emphasizes on processes It focuses on quality Testing is one of the


and procedures rather than attribute of a product, by techniques of the quality
carrying out actual testing on adopting and implementing control, which identify
the product. various activities, including bugs and defects in a
testing. product, so as to improve
its quality.
It is about managing the It concerns with quality It concerns with the
quality. verification. improvement of the
quality.

QA is planning. QC involves the execution Testing involves the


of specific and certain execution of the tests, to
activities and methods, in evaluate a software
the direction of achieving product or its
quality. functionalities.

QA defines standards and QC is to make sure that the It ensures the


methodologies which lays standards are followed in identification and
the foundation for achieving order to implement the detection of the bugs/
user requirements. work product. defects(if any) in a
software product.

QA is responsible for the QC is responsible It is accountable for the


entire Software for software testing life bug/defect free product.
Development Life Cycle. cycle.

It is a process oriented A product oriented Testing is also a product-


approach. approach. Oriented approach.

QA is a failure prevention QA is a corrective measure Testing is a failure


system. mechanism detection system.

You might also like