Manual Software Testing
Manual Software Testing
Software testing is a validation process which confirms that a system works as per the business
requirements. It qualifies a system on various aspects such as usability, accuracy,
completeness, efficiency, etc. ANSI/IEEE 1059 is the global standard that defines the basic
principles of testing.
The testing activity ends when the testing team completes the following milestones.
The successful completion of a full test cycle after the final bug fix marks the end of the
testing phase.
Testing deadline
The end date of the validation stage also declares the closure of the validation if no critical or
high-priority defects remain in the system.
It is the amount of code concealed via automated tests. If the team achieves the intended level
of code coverage (CC) ratio, then it can choose to end the validation.
Inspections
Reviews
Walk-throughs
Demos
Validation is a means to confirm that the developed product doesn’t have any bugs and is
working as expected. It comprises the following activities:
Functional testing
Non-functional testing
4. What is static testing? When does it start and what does it cover?
Static testing is a white-box testing technique that directs developers to verify their code with
the help of a checklist to find errors in it. Developers can start the static testing without
actually finalizing the application or program. Static testing is more cost-effective than
dynamic testing as it more areas than dynamic testing in a shorter time.
It is a standard software testing approach that requires testers to assess the functionality of the
software as per the business requirements. The software is treated as a black box and validated
as per the end user’s point of view.
A test plan stores all possible testing activities to ensure a quality product. It gathers data from
the product description, requirement, and use case documents.
Testing objectives
Test scope
Testing the frame
Environment
Reason for testing
Criteria for entrance and exit
Deliverables
Risk factors
Test coverage is a quality metric to represent the amount (in percentage) of testing completed
for a product. It is relevant for both functional and non-functional testing activities. This
metric is used to add missing test cases.
8. Is it possible to achieve 100% testing coverage? How would you ensure it?
It’s considered not possible to perform 100% testing of any product. But you can follow the
below steps to come closer.
Unit testing has many names such as module testing or component testing.
Many times, it is the developers who test individual units or modules to check if they are
working correctly.
Whereas, integration testing validates how well two or more units of software interact with
each other.
No. System testing should start only if all modules are in place and they work correctly.
However, it should be performed before UAT (user acceptance testing).
Unit testing
Integration testing
Regression testing
Shakeout testing
Smoke testing
Functional testing
Performance testing
o Load testing
o Stress testing
o Endurance testing
Agile testing is a software testing process that evaluates software from the customers’ point of
view. It is favorable as it does not require the development team to complete coding for
starting QA. Instead, both coding and testing go hand in hand. However, it may require
continuous customer interaction.
End-to-end testing is a testing strategy to execute tests that cover every possible flow of an
application from its start to finish. The objective of performing end-to-end tests is to discover
software dependencies and to assert that the correct input is getting passed between various
software modules and sub-systems.
We can run more tests to make sure that the problem has a clear description.
We can also run a few more tests to ensure that the same problem doesn’t exist with
different inputs.
Once we are certain of the full scope of the bug, we can add details and report it.
Here are the two principal reasons that make it impossible to test a program entirely.
If the required specifications are not available for a product, then a test plan can be created
based on the assumptions made about the product. But we should get all assumptions well-
documented in the test plan.
20. If a product is in the production stage and one of its modules gets updated, then is it
necessary to ret
It is suggested to perform a regression testing and run tests for all the other modules as well.
Finally, the QA should also carry out a system testing.
21. How will you overcome the challenges faced due to the unavailability of proper
documentation for testing?
Screenshots
A previous version of the application
Wireframes
Another reliable way is to have discussions with the developer and the business analyst. It
helps in solving the doubts, and it opens a channel for bringing clarity on the requirements.
Also, the emails exchanged could be useful as a testing reference.
Smoke testing is yet another option that would help verify the main functionality of the
application. It would reveal some very basic bugs in the application. If none of these work,
then we can just test the application from our previous experiences.
23. As per your understanding, list down the key challenges of software testing.
Unit testing
Smoke testing
UAT
Sanity testing
Interface testing
Integration testing
System testing
Regression testing
25. What are functional test cases and non-functional test cases?
Software testing life cycle (STLC) proposes the test execution in a planned and systematic
manner. In the STLC model, many activities occur to improve the quality of the product.
1. Requirement Analysis
2. Test Planning
3. Test Case Development
4. Environment Setup
5. Test Execution
6. Test Cycle Closure
Fault is a condition that makes the software fail to execute while performing the considered
function.
A slip in coding is indicated as an error. The error spotted by a manual tester becomes a defect.
The defect which the development team admits is known as a bug. If a built code misses on
the requirements, then it is a functional failure.
29. How do severity and priority relate to each other?
Severity: It represents the gravity/depth of a bug. It describes the application point of view.
Priority: It specifies which bug should get fixed first. It defines the user’s point of view.
The criticality of a bug can be low, medium, or high depending on the context.
Defect detection percentage (DDP) is a type of testing metric. It indicates the effectiveness of
a testing process by measuring the ratio of defects discovered before the release and reported
after the release by customers.
For example, let’s say, the QA has detected 70 defects during the testing cycle and the
customer reported 20 more after the release. Then, DDP would be: 70/(70 + 20) = 72.1%
Defect removal efficiency (DRE) is one of the testing metrics. It is an indicator of the
efficiency of the development team to fix issues before the release.
It gets measured as the ratio of defects fixed to total the number of issues discovered.
For example, let’s say, there were 75 defects discovered during the test cycle while 62 of them
got fixed by the development team at the time of measurement. The DRE would be 62/75 =
82.6%
Defect age is the time elapsed between the day the tester discovered a defect and the day the
developer got it fixed.
The day of birth of a defect is the day it got assigned and accepted by the development
team.
The issues which got dropped are out of the scope.
Age can be both in hours or days.
The end time is the day the defect got verified and closed, not just the day it got fixed by
the development team.
35. Is there any difference between quality assurance, quality control, and software
testing. If so, what is it?
Quality Assurance (QA) refers to the planned and systematic way of monitoring the quality of
the process which is followed to produce a quality product. QA tracks the test reports and
modifies the process to meet the expectation.
Quality Control (QC) is relevant to the quality of the product. QC not only finds the defects
but suggests improvements too. Thus, a process that is set by QA is implemented by QC. QC
is the responsibility of the testing team.
Software testing is the process of ensuring that the product which is developed by developers
meets the users’ requirements. The aim of performing testing is to find bugs and make sure
that they get fixed. Thus, it helps to maintain the quality of the product to be delivered to the
customer.
39. Tell me the key elements to consider while writing a bug report.
A unique ID
Defect description: A short description of the bug
Steps to reproduce: They include the detailed test steps to emulate the issue. They also
provide the test data and the time when the error has occurred
Environment: Add any system settings that could help in reproducing the issue
Module/section of the application in which the error has occurred
Severity
Screenshots
Responsible QA: This person is a point of contact in case you want to follow-up regarding
this issue
40. Is there any difference between bug leakage and bug release?
Bug leakage: Bug leakage is something, when the bug is discovered by the end user/customer
and missed by the testing team to detect while testing the software. It is a defect that exists in
the application and not detected by the tester, which is eventually found by the customer/end
user.
Bug release: A bug release is when a particular version of the software is released with a set
of known bug(s). These bugs are usually of low severity/priority. It is done when a software
company can afford the existence of bugs in the released software but not the time/cost for
fixing it in that particular version.
41. What is the difference between performance testing and monkey testing?
Performance testing checks the speed, scalability, and/or stability characteristics of a system.
Performance is identified with achieving response time, throughput, and resource-utilization
levels that meet the performance objectives for a project or a product.
Monkey testing is a technique in software testing where the user tests the application by
providing random inputs, checking the behavior of the application (or trying to crash the
application).
System testing is a black-box testing technique, used on a complete integrated system, where it
will test the system compliance as per the requirement.
Test reports will help us find the current status of a project and its quality. This can help
stakeholders and customers take necessary actions. The complete documentation of test reports
will help analyze different phases of the project.
if you need more time to complete any task and the given time is very less what will you
do as a tester?
you have 20 bugs and you need to fix it as well as u need to run the regression and you
are only 2 people in a team how will you do it and which one you will give priority?
if some function is working in the testing environment and the same is not working in
production what will be your approach?
Scenario-based questions … please suggest your approach
A scenario 1000 links in the webpage and some links are open in a new tab and some
links are open in a new window. How to handle this scenario.
In this case, I have to execute a little bit number of test cases, i.e., 10-12 test cases per day are
enough because at first, we have to identify the impacted regions. Then we perform Regional
Regression Testing only on those regions. Again, If we are performing Full Regression
Testing on the application, i.e., we go and test the whole application whenever the application
changes or new features added. Here, we are re-executing the same test cases on different
build and releases to ensure new features added or modification done has not introduced a
defect in the older part of the application. For example, we have to perform Full Regression
Testing on ICICI bank software because their entire business is dependent on that software.
Again, if “wscript.exe” has any defect, then we have to perform Full Regression Testing on
that because entire VB Scripting is dependent on “wscript.exe.” In this case, I have to execute
the number of test cases, i.e., 15-20 test cases per day are enough.
Explain the Bug Lifecycle?
Ans: Defect: A fault in a program, which causes the program to perform in an unintended or unanticipated
manner. Defect Life Cycle (Bug Lifecycle) is the journey of a defect from its identification to its closure. The
Life Cycle varies from organization to organization and governed by the software testing process, the
organization or project follows and/or the Defect tracking tool being used.