Manual Testing Flashcards
What do you understand by software testing ?
Software testing is a validation process which confirms that a system works as per business requirements
When should you stop the testing process?
When the testing team completes the following milestones
Test case execution - completion of full test cycle after final bug fix marks the end of the testing phase
Testing deadline - end date of validation stage also marks if there is no more critical or high priority defects remaining in the system
Code Coverage (CC) ratio - the amount of code concealed via automated tests , if team meets CC ratio , then it can choose to end the validation
What is Mean Time Between Failure (MTBF) rate?
the average amount of time that a device or product functions before failing . It only includes operational time between failtures and not repairs
What does verification mean?
Verification is process to confirm that product development is taking place per the specifications and using the standard development procedures :
process is
Inspection
Reviews
Walk-throughs
Demos
What does Validation mean?
it is a means to confirm that the developed product doesnt have any bugs and is working as expected
It comprises of
functional testing and non-functional testing
What is static testing? When does it start and what does it cover?
it is a white box testing technique that directs developers to verify their code with help of checklist to find errors in it. more cost-effective than dynamic testing - conceals more areas in a shorter time
What is black-box testing
It is a standard software testing approach that requires testers to assess the functionality of the software as per business requirements . Software is validated as if from the end-user’s point of view
What is a test plan and what does it include
a test plan stores all possible testing activities to ensure a quality product
document includes: testing objectives test scope testing the frame environment reason for testing criteria for entrance and exit deliverables risk factors
What is meant by test coverage
it is a quality metric to represent the amount of testing in percentages completed for a product
Is it possible to achieve 100% testing coverage? How would you ensure it?
It is not possible but you can set a hard limit on percent of test cases passed and number of bugs found
What are unit testing and integration testing
unit testing is the developers testing individual units or modules to check if they are working correctly
integration validates how well two or more units of software interacts with each other
What are 3 integration testing approaches
Big Bang approach - merge all the modules after testing of individual modules and verify the functionality.
Top-down approach - Testing goes from top to bottom. It first validates the High-level modules and then goes for low-level modules.
Bottom-up approach - It first tests the lowest level modules and then goes for high-level modules
Can we do system testing at any stage
no, system testing should start only if all modules are in place and work correctly . Has to be done before UAT (user acceptance testing)
What are different types of software testing
unit testing Integration regression shakeout smoke - confirms basic functionality works - most basic sanity - product runs without logical errors - like calculator app ( logic) test cases functional performance
whitebox and blackbox
alpha and beta - alpha in house dev driven test
beta - end user testing /customer feedback
system
What is the difference between a test driver and a test stub
Test driver is section of code that calls a software component under test
Test stub is a dummy program that integrates with an application to complete functionality
What is agile testing and why is it important
software testing process that evaluate software from customers POV
It does not require dev team to complete coding for starting QA
what do you know about data flow testing
it is a white box testing technique
Data flow testing emphasizes designing test cases that cover control flow paths around variable definitions and their uses in the modules.
What is the purpose of the end to end testing
it is a testing strategy to execute tests that cover every possible flow of an application from its start to finish.
The objective is to discover software dependencies to assert that the correct input is getting passed between various software modules and sub systems
What type of testing to assess the probability of a situation>
Reliability testing
What do you do when a bug turns up during testing
we can run more test to make sure the problem has a clear description
we can run more test to make sure same problem doesnt exist with different inputs
Once we are certain of the full scope of the bug, we can add details and report it
Why is it impossible to test a program thoroughly
software specifications can be subjective and can lead to different interpretations
a software program may require too many inputs outputs and path combinations
how do you test a product if the requirements are yet to be freezed?
if required specifications are not available for a product, thena test plan can be created cased based on the assumptions.
if a product is in the production stage and one of its modules gets updated, then is it necessary to regression test (ret)
it is suggested to perform regression testing adn run tests for all the other modules as well.
QA should also carry out a system testing
How will you overcome the challenges faced due to the unavailability of proper documentation for test
QAs will have to rely on :
Screenshots
A previous version of the application
Wireframes
Another reliable way is to have discussions with developer and business analyst
Smoke testing is another option because it would reveal some very basic bugs
If none of this works, we can test app from our previous experiences
Is there any difference between retesting and regression testing
retesting verifies defect fixes
regression amkes sure bug fix does break other parts of app
retesting involves execution test cases in a failed state
regression is the re-execution of passed test cases
Retesting higher priority
What are key challenges of software testing
Lack of available standard documents to understand the application
lack of skilled testers
Understanding the requirements
Decision making ability to analyze when to stop testing
Ability to work under time constraints
ability to decide which tests to execute first
Testing the entire app using an optimized number of test cases
What are different types of functional testing
unit smoke UAT Sanity Interface Integration System Regression
what are functional test cases
tests the behavior and functionality of software.
what are non-functional test cases
testing based on if it is working per users expectations
What is Software Testing Life Cycle
proposes the test execution in a planned and systematic manner
It has the following steps
Requirement Analysis Test Planning Test Case Development Environment Setup Test Execution Test cycle closure
What does a FAULT mean
a condition that makes software fail to execute while performing the considered function
Major Difference between Bug , Defect, Error Failure
Error- mismatch in actual and expected behavior of app in dev phase
error spotted by manual tester becomes a defect
the defect that development team admits is a bug
A failure is mismatch in actual and expected behavior in the production phase by customer or end-users
How do severity and priority relate to each other
Severity represents gravity/depth of a bug - it describes application point of view
Priority specifies which bug should get fixed first - it defines the users point of view
What are different types of severity and its ranking
UI defects- low boundary related defects - medium error handling defects - medium calculation defect - high misinterpreted data - high misinterpreted data - high hardward failure - high compatability issues - high control flow defects - high load conditions - high
what do you mean by 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 released by customers
EX: QA found 70 , customer found 20 after release
DDP would be 70/ (70+20) = 72.1%
What does defect removal efficiency mean in software testing
DRE is testing metric .
It is an indicator of efficiency of dev team to fix issues before the release
EX: 75 defects discovered during test cycle, 62 of them got fixed
DRE = 62/75 = 82.6%
What is the average age of a defect in software testing?
it is the time elapsed between the day the tester discovered a defect and the day developers got it fixed
How do you perform automated testing in your environment
IT reduces the human intervention to a great extent. We can use diff test automation tools like QTP, Selenium and WinRunner. They help speed up the testing tasks.
Is there any difference between quality assurance, quality control and software testing
QA refers to monitoring the quality of the process to produce of a quality product- It tracks test reports and modifies process to meet expectations
QC refers of quality of the product. It finds defects and suggest improvements.
QA sets the process thats implemented by QC. QC is responsibility of testing team
What are essential qualities of an experiences QA Team lead
well verse in software testing processes
ability to accelerate teamwork to increase productivity
improve coordination between QA and Dev engineers
provide ideas to refine QA processes
Skill to conduct RCA meetings and draw conclusions
excellent written and interpersonal communication skills
ability to learn fast and to groom the team members
What is a Silk Test and why should you use it
it is a tool for performing regression and functionality testing of an app
It is used for testing window-based, java, web and the traditional client/server apps
It helps in preparing the test plan and managing it to provide direct accessing of the database and validation of the field
On the basis of which factors you would consider choosing automated testing over manual testing?
test require periodic execution
tests include repetitive steps
tests execute in a standard runtime environment
automation takes less time
automation increases reusability
automation reports are available for every execution
small releases include a minor bug fix so using regression is sufficient
What are key elements to consider while writing a bug report
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
Is there any difference between bug leakage and bug release?
Bug Leakage is a defect that exists in the application and not detected by the tester, but eventually found by the customer/end user.
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.
What is the difference between performance testing and monkey testing?
Performance testing 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 random input trying to crash the application
what is dynamic testing
Dynamic testing involves the execution of an actual application with valid inputs and checking the expected output.
What is Business requirements Document
BRD provides a complete business solution for a project, including the documentation of customer needs and expectations.
BRD fulfills the following objectives.
Gain agreement with stakeholders.
Provide clarity on the business requirements.
Describe the solution that meets the customer/business needs.
Determine the input for the next phase of the project.
What following types of bugs lie in under the non-reproducible category
The following types of bugs lie under the non-reproducible category.
- Defects observed due to low memory issue
- Issues raised due to address pointing to a memory location that does not exist.
- The race condition is an error scenario that occurs when the timing of one event impacts another executing in a sequence.
How Do You Handle A Non-Reproducible Bug?
A tester can take the following actions to handle the non-reproducible bugs.
- Execute test steps that are close to the error description.
- Evaluate the test environment.
- Examine and evaluate test execution results.
- Keep the resources & time constraints under check.
What is risk analysis and how to perform during software testing
Risk analysis is a technique to identify the things that can go wrong in a software development project.
The following are some of the risks that are of concern to the QA.
- New Hardware
- New Technology
- New Automation Tool
- The sequence of code delivery
- Availability of test resources for the application
What Is The Difference Between Coupling And Cohesion?
Cohesion deals with the functionality that relates to different processes within a single module, whereas coupling deals with how much one module is dependent on the other modules within the product.
What Is Cause Effect Graph?
It is a graphical representation of inputs and the associated outputs effects which assist in designing test cases.
How Do You Conduct Functional Testing?
Functional testing sees the application under test as a black-box. We, as a tester, first of all, write down the use cases for all the possible workflows of the said features.
After that, we verify the functionality by exercising all the said features, their options, and ensure that they behave as expected.
What Kind Of Document Will You Need To Begin Functional Testing?
the Functional specification document. It defines the full functionality of a product.
Other documents are also useful in testing like user manual and BRS.
Gap analysis is another document that can help in understanding the expected and existing system.
What Are Functional Requirements?
Authentication Business rules Historical Data Legal and Regulatory Requirements External Interfaces
What Are The Non-Functional Requirements?
Performance Reliability Security Recovery Data Integrity Usability
what is defect clustering
a situation in testing which could arise if either most of the software bugs got discovered only in a handful of modules or the software fails to operate frequently.
What is pesticide paradox
a situation in software testing when the same tests get repeated over and over again until they are no longer able to find new bugs.
What Is The Pareto Principle In Software Testing?
refers to the notion that 80% of all bugs happen to be in the 20% of the program modules.
What Are The Different Ways To Apply The Pareto Principle In Software Testing?
- Arrange the defects based on their causes, not via consequences.
- Collaborate with the dev team to discover new ways to categorize the problems.
- Put more energy into locating the problem areas in the source code instead of doing a random search.
- Re-order the test cases and pick the critical ones first to begin.
- Pay attention to the end-user response and assess the risk areas around.
What Is Cyclomatic Complexity In Software Testing?
represents a test metric known as the program complexity.
The graph includes the following attributes:
- Nodes – A node indicates the processing tasks
- Edges – An edge shows the control flow between the nodes.
What is the main objective of testing
to assure the product is less prone to defects
no defects is an unrealistic situation
What is a defect?
it is a flaw in an application that restricting the normal flow of an app by mismatching the expected behavior of an app with the actual one
What are the defect states in the Defect WorkFlow?
- New - first state of defect
- Assigned - assigned to dev team by project lead or manager
- Open - de starts process of analyzing and owrking on fixing it
- Fixed - dev finishes the task of f ixing
- Pending Retest - After fixing, the devs assign defect to tester for retesting
- Retest - tester works on it to see if it meets requirements
- Reopen - if issues persist , goes back to Dev
- Verified - testers finds no issue
- Closed - defect does not exist any longer
What are other states of defect workflow?
Rejected- devs think it is not genuine
Duplicate - devs find defect same as any other or if it matches another defect
Deferred - devs feel it is not very important priority
Not a bug - defect does not have an impact on functionality
What details are included in a defect report ?
Defect ID Description Feature Name Test Case Name Reproducible defect or not Status of a defect Severity Priority Tester Name Date of testing the defect Build Version that defect was found Assigned Developer Name of Person who fixed it Screenshots of a defect depicting the flow of the steps Fixing date Person who approved the Defect
What is a producible defect?
A defect occurring repeatedly in every execution and whose steps can be captured
What type of defect is not a reproducible defect?
A defect which is not occurring repeatedly in every execution and only at some instances and whose steps as proof have to be captured with help of screenshots
What is a defect report
document which includes reporting info about defect or flaw
What is a bug report?
Something that stores all information needed to document, report and fix problems occurred in software or on a website.