Top QA Interview Questions Answers
- What is Software Quality Assurance (SQA)?Software quality assurance is an umbrella term, consisting of various planned process and activities to monitor and control the standard of whole software development process so as to ensure quality attribute in the final software product.
- What is Software Quality Control (SQC)?With the purpose similar to software quality assurance, software quality control focuses on the software instead to its development process to achieve and maintain the quality aspect in the software product.
- What is Software Testing?Software testing may be seen as a sub-category of software quality control, which is used to remove defects and flaws present in the software, and subsequently improves and enhances the product quality.
- Whether, software quality assurance (sqa), software quality control (sqc) and software testing are similar terms?No, but the end purpose of all is same i.e. ensuring and maintaining the software quality.
- Then, what’s the difference between SQA, SQC and Testing?SQA is a broader term encompassing both SQC and testing in it and ensures software development process quality and standard and subsequently in the final product also, whereas testing which is used to identify and detect software defects is a sub-set of SQC.
- What is software testing life cycle (STLC)?Software testing life cycle defines and describes the multiple phases which are executed in a sequential order to carry out the testing of a software product. The phases of STLC are requirement, planning, analysis, design, implementation, execution, conclusion and closure.
- How STLC is related to or different from SDLC (software development life cycle)?Both SDLC and STLC depict the phases to be carried out in a subsequent manner, but for different purpose. SDLC defines each and every phase of software development including testing, whereas STLC outlines the phases to be executed during a testing process. It may be inferred that STLC is incorporated in the SDLC phase of testing.
- What are the phases involved in the software testing life cycle?The phases of STLC are requirement, planning, analysis, design, implementation, execution, conclusion and closure.
- Why entry criteria and exit criteria is specified and defined?Entry and exit criteria is defined and specified to initiate and terminate a particular testing process or activity respectively, when certain conditions, factors and requirements is/are being met or fulfilled.
- What do you mean by the requirement study and analysis?Requirement study and analysis is the process of studying and analysing the testable requirements and specifications through the combined efforts of QA team, business analyst, client and stakeholders.
- What are the different types of requirements required in software testing?Software/functional requirements, business requirements and user requirements.
- Is it possible to test without requirements?Yes, testing is an art, which may be carried out without requirements by a tester by making use of his/her intellects possessed, acquired skills and gained experience in the relevant domain.
- Differentiate between software requirement specifications (SRS) and business requirement specification (BRS).SRS layouts the functional and non-functional requirements for the software to be developed whereas BRS reflects the business requirement i.e., the business demand of a software product as stated by the client.
- Why there is a bug/defect in software?A bug or a defect in software occurs due to various reasons and conditions such as misunderstanding or requirements, time restriction, lack of experience, faulty third party tools, dynamic or last time changes, etc.
- What is a software testing artifact?Software testing artifact or testing artifact are the documents or tangible products generated throughout the testing process for the purpose of testing or correspondence amongst the team and with the client.
- What are test plan, test suite and test case?Test plan defines the comprehensive approach to perform testing of the system and not for the single testing process or activity. A test case is based on the specified requirements & specifications define the sequence of activities to verify and validate one or more than one functionality of the system. Test suite is a collection of similar types of test cases.
- How to design test cases?Broadly, there are three different approaches or techniques to design test cases. These are
What is test environment?
- Black box design technique, based on requirements and specifications.
- White box design technique based on internal structure of the software application.
- Experience based design technique based on the experience gained by a tester.
A test environment comprises of necessary software and hardware along with the network configuration and settings to simulate intended environment for the execution of tests on the software.
Why test environment is needed?
Dynamic testing of the software requires specific and controlled environment comprising of hardware, software and multiple factors under which a software is intended to perform its functioning. Thus, test environment provides the platform to test the functionalities of software in the specified environment and conditions.
What is test execution?
Test execution is one of the phases of testing life cycle which concerns with the execution of test cases or test plans on the software product to ensure its quality with respect to specified requirements and specifications.
What are the different levels of testing?
Generally, there are four levels of testing viz. unit testing, integration testing, system testing and acceptance testing.
What is unit testing?
Unit testing involves the testing of each smallest testable unit of the system, independently.
What is the role of developer in unit testing?
As developers are well versed with their lines of code, they are preferred and being assigned the responsibility of writing and executing the unit tests.
What is integration testing?
Integration testing is a testing technique to ensure proper interfacing and interaction among the integrated modules or units after the integration process.
What are stubs and drivers and how these are different to each other?
Stubs and drivers are the replicas of modules which are either not available or have not been created yet and thus they works as the substitutes in the process of integration testing with the difference that stubs are used in top bottom approach and drivers are used in bottom up approach.
What is system testing?
System testing is used to test the completely integrated system as a one system against the specified requirements and specifications.
What is acceptance testing?
Acceptance testing is used to ensure the readiness of a software product with respect to specified requirement and specification in order to get readily accepted by the targeted users.
Different types of acceptance testing.
Broadly, acceptance testing is of two types-alpha testing and beta testing. Further, acceptance testing can also be classified into following forms:
Difference between alpha and beta testing.
- Operational acceptance testing
- Contract acceptance testing
- Regulation acceptance testing
Both alpha and beta testing are the forms of acceptance testing where former is carried out at development site by the QA/testing team and the latter one is executed at client site by the intended users.
What are the different approaches to perform software testing?
Generally, there are two approaches to perform software testing viz. Manual testing and Automation. Manual testing involves the execution of test cases on the software manually by the tester whereas automation process involves the usage of automation framework and tools to automate the task of test scripts execution.
What is the advantage of automation over manual testing approach and vice-versa?
In comparison to manual approach of testing, automation reduces the efforts and time required in executing the large amount of test scripts, repetitively and continuously for a longer period of time with accuracy and precision.
Is there any testing technique that does not needs any sort of requirements or planning?
Yes, but with the help of test strategy using check lists, user scenarios and matrices.
Difference between ad-hoc testing and exploratory testing?
Both ad-hoc testing and exploratory testing are the informal ways of testing the system without having proper planning & strategy. However, in ad-hoc testing, a tester is well-versed with the software and its features and thereby carries out the testing whereas in exploratory, he/she gets to learn and explore more about the software during the course of testing and thus tests the system gradually along with software understanding and learning throughout the testing process.
How monkey testing is different from ad-hoc testing?
Both monkey and ad-hoc testing are the informal approach of testing but in monkey testing, a tester does not requires the pre-understanding and detailing of the software, but learns about the product during the course of testing whereas in ad-hoc testing, tester has the knowledge and understanding of the software.
Why non-functional testing is equally important to functional testing?
Functional testing tests the system’s functionalities and features as specified prior to software development process. It only validates the intended functioning of the software against the specified requirement and specification but the performance of the system to function in the unexpected circumstances and conditions in real world environment at the users end and to meet customer satisfaction is done through non-functional testing technique. Thus, non-functional testing looks after the non-functional traits of the software.
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.
If black-box and white-box, then why gray box testing?
Gray box testing is a third type of testing and a hybrid form of black-box and white-box testing approach, which provides the scope of externally testing the system using test plans and test cases derived from the knowledge and understanding of internal structure of the system.
Difference between static and dynamic testing of software.
The primary difference between static and dynamic testing approach is that the former does not involves the execution of code to test the system whereas latter approach requires the code execution to verify and validate the system quality.
Smoke and Sanity testing are used to test software builds. Are they similar??
Although, both smoke and sanity testing is used to test software builds but smoke testing is used to test the initial build which are unstable whereas sanity tests are executed on relatively stable builds which had undergone multiple time through regression testing.
When, what and why to automate?
Automation is preferred when the execution of tests needs to be carried out repetitively for a longer period of time and within the specified deadlines. Further, an analysis of ROI on automation is desired to analyse the cost-benefit model of the automation. Preferably functional, regression and functional tests may be automated. Further, tests which requires accuracy and precision, and is time-consuming may be considered for automation, including data driven tests also.
What are the challenges faced in automation?
Some of the common challenges faced in the automation are
Difference between retesting and regression testing.
- Initial cost is very high along with the maintenance costs. Thus, requires proper analysis to assess ROI on automation.
- Increased complexities.
- Limited time.
- Demands skilled tester, having appropriate knowledge of programming.
- Automation training cost and time.
- Selection of right and appropriate tools and frameworks.
- Less flexible.
- Keeping test plans and cases updated and maintained.
Both retesting and regression testing is done after modification in software features and configuration to remove or correct the defect(s). However, retesting is done to validate that the identified defects has been removed or resolved after applying patches while regression testing is done to ensure that the modification in the software doesn’t impacts or affects the existing functionalities and originality of the software.
How to categorize bugs or defects found in the software?
A bug or a defect may be categorized on the priority and severity basis, where priority defines the need to correct or remove defect, from business perspective, whereas severity states the need to resolve or eliminate defect from software requirement and quality perspective.
What is the importance of test data?
Test data is used to drive the testing process, where diverse types of test data as inputs are provided to the system to test the response, behaviour and output of the system, which may be desirable or unexpected.
Why agile testing approach is preferred over traditional way of testing?
Agile testing follows the agile model of development, which requires no or less documentation and provides the scope of considering and implementing the dynamic and changing requirements along with the direct involvement of client or customer to work on their regular feedbacks and requirements to provide software in multiple and short iterative cycles.
What are the parameters to evaluate and assess the performance of the software?
Parameters which are used to evaluate and assess the performance of the software are active defects, authored tests, automated tests, requirement coverage, no. of defects fixed/day, tests passed, rejected defects, severe defects, reviewed requirements, test executed and many more.
How important is the localization and globalization testing of a software application?
Globalization and localization testing ensures the software product features and standards to be globally accepted by the world wide users and to meet the need and requirements of the users belonging to a particular culture, area, region, country or locale, respectively.
What is the difference between verification and validation approach of software testing?
Verification is done throughout the development phase on the software under development whereas validation is performed over final product produced after the development process with respect to specified requirement and specification.
Does test strategy and test plan define the same purpose?
Yes, the end purpose of test strategy and test plan is same i.e. to works as a guide or manual to carry out the software testing process, but still they both differs.
Which is better approach to perform regression testing: manual or automation?
Automation would provide better advantage in comparison to manual for performing regression testing.
What is bug life cycle?
Bug or Defect life cycle describes the whole journey or the life of a defect through various stages or phases, right from when it is identified and till its closure.
What are the different types of experience based testing techniques?
Error guessing, checklist based testing, exploratory testing, attack testing.
Whether a software application can be 100% tested?
No, as one of the principles of software testing states that exhaustive testing is not possible.
Why exploratory testing is preferred and used in the agile methodology?
As agile methodology requires the speedy execution of the processes through small iterative cycles, thereby calls for the quick, and exploratory testing which does not depends on the documentation work and is carried out by tester through gradual understanding of the software, suits best for the agile environment.
Difference between load and stress testing.
The primary purpose of load and stress testing is to test system’s performance, behaviour and response under different varied load. However, stress testing is an extreme or brutal form of load testing where a system under increasing load is subjected to certain unfavourable conditions like cut down in resources, short or limited time period for execution of task and various such things.
What is data driven testing?
As the name specifies, data driven testing is a type of testing, especially used in the automation, where testing is carried out and drive by the defined sets of inputs and their corresponding expected output.
When to start and stop testing?
Basically, on the availability of software build, testing process starts. However, testing may be started early with the development process, as soon as the requirements are gathered and available. Moreover, testing depends upon the requirement of the software development model like in waterfall model, testing is done in the testing phase, whereas in agile testing is carried out in multiple and short iteration cycle.
Testing is an infinite process as it is impossible to make a software 100% bug free. But still, there are certain conditions specified to stop testing such as:
Whether exhaustive software testing is possible?
- Complete execution of the test suites and scripts.
- Meeting the specified exit criteria for a test.
- High priority and severity bugs are identified and resolved.
- Complete testing of the functionalities and features.
What are the merits of using the traceability matrix?
The primary advantage of using the traceability matrix is that it maps the all the specified requirements with that to test cases, thereby ensures complete test coverage.
What is software testability?
Software testability comprises of various artifacts which gives the estimation about the efforts and time required in the execution of a particular testing activity or process.
What is positive and negative testing?
Positive testing is the activity to test the intended and correct functioning of the system on being fed with valid and appropriate input data whereas negative testing evaluates the system’s behaviour and response in the presence of invalid input data.
Brief out different forms of risks involved in software testing.
Different types of risks involved in software testing are budget risk, technical risk, operational risk, scheduled risk and marketing risk.
Why cookie testing?
Cookie is used to store the personal data and information of a user at server location, which is later used for making connections to web pages by the browsers, and thus it is essential to test these cookies.
What constitutes a test case?
A test case consists of several components. Some of them are test suite id, test case id, description, pre-requisites, test procedure, test data, expected results, test environment.
What are the roles and responsibilities of a tester or a QA engineer?
A QA engineer has multiple roles and is bounded to several responsibilities such as defining quality parameters, describing test strategy, executing test, leading the team, reporting the defects or test results.
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 of their thinking ability and vision to carry out and drive the testing process.
Difference between error, defect and failure.
In the software engineering, error defines the mistake done by the programmers. Defect reflects the introduction of bugs at production site and results into deviation in results from its expected output due to programming mistakes. Failure shows the system’s inability to execute functionalities due to presence of defect. i.e. defect explored by the user.
Whether security testing and penetration testing are similar terms?
No, but both testing types ensure the security mechanism of the software. However, penetration testing is a form of security testing which is done with the purpose to attack the system to ensure not only the security features but also its defensive mechanism.
Distinguish between priority and severity.
Priority defines the business need to fix or remove identified defect whereas severity is used to describe the impact of a defect on the functioning of a system.
What is test harness?
Test harness is a term used to collectively define various inputs and resources required in executing the tests, especially the automated tests to monitor and assess the behaviour and output of the system under different varied conditions and factors. Thus, test harness may include test data, software, hardware and many such things.
What constitutes a test report?
A test report may comprise of following elements:
What are the test closure activities?
- Test summary
- Logged defects
- Exit criteria
- Resources used
Test closure activities are carried out the after the successful delivery or release of the software product. This includes collection of various data, information, testwares pertaining to software testing phase so as to determine and assess the impact of testing on the product.
List out various methodologies or techniques used under static testing.
Whether test coverage and code coverage are similar terms?
- Technical reviews
- Informal reviews
No, code coverage amounts the percentage of code covered during software execution whereas test coverage concerns with the test cases to cover specified functionality and requirement.
List out different approaches and methods to design tests.
Broadly, there are different ways along with their sub techniques to design test cases, as mentioned below
How system testing is different to acceptance testing?
- Black Box design technique- BVA, Equivalence Partitioning, use case testing.
- White Box design technique- statement coverage, path coverage, branch coverage
- Experience based technique- error guessing, exploratory testing
System testing is done with the perspective to test the system against the specified requirements and specification whereas acceptance testing ensures the readiness of the system to meet the needs and expectations of a user.
Distinguish between use case and test case.
Both use case and test case is used in the software testing. Use case depicts and defines the user scenarios including various possible path taken by the system under different conditions and circumstances to execute a particular task and functionality. On the other side, test case is a document based on the software and business requirements and specification to verify and validate the software functioning.
What is the need of content testing?
In the present era, content plays a major role in creating and maintaining the interest of the users. Further, the quality content attracts the audience, makes them convinced or motivated over certain things, and thus is a productive input for the marketing purpose. Thus, content testing is a must testing to make your software content suitable for your targeted users.
List out different types of documentation/documents used in the software testing.
What is test deliverables?
- Test plan
- Test scenario
- Test cases
- Traceability Matrix
- Test Log and Report
Test deliverables are the end products of a complete software testing process- prior, during and after the testing, which is used to impart testing analysis, details and outcomes to the client.
What is fuzz testing?
Fuzz testing is used to discover coding flaws and security loopholes by subjecting system with the large amount of random data with the intent to break the system.
How testing is different with respect to debugging?
Testing is done with the purpose of identifying and locating the defects by the testing team whereas debugging is done by the developers to fix or correct the defects.
What is the importance of database testing?
Database is an inherited component of a software application as it works as a backend system of the application and stores different types of data and information from multiple sources. Thus, it is crucial to test the database to ensure integrity, validity, accuracy and security of the stored data.
What are the different types of test coverage techniques?
Why and how to prioritize test cases?
- Statement Coverage
- Branch Coverage
- Decision Coverage
- Path Coverage
Due to abundance of test cases for the execution within the given testing deadline arises the need to prioritize test cases. Test prioritization involves the reduction in the number of test cases, and selecting & prioritizing only those which are based on some specific criteria.
How to write a test case?
Test cases should be effective enough to cover each and every feature and quality aspect of software and able to provide complete test coverage with respect to specified requirements and specifications.
How to measure the software quality?
There are certain specified parameters, namely software quality metrics which is used to assess the software quality. These are product metrics, process metrics and project metrics.
What are the different types of software quality model?
What different types of testing may be considered and used for testing the web applications?
- Mc Call's Model
- Boehm Model
- FURPS Model
- IEEE Model
- SATC's Model
- Ghezzi Model
- Capability Maturity Model
- Dromey's quality Model
- ISO-9126-1 quality model
What is pair testing?
- Functionality testing
- Compatibility testing
- Usability testing
- Database testing
- Performance testing
- Accessibility testing
Pair testing is a type of ad-hoc testing where pair of testers or tester and developer or tester & user is being formed which are responsible for carrying out the testing of the same software product on the same machine.