Testing Questions and Answers Flashcards
What is black/white/gray box testing?
- Black box - done without access to source code, from user standpoint. Bugs are reported at the behavioral level
- White box - done with access to the source code. Bugs are reported at the source code level
- Gray box - tester has none, or limited access to source code. Represents how the system is arranged logically, can divide it into modules, and look for errors in them using special techniques (for example, the interaction of web applications over the network)
- an example of gray box testing is API testing, or verifying changes in the database
What is positive and negative testing?
*Positive testing involves executing test cases in a way where the user’s behavior does not go beyond expected results
* negative testing intends to show that the app can properly handle situations in which user behaves in a way they’re not supposed to - invalid inputs, unreasonable selection of settings, etc
Describe a bug
Mismatch between expected result (which comes from requirements) and actual result
Describe the levels of bug report priority
- low - the defect can be fixed after the critical ones are fixed
- medium - the defect should be resolved in the subsequent builds
- high - the defect must be resolved immediately because it is affecting the app to a considerable extent and the relevant modules cannot be used until it is fixed
- urgent - the defect must be resolved immediately because it is affecting the app severely and the product cannot be used until it has been fixed
How do you write a bug report?
In my company, we use Jira as a bug report tool. There we create a new ticket and fill out textboxes:
* write the title
* fill out description including steps to reproduce, actual and expected behavior
* specify environment
* set priority
* set the assignee (if you know who owns that part of the app)
* attach screenshots, videos, or log files
What is the testing process/ life cycle?
Compilation:
* Test plan
* Test scripts
* Test cases
* Executing test cases
* Checking the results
* Bug reporting
* Bug tracking
* Bug closure
* Test release
What is a test case?
it is a detailed step-by-step set of instructions on how to test a certain feature or function
What does a test case contain?
- Title
- Preconditions
- Steps
- Expected result
- Type - automated, needs automation, needs automation update, always manual
When should you start the testing process?
Testing should begin from the inception of the project. Once you get the requirements baseline, the System testing plan and test case preparation should start. it also helps in exploring any gaps in the functional requirements
What are the characteristics of a good test case?
A good test case ensures that both positive and negative scenarios get covered. It is atomic, it does only one thing at a time and doesn’t overlap with others
- title - clear and one-line to show the intent of the test case
- purpose - brief explanation of the reason the test case is created
- description - representation in words of the nature and characteristics of the test case
- test objects - an unambiguous feature or module getting tested
- preconditions
When should you stop the testing process?
- test case execution - 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
- definition of done - suggests the exit criteria or condition when testers can mark a user story as complete.
Give an example of what can be done when a bug is found
- The first thing I try to do is reproduce the bug multiple times
- Once I can reproduce consistently, I will create a ticket with detailed steps to reproduce, the data that was used, which specific environment, and necessary screenshots
I would try to make sure the bug does not get rejected in the first place, to save time for QA managers and devs. If I’m not sure if it is a bug or not, I will talk to SME
Assume you have a test plan with over 1000 test cases. How do you decide what to automate and what to test manually?
I will focus on test case priority and feasibility of automation for the test case in question
there are other things that can make a difference
* The complicated scenarios are tedious and take a lot of time manual execution
* the test cases missed in the past
* the parts of the app that regression testing
* the test cases that are hard to automate
* the features that are still in development
* the test cases that are part of “exploratory” testing and assessing the user experience
What is risk management?
The process of identifying, assessing, and prioritizing the risks to minimize, monitor, and control the probability of unfortunate events
What should be included in a test strategy?
A plan for how to test the application and exactly what will be tested(UI, modules, processes, etc). It establishes limits for testing and indicates whether manual or automated testing will be used
What is a release candidate?
- The build released internally to check if any critical problems have gone undetected into the code during the previous development period.
- They are not for production deployment, but for testing purposes only
- However, in most cases, there are no differences between the final build and the last release candidate