Manual QA Interview Questions Flashcards
Software Development Life Cycle (SDLC)
A process used by the software industry to design, develop and test high quality software. The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
STLC Software Testing Life Cycle
A sequence of different activities performed by the testing team to ensure the quality of the software or the product. STLC is an integral part of Software Development Life Cycle (SDLC). STLC deals only with the testing phases.
Unit Testing
Aims to verify each part of the software by isolating it and then perform tests to demonstrate that each individual component is correct in terms of fulfilling requirements and the desired functionality. [Done by developers]
Integration Testing
Aims to test different parts of the system in combination in order to assess if they work correctly together. By testing the units in groups, any faults in the way they interact together can be identified. [Done by developers]
System Testing
All the components of the software are tested as a whole in order to ensure that the overall product meets the requirements specified. [Done by Testers]
Acceptance Testing
The level in the software testing process where a product is given the green light or not. The aim of this type of testing is to evaluate whether the system complies with the end-user requirements and if it is ready for deployment. [Done by users]
Steps the Defect goes through from discovery to resolution
New, Assigned, Open, Fixed, Retest, Close
Test Scenario
Any functionality that can be tested. It is also called Test Condition or Test Possibility.
Test Case
A set of actions executed to verify a particular feature or functionality of your software application. A Test Case contains test steps, test data, precondition, postcondition developed for specific test scenario to verify any requirement.
Example: Test login with a valid username and a valid password
The test scenario can be tested with more than one test case.
Functional Testing
A type of testing which verifies that each function of the software application operates in conformance with the requirement specification. It tests what the system does.
Non-functional testing
A type of testing to check non-functional aspects (performance, usability, reliability, etc.) of a software application. It tests how well the system performs.
Verification
Are we building the product right?
Techniques used: Informal review, inspection, walkthrough, technical and peer review.
Validation
Are we building the right product?
Techniques used: Functional testing, system testing, smoke testing, regression testing, etc.
When should we start testing in our project?
Software testing should start early in the Software Development Life Cycle. This helps to capture and eliminate defects in the early stages of SDLC i.e requirement gathering and design phases. An early start to testing helps to reduce the number of defects and ultimately the rework cost in the end.
“Early testing saves time and money”.
If we don’t have clear written user requirements, how can we test the software?
- Work with whatever little documentation you can get your hands on.
- Use the older/current version of the application as a reference to test the future release of a software product.
- Talk to the project team members.
- Use exploratory testing to test the application when it is ready.
What is exploratory testing, why do we use it?
Simultaneous learning, test design and test execution.
In exploratory testing, test cases are not created in advance but testers check system on the fly.
Exploratory testing is used for two reasons:
- When we don’t have time to design test cases
- When there are poor or no requirements
A defect which could have been removed during the initial stage is removed in a later stage. How does this affect the cost?
The cost goes up the later the defect is found in the Development Phase.
Change-related Testing
Focuses on verifying that any new builds or code changes do not adversely affect the system.
Confirmation Testing or Re-Testing
When a test fails because of the defect then that defect is reported and a new version of the software is expected that has had the defect fixed. In this case we need to execute the test again to confirm that whether the defect got actually fixed or not.
Regression Testing
A type of software testing to confirm that a recent program or code change has not adversely affected existing features.
Impact analysis is used to know how much regression testing will be required.
Black-box Testing
A software testing method in which the internal structure/ design/implementation of the item being tested is not known to the tester.
White-box Testing
A software testing method in which the internal structure/ design/implementation of the item being tested is known to the tester.
Grey-box Testing
A software testing technique to test a software product or application with partial knowledge of internal structure of the application. The purpose of grey box testing is to search and identify the defects due to improper code structure or improper use of applications.
Which test cases are written first, black-box or white box?
Black box.
Black box are user requirements, White box are detailed design
What is use-case testing?
A technique that helps us identify test cases that exercise the whole system on a transaction by transaction basis from start to finish.
Equivalence Partitioning
Divides data into partitions (also known as equivalence classes) in such a way that all the members of a given partition are expected to be processed in the same way.
Requirements Traceability
The ability to connect requirements to other artifacts — such as different types of software tests or bugs.
Bidirectional Traceability
The ability to trace forward (e.g., from requirement to test case) and backward (e.g., from test case to requirement).
Requirement Traceability Matrix (RTM)
A document that maps and traces user requirement with test cases.