1. What is Quality Assurance?
Quality assurance is a process driven approach which checks that the process of developing the product is correct and meeting all user requirements. It involves activates like document review, test cases review, walkthroughs, inspection etc.
2. What is Quality Control?
Quality control is product driven approach which checks that the developed product conforms to all the specified requirements. It involves different types of testing like functional testing, performance testing, usability testing etc.
3. What is Software Testing?
Software testing is the process of evaluating a system to check if it satisfies its business requirements. It identifies the correctness, completeness and quality of the developed product.
4.Why is testing required?
We need software testing for following reasons-
1.Testing provides an assurance to the stakeholders that product works as intended.
2.Defects detected earlier phase of SDLC results into lesser cost and resource utilization of correction.
3.Saves development time by detecting issues in earlier phase of development.
4.Testing team adds another dimension to the software development by providing a different viewpoint to the product development process.
5.Avoidable defects leaked to the end user/customer without proper testing adds bad reputation to the development company.
5. What are the different levels of the testing?
Testing can be performed at different levels during the development process. Performing testing activities at multiple levels help in early identification of bugs. The different levels of testing are –
6. What is verification and validation?
Verification is a process of evaluating software at development phase and to decide whether the product of a given application satisfies the specified requirements.
Validation is the process of evaluating software at the end of the development process and to check whether it meets the customer requirements.
7. What is unit testing?
Unit testing is the first level of testing and it involves testing of individual modules of the software. It is usually performed by developers.
8. What is integration testing?
Integration testing is performed after unit testing. In integration testing we test the group of related modules. It aims at finding interfacing issues between the modules.
9. What are the different types of integration testing?
The different type of integration testing is,
1.Big bang Integration Testing – In big bang integration testing, testing starts only after all the modules are integrated.
2.Top-down Integration Testing – In top down integration, testing starts from top modules to lower level modules.
3.Bottom-up Integration Testing – In bottom up integration, testing starts from lower level modules to higher level module up in the hierarchy.
4.Hybrid Integration Testing – Hybrid integration testing is the combination of both Top-down and bottom up integration testing. In this approach, the integration starts from middle layer and testing is carried out in both the direction
10.What is system testing?
System testing is the level of testing where the complete software is tested. The conformance of the application with its business requirements is checked in system testing.
11.What is acceptance testing?
Acceptance testing is a testing performed by the potential end user or customers to check if the software conforms to the business requirements and can be accepted for use.
12.What is alpha testing?
Alpha testing is a type of acceptance testing that is performed end users at the developer site.
13. What is beta testing?
Beta testing is the testing done by end users at end user’s site. It allows users to provide direct input about the software to the development company.
14. What is adhoc testing?
Adhoc testing is an unstructured way of testing that is performed without any formal documentation or proper planning.
15. What is monkey testing?
Monkey testing is a type of testing that is performed randomly without any predefined test cases or test inputs.
16. How is monkey testing different from adhoc testing?
In case of adhoc testing although there are no predefined or documented test cases still testers have, the understanding of the application. While in case of monkey testing testers doesn’t have any understanding of the application.
17. What is risk-based testing?
Risk-based testing is the term used for an approach to create a test strategy that is based on prioritizing tests by risk. The basis of the approach is a detailed risk analysis and prioritization of risks by risk level. Tests to address each risk are then specified, starting with the highest risk first.
18.What is the difference between black box and white box testing?
Black box testing is a type of testing in which internal architecture of the code is not required for testing. It is usually applicable for system and acceptance testing.
Whereas white box testing requires internal design and implementation knowledge of the application being tested. It is usually applicable for Unit and Integration testing.
19. What is the difference between smoke and sanity testing?
The difference between smoke and sanity testing is,
– Smoke testing is a type of testing in which the all major functionalities of the application are tested before carrying out exhaustive testing. Whereas sanity testing is subset of regression testing which is carried out when there is some minor fix in application in a new build.
– In smoke testing shallow-wide testing is carried out while in sanity narrow-deep testing (for a functionality) is done. – The smoke tests are usually documented or are automated. Whereas the sanity tests are generally not documented or unscripted.
20.What is the difference between regression and retesting?
Regression testing is testing the application to verify that a new code change doesn’t affect the other parts of the application. Whereas, in retesting we verify if the fixed issue is resolved or not.
21. What is mutation testing?
Mutation testing is a structural testing technique, which uses the structure of the code to guide the testing process. On a very high level, it is the process of rewriting the source code in small ways in order to remove the redundancies in the source code.
Mutation testing is a type of white box testing in which the source code of the application is mutated to cause some defect in its working. After that the test scripts are executed to check for their correctness by verifying the failures caused the mutant code.
22. What are the advantages of mutation testing?
Below are the advantages of mutation testing
It brings a whole new kind of errors to the developer’s attention.
It is the most powerful method to detect hidden defects, which might be impossible to identify using the conventional testing techniques.
Increased customer satisfaction index as the product would be less buggy.
Debugging and Maintaining the product would be easier than ever.
23. What is decision testing or branch testing?
Decision testing or branch testing is a white box testing approach in which test coverage is measured by the percentage of decision points (e.g. if-else conditions) executed out of the total decision points in the application.
24. What is performance testing?
Performance testing is a type of non-functional testing in which the performance of the system is evaluated under expected or higher load. The various performance parameters evaluated during performance testing are – response time, reliability, resource usage, scalability etc.
25. What is load testing?
Load testing is a type of performance testing which aims at finding application’s performance under expected workload. During load testing we evaluate the response time, throughput, error rate etc. parameters of the application.
26. What is stress testing?
Stress testing is a type of performance testing in which application’s behavior is monitored under higher workload than expected. Stress testing is done to find memory leaks, robustness of the application as it is subjected to high workload.
27. What is volume testing?
Volume testing is a type of performance testing in which the performance of application is evaluated with large amount of data. It checks the scalability of the application and helps in identification of bottleneck with high volume of data.
28. What is concurrency testing?
Concurrency Testing is used to know the effects of using the software by different users at the same time. In this type of testing we have multiple users performing the exact same requests at the same time. It helps in identifying and measuring the problems in Response time, levels of locking and deadlocking in the application. For this we use Load runner to create VUGen (Virtual User Generator) is used to add the number of concurrent users and perform operation on the application on the same time.
29. What is endurance testing or Soak testing?
Endurance testing is a type of performance testing which aims at finding issues like memory leaks when an application is subjected to load test for a long period of time.
30. What is spike testing?
Spike testing is a type of load test. The object of this type of performance test is to verify a system’s stability during bursts of concurrent user and or system activity to varying degrees of load over varying time periods.
31. What is usability testing?
Usability testing is the type of testing that aims at determining the extent to which the application is easy to understand and use.
32. What is Accessibility testing?
Accessibility is the type of testing which aims at determining the ease of use or operation of the application specifically by with disabilities.
33. What is Compatibility testing?
Testing software to see how compatible the software is with a environment – Operating system, platform or hardware.
34. What is configuration testing?
Configuration testing is the type of testing used to evaluate the configurational requirements of the software along with effect of changing the required configuration.
35. What is localization testing?
Localization testing is a type of testing in which we evaluate the application’s customization (localized version of application) to a culture or locale. Generally, the content of the application is checked for updating (e.g. content language).
36. What is globalization testing?
Globalization testing is a type of testing in which application is evaluated for its functioning across the world.
37. What is negative testing?
Negative testing is a type of testing in which the application’s robustness (graceful exiting or error reporting) is evaluated when provided with invalid input or test data.
38. What is security testing?
Security testing is a type of testing which aims at evaluating the integrity, authentication, authorization, availability, confidentiality and non-repudation of the application under test.
39. What is penetration testing?
Penetration testing or pen testing is a type of security testing in which application is evaluated (safely exploited) for different kinds of vulnerabilities that any hacker could exploit.
40. What is robustness testing?
Robustness testing is a type of testing that is performed to find the robustness of the application i.e. the ability of the system to behave gracefully in case of erroneous test steps and test input.
41. What is A/B testing?
A/B testing is a type of testing in which the two variants of the software product are exposed to the end users and on analysing the user behaviour on each variant the better variant is chosen and used thereafter.
42. What is all pair testing?
All pair testing is a type of testing in which the application is tested with all possible combination of the values of input parameters.
43. What is dynamic testing?
Testing performed by executing or running the application under test either manually or using automation.
44. What is failover testing?
Failover testing is a type of testing that is used to verify application’s ability to allocate more resources (more servers) in case of failure and transferring of the processing part to back-up system.
45. What is fuzz testing?
Fuzz testing is a type of testing in which large amount of random data is provided as input to the application to find security loopholes and other issues in the application.
46. What is UI testing?
UI or user interface testing is a type of testing that aims at finding Graphical User Interface defects in the application and checks that the GUI conforms to the specifications.
47. What is Model-Based testing?
Model-based testing is a software testing technique in which the test cases are derived from a model that describes the functional aspects of the system under test.
It makes use of a model to generate tests that includes both offline and online testing.
48. What is pilot testing?
Backend testing is a type of testing that involves testing the backend of the system which comprises of testing the databases and the APIs in the application.
49. What is backend testing?
Backend testing is a type of testing that involves testing the backend of the system which comprises of testing the databases and the APIs in the application.
50. What is the difference between static and dynamic testing?
Static testing: During Static testing method, the code is not executed, and it is performed using the software documentation.
Dynamic testing: To perform this testing the code is required to be in an executable form.
51. What is random/monkey-testing? When it is used?
Random testing often known as monkey testing. In such type of testing data is generated randomly often using a tool or automated mechanism. With this randomly generated input the system is tested, and results are analysed accordingly. These testing are less reliable; hence it is normally used by the beginners and to see whether the system will hold up under adverse effects.
52. What is maintenance testing?
Maintenance Testing is done on the already deployed software. The deployed software needs to be enhanced, changed or migrated to other hardware. The Testing done during this enhancement, change and migration cycle is known as maintenance testing.
53. What is Boundary value testing?
Test boundary conditions on, below and above the edges of input and output equivalence classes. In boundary values testing we test only the exact boundaries, rather than hitting in the middle. That means we test above the maximum limit and below the minimum limit.
54. What is exploratory testing?
Exploratory testing is hands-on approach in which testers are involved in minimum planning and maximum test execution. The planning involves the creation of a test charter, a short declaration of the scope of a short (1 to 2 hours) time-boxed test effort, the objectives and possible approaches to be used.
The test design and test execution activities are performed in parallel typically without formally documenting the test conditions, test cases or test scripts. This does not mean that other, more formal testing techniques will not be used. For example, the tester may decide to use boundary value analysis but will think through and test the most important boundary values without necessarily writing them down. Some notes will be written during the exploratory-testing session, so that a report can be produced afterwards.
55. What is Equivalence partitioning testing?
Equivalence partitioning testing is a software testing technique which divides the application input test data into each partition at least once of equivalent data from which test cases can be derived. By this testing method it reduces the time required for software testing.
56. What is reliability testing?
Reliability testing is a testing strategy to measure the consistency of a Software in executing a specific operation without throwing any error for a certain period in the given environment.
57. What is Modularity Driven Testing?
Modularity driven testing is an automation testing framework in which small, independent modules of automation scripts are developed for the application under test. These individual to form a test realizing a particular test case.
58. What is benchmark testing?
Benchmarking testing is the process of comparing application performance with respect to industry standard which is given by some other organization. Benchmark informs us where our application stands with respect to others. Benchmark compares our application performance with other company’s application’s performance.
59. What is “use case testing”?
To identify and execute the functional requirement of an application form start to finish “use case” is used and the techniques used to do this is known as “Use Case Testing”
60. What is Agile testing and what is the importance of Agile testing?
Agile testing is software testing, is testing using Agile Methodology. The importance of this testing is that, unlike normal testing process, this testing does not wait for the development team to complete the coding first and then doing testing. The coding and testing both go simultaneously. It requires continuous customer interaction.
61. What is CRUD testing?
CRUD (Create, Read, Update and Delete) is another term used for Black box testing. CRUD testing is another term for database testing.
C – Create – Creating a new Transaction
R – Read/Retrieve – Searching or viewing a transaction
U – Update – Editing or modifying an existing transaction
D – Delete – Deleting a transaction from the database
62. What is Workflow Testing?
Workflow processes technique in software testing by routing a record through each possible path. These tests are performed to ensure that each workflow process accurately reflects the business process. This kind of testing holds good for work-flow-based applications.
63. What is N+1 testing?
The variation of regression testing is represented as N+1. In this technique the testing is performed in multiple cycles in which errors found in test cycle ‘N’ are resolved and re-tested in test cycle N+1. The cycle is repeated unless there are no errors found.
64. What is bottom up testing?
Bottom up testing is an approach to integration testing, where the lowest level components are tested first, then used to facilitate the testing of higher-level components. The processes is repeated until the component at the top of the hierarchy is tested.
65. What is Baseline Testing?
A baseline is the indicator of a specific benchmark that serves as the foundation of a new creation.
In Baseline testing, the tests capture and preserve all the results produced by the source code and compares against a reference baseline. This reference baseline refers to the last accepted test results. If there are new changes in the source code, then it requires re-execution of tests to form the current baseline. If the new results get accepted, then the current baseline becomes the reference.
66. What is Cookie Testing?
Cookie Testing is the process of verifying whether the cookies are working as intended or not. In cookie testing, testers need to test the status of the cookie, expiration of cookie, accessibility of cookie, security constraints, etc.
67. What is the difference between Compatibility testing and Cross browser testing?
Compatibility testing: Testing an application on different hardware of software is Compatibility testing.
Example : Different devices such as iPhone, Samsung etc. Different operating systems such as Windows, Linus etc.
Cross browser testing : Testing a web application on different browsers is Cross browser testing. Cross browser testing is a subset of Compatibility testing.
Example : Google Chrome, IE 10, IE 11, Firefox etc.
68. Which is a better testing methodology: black-box testing or white-box testing?
Both black-box and white-box testing approach have their own advantages and disadvantages. Black-box testing approach enables testers to externally test the system on the basis of specified requirement and specification and does not provide the scope of testing the internal structure of the system, whereas white-box testing methodology verify and validates the software quality through testing of its internal structure and working.
69. What is use case testing?
A use case testing is a black box testing approach in which testing is carried out using use cases. A use case scenario is seen as interaction between the application and actors (users). These use cases are used for depicting requirements and hence can also serve as basis for acceptance testing.
70. What is High Availability Testing.
High availability shows the ability of a system or a component to operate continuously without failure even at high loads for a long time.
Hence, the High availability testing confirms that a system or its subsystems have gone through thorough checks and, in many cases, simulates failures to validate whether components support redundancy or not.
71. What is Storage Testing?
Testing that verifies the program under test scores data files in the correct directories and that it reserves sufficient space to prevent unexpected termination resulting from lack of space. This is external storage as opposed to internal storage.
72. What is rapid software testing?
Rapid software testing is a unique approach of testing which strikes out the need of any sort of documentation work and motivates testers to make use fo their thinking ability and vision to carry out and drive the testing process.
73. What is Bucket Testing?
Bucket testing is a method to compare two versions of an application against each other to determine which one performs better.
74. What is SDLC?
Software Development Life Cycle refers to all the activities that are performed during software development, including – requirement analysis, designing, implementation, testing, deployment and maintenance phases.
75. What is STLC?
Software testing life cycle refers to all the activities performed during testing of a software product. The phases include –
Requirement analyses and validation – In this phase the requirements documents are analysed and validated, and scope of testing is defined.
Test planning – In this phase test plan strategy is defined, estimation of test effort is defined along with automation strategy and tool selection is done.
iii. Test Design and analysis – In this phase test cases are designed; test data is prepared , and automation scripts are implemented.
Test environment setup – A test environment closely simulating the real-world environment is prepared.
Test execution – The test cases are prepared, bugs are reported and retested once resolved.
Test closure and reporting – A test closure report is prepared having the final test results summary.
76. What is test cycle closure phase in STLC?
The testing team calls upon the meeting to evaluate the open defects, known issues, code quality issues and accordingly decides on the closure of the test cycle.
They discuss what went well, where is the need for improvement and notes the pain points faced in the current STLC. Such information is beneficial for the future STLC cycles. Each member puts his/her views on the test case and bug reports and finalizes the defect distribution by type and severity.
77. What is Rapid Application Development model (RAD)?
Rapid Application Development (RAD) is formally a parallel development of functions and subsequent integration. Components/functions are developed in parallel as if they were mini projects, the developments are time-boxed, delivered, and then assembled into a working prototype. This can very quickly give the customer something to see and use and to provide feedback regarding the delivery and the requirements. Rapid change and development of the product is possible using this methodology. However, the product specification will need to be developed for the product at some point, and the project will need to be placed under more formal controls prior to going into production.
78. Define a Test Case and a Use Case? What information would you include in the descriptions?
A test case is again a document which gives you a step by step detailed idea on how you can test an application. It usually comprises of results (pass or fail), remarks, steps, outputs, and description.
A use case on the other is a document of another kind. It helps you understand the actions of the user and the response of the system found in a particular functionality. It comprises of the cover page, revision, contents, exception, and pre and post conditions.
79. What is DRE?
To measure test effectiveness a powerful metric is used to measure test effectiveness known as DRE (Defect Removal Efficiency) From this metric we would know how many bugs we have found from the set of test cases. Formula for calculating DRE is :
DRE = Number of bugs while testing/number of bugs while testing + number of bugs found by user
80. When do we prepare RTM (Requirement traceability matrix), is it before test case designing or after test case designing?
It would be before test case designing. Requirements should already be traceable from Review activities since you should have traceability in the Test Plan already. This question also would depend on the organization. If the organizations do test after development started, then requirements must be already traceable to their source. To make life simpler use a tool to manage requirements when the application is developed. Testing time is long, as we must test the whole application.
81. What is the difference between Desktop, Client server and Web testing?
Desktop application runs on personal computers and workstations, so when you test the desktop application you are focusing on a specific environment. You will test complete application broadly in categories like GUI, functionality, Load , and backend, i.e. DB.
In client server application, you have two different components to test. Application is loaded on server machine while the application exe on every client machine. You will test broadly in categories lie, GUI, on both sides, functionality, Load, client-server interaction, backend. This environment is mostly used in Intranet networks. You are aware of number of clients and servers and their locations in the test scenario.
Web application is a bit different and complex to test as tester don’t have that much control over the application. Application is loaded on the server whose location may or may not be known and no exe is installed on the client machine, you must test it on different web browsers. Web applications are supposed to be tested on different browsers and OS platforms so broadly Web application is tested mainly for browser compatibility error handling, static pages, backend testing and load testing.
82. What is stub?
In case of Top-down integration many a times lower level modules are not developed while beginning testing/integration with top level modules. In those cases, Stubs or dummy modules are used that simulate the working of modules by providing hardcoded or expected output based on the input values.
83. What is driver?
In case of Bottom up integration drivers are used to simulate the working of top level modules to test the related modules lower in the hierarchy.
84. What is risk analysis?
Risk analysis is the analysis of the risk defined and assigning an appropriate risk level to it, based on its impact over the application.
85. What is a business requirements document (BRD)?
BRD provides a detailed business solution for a project including the documentation of customer needs and expectations.
BRD fulfils 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.
86. What is an exit criterion?
An exit criterion is a formal set of conditions that specify the agreed upon features or state of application to mark the completion of the process or product.
87. What are some advantages of automation testing?
Some advantages of automation testing are :
Test execution using automation is fast and saves considerable amount of time.
Carefully written test scripts remove the chance of human error during testing.
Tests execution can be scheduled for nightly run using CI tools like Jenkins which can also be configured to provide daily test results to relevant stakeholders.
Automation testing is very less resource intensive. Once the tests are automated, test execution requires almost no time of QAs. Saving QA bandwidth for other exploratory tasks.
88. What are some disadvantages of automation testing?
Some advantages of automation testing are:
It requires skilled automation testing experts to write test scripts.
Additional effort to write scripts is required upfront.
Automation scripts are limited to verification of the tests that are coded. These tests may miss some error that is very glaring and easily identifiable to human (manual QA).
Even with some minor change in application, script updating, and maintenance is required.
89. What is a test plan?
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).
90. What is a test scenario?
A test scenario is derived from a use case. It is used for end to end testing of a feature of an application. A single test scenario can cater multiple test cases. The scenario testing is particularly useful when there is time constraint while testing.
91. What is a test case?
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.
92. What is a test script?
A test script is an automated test case written in any programming or scripting language. These are basically set of instructions to evaluate the functioning of an application.
93. What is a bug?
A bug is a fault in a software product detected at the time of testing, causing it to function in an unanticipated manner.
94. What is a defect?
A defect is non-conformance with the requirement of the product detected in production (after the product goes live).
95. What are some defect reporting attributes?
Some of the attributes of a Defect report are:
Defect Id – A unique identifier of the defect.
Defect Summary – A one-line summary of the defect, more like a defect title.
Defect Description – A detailed description of the defect.
Steps to reproduce – The steps to reproduce the defect.
Expected Result – The expected behaviour from which the application is deviating because of the defect.
Actual Result – The current erroneous state of the application w.r.t. the defect.
Defect Severity – Based on the criticality of the defect, this field can be set to minor, medium, major or show stopper.
Priority – Based on the urgency of the defect, this field can be set on a scale of P0 to P3.
96. What are some of the bug or defect management tools?
Some of the most widely used Defect Management tools are – Jira, Bugzilla, Mantis, Quality Center etc.
97. What is defect priority?
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 urgent to fix.
98. What is defect severity?
Defect severity is the severity of the defect impacting the functionality. Based on the organization we can different levels of defect severity ranging from minor to critical or show stopper.
99. Give an example of Low Priority – Low severity, Low Priority-High severity, High Priority – Low severity, High Priority – High severity defects.
Low Priority-Low severity : A spelling mistake in a page not frequently navigated by users.
Low Priority – High severity : Application crashing in some very corner case.
High Priority – Low severity : Slight change in logo color or spelling mistaken in company name.
High Priority – High severity : Issue with login functionality.
100. What is a blocker?
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.