Q1 : Why is testing required?
A : We need software testing for following reasons-
- Testing provides an assurance to the stakeholders that product works as intended.
- Avoidable defects leaked to the end user/customer without proper testing adds bad reputation to the development company.
- Defects detected earlier phase of SDLC results into lesser cost and resource utilisation of correction.
- Saves development time by detecting issues in earlier phase of development.
- Testing team adds another dimension to the software development by providing a different view point to the product development process.
Q2 : What is Quality Assurance?
A : Quality assurance is a process driven approach which checks if the process of developing the product is correct and conforming to all the standards. It is considered as a preventive measure as it identifies the weakness in the process to build a software. It involves activites like document review, test cases review, walkthroughs, inspection etc.
Q3 : What are the different types of testing?
A : Testing can broadly be defined into two types-
- Functional testing – Functional testing involves validating the functional specifications of the system.
- Non Functional testing – Non functional testing includes testing the non-functional requirements of the system like performance, security, scalability, portability, endurance etc.
Going by the way the testing is done, it can be categorized as-
- Black box testing – In black box testing, the tester need not have any knowledge of the internal architecture or implementation of the system. The tester interact with the system through the interface providing input and validating the received output.
- White box testing – In white box testing, the tester analyses the internal architecture of the system as well as the quality of source code on different parameters like code optimization, code coverage, code reusability etc.
- Gray box testing – In gray box testing, the tester has partial access to the internal architecture of the system e.g. the tester may have access to the design documents or database structure. This information helps tester to test the application better.
Q4 : What is verification and validation?
A : Verification: process of evaluating work-products of a development phase to determine whether they meet the specified requirements for that phase.
Validation: process of evaluating software during or at the end of the development process to determine whether it specified requirements.
Q5 : What is alpha and beta testing?
A : Alpha testing: is performed by the IN-House developers. After alpha testing the software is handed over to software QA team, for additional testing in an environment that is similar to the client environment.
Beta testing: beta testing becomes active. It is performed by end user. So that they can make sure that the product is bug free or working as per the requirement. IN-house developers and software QA team perform alpha testing. The public, a few select prospective customers or the general public performs beta testing.
Q6 : What is a test script?
A : A test script is an automated test case written in any programming or scripting langauge. These are basically a set of instructions to evaluate the functioning of an application.
Q7 : What is a bug?
A : A bug is a fault in a software product detected at the time of testing, causing it to function in an unanticipated manner.
Q8 : What does Requirement Traceability Matrix Include?
A : Requirement Traceability Matrix (RTM) is a document which records the mapping between the high-level requirements and the test cases in the form of a table.
That’s how it ensures that the Test Plan covers all the requirements and links to their latest version.
Q9 : What is a test case?
A : A test case is used to test the conformance of an application with its requirement specifications. It is a set of conditions with pre-requisites, input values and expected results in a documented form.
Q10 : What are some attributes of a test case?
A : A test case can have following attributes-
- TestCaseId – A unique identifier of the test case.
- Test Summary – Oneliner summary of the test case.
- Description – Detailed description of the test case.
- Prerequisite or pre-condition – A set of prerequisites that must be followed before executing the test steps.
- Test Steps – Detailed steps for performing the test case.
- Expected result – The expected result in order to pass the test.
- Actual result – The actual result after executing the test steps.
- Test Result – Pass/Fail status of the test execution.
- Automation Status – Identifier of automation – whether the application is automated or not.
- Date – The test execution date.
- Executed by – Name of the person executing the test case
Q11 : What is defect priority?
A : A defect priority is the urgency of the fixing the defect. Normally the defect priority is set on a scale of P0 to P3 with P0 defect having the most urgency to fix.
Q12 : What is a blocker?
A : A blocker is a bug of high priority and high severity. It prevents or blocks testing of some other major portion of the application as well.
Q13 : What is defect density?
A : Defect density is the measure of density of the defects in the system. It can be calculated by dividing number of defect identified by the total number of line of code(or methods or classes) in the application or program.
Q14 : What are some of the bug or defect management tools?
A : Some of the most widely used Defect Management tools are – Jira, Bugzilla, Redmine, Mantis, Quality Center etc.
Q15 : What is Silk Test and Why should you use it?
A : Here are some facts about the Silk tool.
1. It’s a tool developed for performing the regression and functionality testing of the application.
2. It benefits when we are testing Window based, Java, the web, and the traditional client/server applications.
3. Silk Test help in preparing the test plan and managing them to provide the direct accessing of the database and validation of the field.
Q16 : What is a test plan?
A : A test plan is a formal document describing the scope of testing, the approach to be used, resources required and time estimate of carrying out the testing process. It is derived from the requirement documents(Software Requirement Specifications).
Q17 : How do you perform Automated Testing in your Environment?
A : Automation Testing is a process of executing tests automatically. It reduces the human intervention to a great extent. We use different test automation tools like QTP, Selenium, and WinRunner. These tools help in speeding up the testing tasks.
Using the above tools we can create test scripts to verify the application automatically. After completing the test execution, these tools also generate the test reports.
Q18 : What are the key elements of a Test Plan?
A : A test plan contains the following main points.
- Testing objectives
- Test scope
- Testing the frame
- The environment
- Reason for testing
- The criteria for entrance and exit
- Deliverables
- Risk factors
Q19 : What will you do when a Bug turns up during Testing?
A : When a bug shows up, we can follow the below steps.
- Run more tests to make sure that the problem has a clear description.
- Run a few more tests to ensure that the same problem doesn’t exist with different inputs.
- Once we are sure of the full scope of the bug, then we can add details and report it
Q20 : What is Quality Control?
A : Quality control is product driven approach which checks that the developed product conforms to all the specified requirements. It is considered as a corrective measure as it tests the built product to find the defects. It involves different types of testing like functional testing, performance testing, usability testing etc.
Q21 : What is the difference between Functional Requirement and Non-Functional Requirement?
A : The functional requirement specifies how a product should run whereas a non-functional requirement represents how it should be.
Functional Requirements.
- Authentication
- Business rules
- Historical Data
- Legal and Regulatory Requirements
- External Interfaces
Non-Functional Requirements.
- Performance
- Reliability
- Security
- Recovery
- Data Integrity
- Usability
Q22 : When should we stop testing?
A : Testing can be stopped when one or more of the following conditions are met-
- After test case execution – Testing phase can be stopped when one complete cycle of test cases is executed after the last known bug fix with agreed upon value of pass-percentage.
- Once the testing deadline is met – Testing can be stoppped after deadlines get met with no high priority issues left in system.
- Based on Mean Time Between failure (MTBF)- MTBF is the time interval between two inherent failures. Based on stakeholders decisions, if the MTBF is quite large one can stop the testing phase.
- Based on code coverage value – Testing phase can be stopped when the automated code coverage reaches a specific threshold value with sufficient pass-percentage and no critical bug.
Q23 : What is a critical bug?
A : A critical bug is a bug that impacts a major functionality of the application and the application cannot be delivered without fixing the bug. It is different from blocker bug as it doesn’t affect or blocks the testing of other part of the application.
Q24 : How come the Severity and Priority relate to each other?
A :
- Severity – Represents the gravity/depth of the bug.
- Priority – Specifies which bug should get fixed first.
- Severity – Describes the application point of view.
- Priority – Defines the user’s point of view.
Q25 : Explain equivalence class partitioning.
A : Equivalence class partitioning is a specification based black box testing techniques. In equivalence class partitioning, set of input data that defines different test conditions are partitioned into logically similar groups such that using even a single test data from the group for testing can be considered as similar to using all the other data in that group. E.g. for testing a Square program(program that prints the square of a number- the equivalence classes can be-
Set of Negative numbers, whole numbers, decimal numbers, set of large numbers etc