Software quality assurance interview questions for freshers




















In those cases, we have to decide whether the testers have tested the product enough or not. There are many factors involved in real-time projects to decide when to stop testing:. Adhoc testing is an informal way of testing the software. It does not follow the formal process like requirement documents, test plan, test cases, etc.

Both monkey testing and adhoc testing follows the informal approach, but in monkey testing, we do not need to have deep knowledge of the software. However, to perform adhoc testing, testers should have a deep knowledge of the software. Acceptance testing is performed by the users or customers to check whether it meets their requirements or not.

The bug life cycle is also known as the defect life cycle. Bug life cycle is a specific set of states that a bug goes through. The number of states that a defect goes through varies from project to project. Once the bug is posted by the tester, the lead of the tester approves the bug and assigns the bug to the developing team. Tester does the retesting of the code at this stage to check whether the defect is fixed by the developer or not and change the status to retest. If the bug persists even after the developer has fixed the bug, then tester changes the status to Reopen and once again bug goes through the bug life cycle.

The tester retests the bug after it got fixed by the developer if no bug found then it changes the status to Verified.

If the defect is repeated twice or the defect corresponds to the same concept of the previous bug, then it changes the status to Duplicate. If the developer feels that the defect is not a genuine defect, then it changes the status to Rejected.

If the bug is not of higher priority and can be solved in the next release, then the status changes to Deferred.

JavaTpoint offers too many high quality services. Mail us on [email protected] , to get more information about given services. Please mail your requirement at [email protected] Duration: 1 week to 2 week. All Interview. QA follows the PDCA cycles: Plan The plan is a phase in Quality Assurance in which the organization determines the processes which are required to build a high-quality software product.

Do Do is a phase of development and testing the processes. Check This phase is used for monitoring the processes and verifies whether these processes meet the user requirements or not. Act The Act is a phase for implementing the actions required to improve the processes.

The following is the list of differences between Quality Assurance and Software testing: Quality Assurance Software testing Activities Quality Assurance is a set of activities used to ensure that the developed software meets all the user requirements.

Software testing is an activity performed after the development phase to check whether the actual results match the expected results to ensure that the software is bug-free.

In short, we can say that software testing is verification of application under test. Activities It involves activities that include the implementation of processes, procedures, and standards. It involves activities that include verification of testing. Orientation It is a process-oriented, i. It is a product-oriented, i. The main objective of software testing is to find the bugs in the developed software. There are five different solutions for the software development problem.

The requirements for software development should be clear, complete, and agreed by all, setting up the requirements criteria. Next thing is the realistic schedule like time for planning, designing, testing, fixing bugs, and re-testing. It requires sufficient testing, starts the testing immediately after one or more module development.

Use of group communication tools. Use rapid prototype during the design phase so that it can be easy for the customer to find what to expect. The following are the types of documents in Software Quality Assurance: Requirement Document All the functionalities are to be added in the application are documented in terms of Requirements, and the document is known as Requirement document.

Test Metrics Test Metrics is a quantitative measure that determines the quality and effectiveness of the testing process. Test plan It defines the strategy which will be applied to test an application, the resources that will be used, the test environment in which testing will be performed, and scheduling of test activities will be done. Test cases A test case is a set of steps, and conditions used at the time of testing.

Traceability matrix Traceability matrix is a table that traces and maps the user requirements with test cases. Test scenario A test scenario is a collection set of test cases which helps the testing team to determine the positive and negative aspects of a project. Test Driven Development cycle: Write the test cases Execute the test cases If the test case fails, then changes are made to make it correct Repeat the process 8 What is traceability matrix?

Differences in responsibilities are as: Sr. QA Responsibility Programmer Responsibility 1. QA team is concerned for process Quality Programmers are concerned for product quality 2. QA ensures that the processes used for developing the product of high quality Programmers used these processes so that the end product is of good quality Any issue found during the execution of the process by the programmers is communicated to the QA so that they can improve the process.

Verification Validation Verification is the process of evaluating the steps during the development phase to determine whether they meet the user requirements or not. Validation is the process of evaluating the product after the development process to determine whether it meets the specified requirement. Verification is static testing. Validation is dynamic testing. Verification testing is performed before validation.

Validation is performed after verification. It does not involve in executing the code. It involves in executing the code. It involves activities such as reviews, walkthroughs, inspections, and desk checking, etc.

Agile Testing means to quickly validation of the client requirements and make the application of good quality user interface. When the build is released to the testing team, testing of the application is started to find the bugs.

As a Tester, we need to focus on the customer or end user requirements. We put the efforts to deliver the quality product in spite of short time frame which will further help in reducing the cost of development and test feedback will be implemented in the code which will avoid the defects coming from the end user. Describe Use Case Testing. Use Case: A use case is a description of the process which is performed by the end user for a particular task. Use case contains a sequence of step which is performed by the end user to complete a specific task or a step by step process that describe how the application and end user interact with each other.

Use case is written by the user point of view. Use case Testing: the use case testing uses this use case to evaluate the application. So that, the tester can examines all the functionalities of the application.

Use case testing cover whole application, tester performs this testing in step by step process to complete one task. What type of tests you perform on the web based application? For web application we perform following time of test: 1. Functionality Testing. Usability Testing. Navigation Testing. Configuration and Compatibility testing.

Reliability and Availability Testing. Performance Testing. Load and Stress Testing. Security Testing. What is Gantt Chart? A Gantt Chart is used to represent a project schedule that includes duration of individual tasks or phases, their dependencies and ordering.

How to find all the Bugs during first round of Testing? There could be several reasons for not debugging the entire bug in the first round of testing process. Debugging the showstopper in the first or second build is almost impossible. A found defect can cover up the other defects in the application. The thread which leads to on defect could be redirected to another defect, as the tester find the bug and lock that bug in report and after fixing of those bugs new bugs may also arises.

It is difficult to keep testing on a known defective application. That is the reason we cannot find all the bug in first run and also we cannot perform Exhaustive testing. URD is very helpful to determine the requirement of the user.

The SRS document only contains the requirement of the user, but tester can also determine the requirement form the product. SRS tell us on which platform our software is going to be used and on basis of this we perform the test on the application. Some time end user want to know what type of testing we are going to execute on the application for this we can send our test plan to the client.

What is the purpose of test strategy? We need Test Strategy for the following reason: 1. To have a signed, sealed, and delivered document, where the document contains details about the testing methodology, test plan, and test cases. Test strategy document tells us how the software product will be tested. Test strategy document helps to review the test plan with the project team members. It describes the roles, responsibilities and the resources required for the test and schedule.

When we create a test strategy document, we have to put into writing any testing issues requiring resolution. The test strategy is decided first, before lower level decisions are made on the test plan, test design, and other testing issues.

What are the dimensions of the Risks? The dimensions of the risk are described below: Schedule: Unrealistic schedules. Client: Ambiguous requirements definition, requirement and not clear, changes in the requirement etc. Human Resources: Non-availability of sufficient resources with the skill level expected in the project. System Resources: Non-availability of procuring all critical computer resources either hardware and software tools or licenses for software will have an adverse impact.

Quality: Compound factors like lack of resources along with a tight delivery schedule and frequent changes to requirements will have an impact on the quality of the product tested. How to Estimate Testing effort? Test Cases per a use case Step 4 : Set Avg. How to create requirements test matrix template? For a requirements test matrix template we perform following step: Step 1: Find out number of requirements. Step 2: Find out number of test cases. Step 3: Create a table based on these.

Let we have 10 requirements and 40 test cases, then we create a table of 11 rows and 41 columns. Step 4: On the first column of table copy all your 10 requirement numbers, and paste them into rows 2 through 11 of the table. Step 5: Now copy all 40 test case numbers, and paste them into columns 2 through 41 of the table. Step 6: Examine each of your 40 test cases, determine which of the 10 requirements they satisfy.

Can you perform regression testing performed manually? Yes, we can perform regression testing manually, but it requires lots of effort. To choose the way of doing the regression testing is totally depends on the initial testing approach. If the initial testing approach was manual testing, then the regression testing is usually performed manually.

In case, if the initial testing approach was automated testing, then the regression testing is usually performed by automated testing.

Automated regression testing is very easy task. You are a tester. Now How will you choose which defect to remove in defects? First thing testers are not responsible for fixing the bug they are only responsible for debugging the bug and prioritizing those bugs. These bugs are now reported in bug report template with the severity and priority of the bug.

Tester assigns severity level to the defects depending upon their impact on other parts of application. Every bug has its severity and priority values assign by tester. If a defect does not allow you to go ahead and test the product, it is critical one so it has to be fixed as soon as possible.

How do you perform integration testing? Integration testing is black box testing. Integration testing focuses on the interfaces between units, to make sure the units work together. For integration testing we ensure that all units testing of the each component is performed earlier.

Integration testing begins only after the unit testing. The purpose of integration testing is to ensure different components of the application interact with each other. So that, components work as per the customer requirements. Test cases are developed with the purpose of exercising the interfaces between the components.

Integration testing is considered complete, when actual results and expected results are same. What is the testing lifecycle? What is good code? A good code is code that works. The good code must not contain the defect or bug and is readable by other developers and easily maintainable.

Organizations have coding standards all developers should follow, and also every programmer and software engineer has different ideas about what is best and what are too many or too few rules. We need to keep in mind that excessive use of rules can decrease both productivity and creativity.

Peer reviews and code analysis tools can be used to check for problems and enforce standards. What are the main attributes of test automation? After they opened a malfunctioning piece of hardware, they found an insect stuck in the relay. Image Source: Link. All software has a target user. A user story describes the user's motivations and what they are trying to accomplish by using the software.

Finally, it shows how the user uses the application. It ignores the design and implementation details. A user story aims to focus on the value provided to the end-user instead of the exact inputs they might enter and the expected output. In a user story, the tester creates user personas with real names and characteristics and tries to simulate a real-life interaction with the software. A user story often helps fish out hidden problems that are often not revealed by more formal testing processes.

Whenever a new build of the software is released, the tester updates the test environment with the latest build and runs the regression tests suite. Once it passes, the tester moves on to testing new functionality. Though it varies depending on the size and structure of the software development teams, typically, a bug can be assigned the following types of severities, going from low to high:. In black-box testing, the tester views the software as a black box, ignoring all the internal structure and behavior.

Their only concern is the input provided to the system and the generated output. White-box testing is an alternative strategy to black-box testing, in which a tester views the system as a transparent box. They are allowed to observe the internal implementation of the system, which guides the test. Typically, the software developers perform the white-box testing during the development phase.

In white-box testing, we assume that the tester has some programming knowledge. They try to test each possible branch a program could take in a running system. Before you ship the software to the customers, the internal testing team performs alpha testing. Alpha testing is part of the user acceptance testing. Its goal is to identify bugs before the customers start using the software.

Once you ship the software to the customers after alpha testing, the software's actual users perform the beta testing in a real production environment. It is one of the final components of user acceptance testing. Beta testing is helpful to get feedback from real people using your software in real environments. With the first approach, the tourist follows a predetermined plan and executes it.

Though they may visit famous spots, they might miss out on hidden, more exciting places in the city. With the second approach, the tourist wanders around the city and might encounter strange and exotic places that the itinerary would have missed. A tester is similar to a tourist when they are testing software. They can follow a strict set of test cases and test the software according to them, with the provided inputs and outputs, or they can explore the software.

When a tester doesn't use the test scripts or a predefined test plan and randomly tests the software, it is called exploratory testing. As the name suggests, the tester is exploring the software as an end-user would. It's a form of black-box testing. In exploratory testing, the tester interacts with the software in whatever manner they want and follows the software's instructions to navigate various paths and functionality.

They don't have a strict plan at hand. Exploratory testing primarily focuses on behavioral testing. It is effective for getting familiar with new software features.

It also provides a high-level overview of the system that helps evaluate and quickly learn the software. Though it seems random, exploratory testing can be powerful in an experienced and skilled tester's hands.

As it's performed without any preconceived notions of what software should and shouldn't do, it allows greater flexibility to the tester to discover hidden paths and problems along those paths.

End to End testing is the process of testing a software system from start to finish. The tester tests the software just like an end-user would. For example, to test a desktop software, the tester would install the software as the user would, open it, use the application as intended, and verify the behavior. Same for a web application. There is an important difference between end-to-end testing vs. In end-to-end testing, the software is tested along with all its dependencies and integrations, such as databases, networks, file systems, and other external services.

Static testing is a technique in which you test the software without actually executing it. It involves doing code walkthroughs, code reviews, peer-reviews, or using sophisticated tools such as eslint, StyleCop to perform static analysis of the source code.

Static testing is typically performed during software development. The tester runs the software in a test environment and goes through all the steps involved, entering the inputs and verifying the actual output with the expected result. The tester writes code that makes an API request to the server that provides the API, provides the required inputs, collects the output from the response, and matches the actual output with the expected output.

It does not involve the look and feel, accessibility, or usability of the software. API testing can be automated to make it repeatable and reproducible each time they run. Code coverage is one of the important testing metrics. It indicates the ratio of the codebase under unit tests to the entire codebase. It just means that the unit tests cover all the code.

Latent defect, as the name suggests, is a type of defect or bug which has been in the software system for a long time but is discovered now. A latent defect is an existing defect that can be found effectively with inspections. It usually remains hidden or dormant and is a low-priority defect. Validation: It is defined as a process that involves dynamic testing of software products by running it.

This process validates whether we are building the right software that meets that customer requirement or not. It involves various activities like system testing, integration testing, user acceptance testing, and unit testing. Verification: It is defined as a process that involves analyzing the documents. This process verifies whether the software conforms to specifications or not. Its ultimate goal is to ensure the quality of software products, design, architecture, etc.

Testbed is generally referred to as a digital platform that is used for testing an application. It includes an operating system, hardware, network configuration, database, software application under test, and all other software-related issues.

Some of the commonly applied documentation artifacts that are associated with software testing include:. Test case is basically a document that includes a set of test data, preconditions, expected results, and postconditions. This document is specially developed for a specific test scenario to ensure whether the software product meets the specific requirement or not.

In manual testing, test cases are executed manually by a tester without using any of the automated tools. One can easily identify loopholes in the specifications while developing test cases. There are various attributes of test cases that make them more reliable, clear, and concise, avoiding any sort of redundancy. Some of them are given below:. A test plan is basically a dynamic document monitored and controlled by the testing manager.

The success of a testing project totally depends upon a well-written test plan document that describes software testing scope and activities. It basically serves as a blueprint that outlines the what, when, how, and more of the entire test process. Test report is basically a document that includes a total summary of testing objectives, activities, and results. It is very much required to reflect testing results and gives an opportunity to estimate testing results quickly.

It helps us to decide whether the product is ready for release or not. It also helps us determine the current status of the project and the quality of the product.

A test report must include the following details:. Test deliverables, also known as test artifacts, are basically a list of all of the documents, tools, and other components that are given to the stakeholders of a software project during the SDLC. Test deliverables are maintained and developed in support of the test.

At every phase of SDLC, there are different deliverables as given below:. It generally involves both verification activities and validation activities. In this, different activities are executed in a specific order throughout the software testing process. Error : It is defined as a programming mistake in coding because of which we can't compile or run a program.

Defect : It is defined as the variation or difference between the actual result and the expected result founded by a tester or developer. The defect is basically detected after the product goes into production and is resolved in the development phase only.

Bug : It is defined as a fault or mismatch in a software system that is detected during the testing phase. It has an impact on software functionality and performance. Use case testing is basically defined as a technique that helps developers and testers to identify test cases that exercise the whole system on each transaction basis right from start to finish.

It is a part of black-box testing that is used widely in developing tests or systems for acceptable levels. Test Matrix: It is referred to as a testing tool that is used to capture actual quality, effort, resources, plan, and time required to capture all the phases of software testing.

It only covers the testing phase of the life cycle. Requirement Traceability Matrix RTM : It is referred to as a document, usually present in the form table, that is used to trace and demonstrate the relationship between the requirements and other artifacts of the project right from start to end.

In simple words, it maps between test cases and customer requirements. Positive Testing : It is a type of testing process where the software application is validated against the valid data sets as an input. It is simply used to check whether the application does what it is supposed to do or not. Negative Testing : It is a type of testing process where the software application is validated against invalid data sets as an input.

It is simply used to check whether the system shows an error when it is supposed to do or not. In test case execution, negative testing is considered a very crucial factor. A critical bug is referred to as a bug that affects the majority of the functionality of the given application.

It does not disturb or block the testing of other parts of the given application. A bug is only classified as critical when it halts the core operations of the software. UAT, also known as end-user testing, is basically a testing methodology performed by the end-users or clients for the approval of the production release. It is one of the last stages of the SDLC and is only performed after the software has been tested thoroughly.

Its main purpose is to validate end-to-end business flow. It makes sure that the developed software meets all the requirements to float into the market or not.

All the components of the software are generally tested as a whole to make sure that the overall product fulfills the requirements that are specified. So, no. Monkey Testing : Monkey testing, also known as Random Testing, is a type of software testing technique in which data is generated randomly using a tool or some automated mechanism.

The system is tested using this randomly generated input, and results are analyzed accordingly. There are no such rules in this type of testing. Performance Testing : It is a type of non-functional software testing technique that is used to determine the system parameters like speed, scalability, and stability under different workload conditions. Its main purpose is to eliminate performance bottlenecks, not to find bugs.

Some of the key parameters of performance testing include:. Test driver and test stub, both are types of test harness that are used to provide a simulation environment for testing a module or component. They both are dummy modules specially created for test purposes. Test stubs : Test stubs are used in a top-down testing approach and allow testing of the upper levels of the code when the lower levels of the code are not developed yet.

Test drivers : Test drivers are used in a bottom-up testing approach and allow testing of the lower levels of the code when the upper levels of the code are not developed yet.

Endurance testing, also known as Soak testing, is a type of performance testing usually performed to check the performance of the system that is under constant use. Its main purpose is to determine whether a system can sustain a continuous high load or not.

Memory utilization is also monitored to identify potential leaks during this testing. Some of the endurance testing tools include:. Localization testing is a type of testing that is performed to ensure whether the software product offers full functionality and usability in a particular locale or not. It is simply used to verify the accuracy and suitability of the content. It is not only about linguistics, but also about traditions, common herd behavior, and other similar factors.

It generally deals with the functionality and GUI of the application. Path testing is a type of testing specially used to design test cases. In this type of testing, the control flow graph of a program is specially designed to identify a set of linearly independent paths of execution. Its main objective is to ensure that each path is covered and executed well.

It also reduces or minimizes the occurrence of redundant tests. Baseline Testing : It is a type of non-functional testing in which a set of tests are run to capture performance information. Using this gathered information, we can make required changes in the application and ultimately improve the performance and capabilities of the application. In general, it refers to a benchmark that usually forms the base of any new creation. During this testing, many errors are discovered and resolved.

Benchmark Testing : It is a type of testing that involves both the developers and DBAs Database Administrators to determine current performance information. Using this information, one can improve the performance of the same by matching it with the benchmarks industry standards. Its main objective is to compare the present and future software releases with their specific benchmark.

Fuzz testing is a software testing technique in which a large amount of random data, called fuzz, is provided as input to the application simply to detect or discover security loopholes and coding errors in the software application.

It is more useful for bigger projects but it only detects a serious fault or defect. It is simply used to check the vulnerability of software and gives more effective results when used with beta testing, black box testing, etc. Data flow testing is a type of structural testing that is used to analyze the flow of data in the program. In this, a programmer can perform various tests on data values and variables. It helps us in the following ways:. Agile testing is basically a software testing process that uses agile methodologies i.

It evaluates the software from the customer's point of view. It does not require any development team to complete coding for starting QA, instead of testing and coding can go hand in hand. Features are tested as they are developed. Some of its advantages include:. Selenium is a web browser automation tool that automates the test suits you need to run on a web browser. In software, many errors occur near the edges of the range of the data values. Typically, developers miss these boundary cases because they follow a happy path when developing and testing.

Boundary value analysis helps to discover the errors caused by extreme values. The tester chooses the test data at and immediately above and below the boundaries of the input domain of the data. For example, if an input field expects a string of 20 characters long, the tester tests it with strings of lengths 19, 20, and The dictionary definition of regression is the act of going back to a previous place or state.

In software, regression implies that a feature that used to work suddenly stopped working after a developer added a new code or functionality to the software. Regression problems are pervasive in the software industry, as new features are getting added all the time. Developers don't build these features in isolation, separate from the existing code. Instead, the new code interacts with the legacy code and modifies it in various ways, introducing side effects, whether intended or not.

As a result, there is always a chance that introducing new changes may negatively impact a working feature. It's important to keep in mind that even a small change has the potential to cause regression. Regression testing helps ensure that the new code or modifications to the existing code don't break the present behavior.

It allows the tester to verify that the new code plays well with the legacy code. What do you know about data-driven testing? What are the different types of data-driven testing? The five different types of data-driven testing are: Database tables Comma-separated values files Table variables Script arrays Excel sheets What are the different stages of the Defect Life Cycle? The nine different stages of the Defect Life Cycle are: New: when a new defect is raised and still to be verified.

Assigned: this defect is assigned to a development team and yet to be fixed. Active: in this phase, the developer tries to resolve the fault. Test: When the developer fixes the flaw, the software will be tested in this phase. Verified: in this phase, the defect is retested and verified.

Closed: this is the final stage of the defect. We can close it after retesting the Quality Assurance. Reopen: If the defect is not fixed, Quality assurance will reopen the defect to resolve it. Deferred : when the defect is not addressed within a particular cycle, it is deferred to a later release. Rejected: a defect can be rejected for three reasons: NOT a defect, Non-reproducible, and same defect. List the contents of test cases and test plans?

Contents of test plans, as well as test cases, are: Testing scope Risk factors Testing objectives Deliverables Frame testing The criteria for entry and exit Environment Test reasons What is the complete form of CURD? List the challenges that a tester faces throughout software testing? The challenges that a tester face throughout the software testing are: Testing becomes challenging if there are no skilled testers on the team.

Regression testing. Testing is challenging if the client constantly changes his requirements. If there are no good tools and resources, then testing software is very challenging. Sometimes when the application is vast, it is complex to test the entire application. What are the different tools needed during the development phase? Tools needed during the development phase of the software are: Automation tools Defect management tools Test management tools Project management tools What are the various solutions for Software development problems?

Multiple solutions for Software development are: Setting up the software criteria so that the needs are very clear, greedy by everyone, and complete.

Scheduling must be accurate for planning, creating, software testing, fixing bugs, and software retesting. Using group communication tools will improve the development process. Execute those test cases. If the execution of test cases fails, the modification must be done.

After modification, repeat the entire process. Who are smart monkey testers? Smart monkey testers know precisely where the application pages will redirect them; they also understand the provided inputs. Who are Dumb monkey testers? Dumb monkey testers do not have any idea of the application. Dumb monkey testers do not know about pages and applications or the inputs; they randomly provide random inputs without knowing the start and endpoints.

List the elements included in the test strategy? Elements included in the test strategy are: Introduction Schedule Scope Resource The elements mentioned above are used for the test activities. Test priorities Test activities Test planning Test tools What is branch testing?

What is boundary testing? These extreme ends may be: Lower-upper Start-end Just inside-Just outside minimum- maximum What do you know about configuration management? The essential aspects of configuration management are: Revision control Release control Change control



0コメント

  • 1000 / 1000