Interview questions on software testing pdf
Some of these bottlenecks include: - Increased time - Increased resources - Appropriate monitors to determine performance. Situation: An application is under development. How will you develop a test case for it? When the application is under development, the Business Requirement Document is used as the primary document to write the test cases. If some complex features exist in the application, the Technical Design Document can also be used. It is usually available with the developers.
Master Test Plan - i. It is required in all projects. It provides the strategy to be used to test the entire project. It provides the details like the modules to be tested, the time frame, the resources, hardware dependencies, and any training required. It also involves a block diagram showing how the testing takes place.
It also has the location of test plan for each module and the documents to be referred for testing purpose. Test Plan - - It is required for each module in white box testing - In Black Box testing, it is required for each feature - It carries information about test cases, strategy and stubs used to test a particular module.
What are the repositories used by QTP to store object properties? QTP uses two types of repositories to store the object properties. Shared object repository: A global object repository for the application. It stores the objects properties of entire application like Global GUI map in winrunner. Per action object repository: It stores the object properties of a particular action only. Explain parameterization in QTP. In QTP, - Values from one action to another or one test to another test can be passed.
This is called Action Parameterization. What can be the main reasons fornot being able to reproduce a bug? What should be done if such a bug is found? A bug can not be reproduced for following reasons: 1. Low memory. Pointing to non available memory location.
Things happening in a particular sequence. Following information should be passed to the developer if such a bug is found: 1. Any other applications that were running along with the application under discussion. Time for which the application was being used. Crash report or related information.
Sequence of activities followed before the application behaved in this manner. Did the bug show up while performing a normal workflow or complete workflow? How many times did it happen? Impact of the bug. Common problems with software automation Software automation problem - Automation often requires recording the sequence of operations you need to perform in order to execute a particular We want more testing interview questions and answers.
What is keyword view and Expert view in QTP? Advanced testers can view and edit their tests in the Expert View, which reveals the underlying industry-standard VBScript that QuickTest Professional automatically generates. Any changes made in the Expert View are automatically synchronized with the Keyword View. What is the other name of Modification Request? Quality Center, b. Test Director, c. Rational ClearQuest, d.
It is fast. It can perform regression testing. What is KDT? Keyword Driven Testing. What information is important to formulate a test plan? The business requirement document. Suppose the business requirements document is missing, how will you write a test plan? We will collect as much information as possible from following parties: - Business Analysts - Developers - Documentation of previous versions - Stake holders - Any prototypes What is the other name of User Acceptance Testing?
What are the primary techniques to design test cases for black box testing? Four primary techniques to design test cases for black box testing are: a. BVA Boundary value Analysis b. EP Equivalence Partitioning c. Decision Tables d. State Transition Tables and diagrams What are the techniques to test the Internal structure of the application in white box testing? The two primary techniques to do this are: a. Code Coverage b. Path Coverage List some common tools used for functional testing.
QTP b. IBM Rational Robot c. Selenium d. Test Complete e. How much testing is enough? Ans: D Which of the following is false? Objective Questions on Software Testing 1. Which of the following is the odd one out? Which of the following is a static test?
Which of the following is a black box design technique? Which of the following is not the integration strategy? Which of the following is NOT a reasonable test objective: a To find faults in the software b To give confidence in the software c To prove that the software has no faults d To find performance problems Ans: C 6.
Which of the following uses Impact Analysis most? Expected results are: a Only important in system testing b Most useful when specified in advance c Only used in component testing d Derived from the code Ans: B 8. Testing plays an integral part in any software development project.
The primary goal behind software testing is to get enough confidence that the software under testing produces the correct output for a given input. An important thing to keep in mind when learning about software testing is that testing does not improve software quality by itself. Testing is an indicator of quality, providing crucial feedback to the developers who created the software to take necessary action to fix the problems found in testing. This article provides the frequently asked interview questions by the interviewer for a Software Tester or Quality Assurance QA position.
Software testing comes into play at different times in different software development methodologies. There are two main methodologies in software development, namely Waterfall and Agile.
In a traditional waterfall software development model, requirements are gathered first. Then a specification document is created based on the document, which drives the design and development of the software. Finally, the testers conduct the testing at the end of the software development life cycle once the complete software system is built.
An agile software development model works in small iterations. You test the software in parallel as it is getting built. The developers build a small functionality according to the requirements. The testers test it and get customer feedback, which drives future development. It is impossible to exhaustively test software or prove the absence of errors, no matter how specific your test strategy is. There could be many more errors that the test might have missed.
It could easily mean ineffective or incomplete tests. Consider a simple program that takes a string as an input that is ten characters long. Since exhaustive testing is not practical, your best strategy as a tester is to pick the test cases that are most likely to find errors. Testing is sufficient when you have enough confidence to release the software and assume it will work as expected. You can test the software in many different ways. Some types of testing are conducted by software developers and some by specialized quality assurance staff.
Here are a few different kinds of software testing, along with a brief description of each. However, it doesn't mean that developers shouldn't test the software before sending it to the tester. Developer testing helps find many bugs that are caused by programming errors. These are hard to find for a tester because they don't always have access to the source code. Similar to software development, testing has its life cycle.
During the testing, a tester goes through the following activities. Any software tester's goal is to find out as many bugs and problems in the system so that the customers don't have to.
Hence, a good software tester should have a keen eye for detail. They should know the ins and outs of the software they are testing and push every aspect of the software to its limits, to identify bugs that are hard to find with the software's regular use.
Having the domain knowledge of the application is essential. If a tester doesn't understand the specific problems the software is trying to solve, they won't be able to test it thoroughly. A good tester should keep the end-user in mind when they are testing. Having empathy with the end-user helps the tester ensure that the software is accessible and usable.
Simultaneously, the tester should possess basic programming skills to think from a developer's perspective, which allows them to notice common programming errors such as null-references, out-of-memory errors, etc. Communication, both written and verbal, is an essential skill for a tester. A tester will frequently have to interact with both the developers and the management. They should be able to explain the bugs and problems found during testing to the developers. For each bug found, a good tester should provide a detailed bug report consisting of all the information a developer would need to fix that problem.
They should be able to make a good case to the management if they are uncomfortable releasing the software if it contains unresolved issues. Functional testing is a form of black-box testing. As the name suggests, it focuses on the software's functional requirements rather than its internal implementation. A functional requirement refers to required behavior in the system, in terms of its input and output.
It validates the software against the functional requirements or the specification, ignoring the non-functional attributes such as performance, usability, and reliability. During testing, a tester records their observations, findings, and other information useful to the developers or the management.
All this data belongs to a test record, also called a bug report. A detailed bug report is an important artifact produced during testing. It helps the team members with:. Here are a few bits of information that a good bug report should contain.
Image Source: Bugzilla. Non-functional testing tests the system's non-functional requirements, which refer to an attribute or quality of the system explicitly requested by the client. These include performance, security, scalability, and usability. Non-functional testing comes after functional testing. It tests the general characteristics unrelated to the functional requirements of the software. Non-functional testing ensures that the software is secure, scalable, high-performance, and won't crash under heavy load.
Testing metrics provide a high-level overview to the management or the developers on how the project is going and the next action steps. Test-Driven-Development TDD is a popular software development technique, first introduced by Kent Beck in his book with the same name, published in In TDD, a developer working on a feature first writes a failing test, then writes just enough code to make that test pass. Once they have a passing test, they add another failing test and then write just enough code to pass the failing test.
This cycle repeats until the developer has the fully working feature. If the code under the test has external dependencies such as database, files, or network, you can mock them to isolate the code.
In manual testing, a tester manually verifies the functionality of the software. The tester has a comprehensive list of all the test cases they should test, along with the test data. They go through each case, one by one. They launch the software as an end-user would, enter the input, and manually verify the output.
It may seem that manual testing is inefficient when compared to automated testing. It is slow, not repeatable in a consistent manner, and prone to human misjudgment. However, manual testing allows the tester to realistically test the software, using actual user data in a natural user environment, subject to similar external conditions.
Only a human, not a computer, can evaluate the usability and accessibility of the application and how it looks and feels to the end-user. It also gives a broader perspective of the system. Finally, some test scenarios just can't be automated and need to be manually tested. Though they all work primarily the same in implementing the web standards, there are subtle differences in all of them.
In cross-browser testing, a software tester launches the web application in all the supported browsers and tries to test the same functionality on all of them. This helps the programmer to fix the behavior in all the browsers where it doesn't work as intended.
As the name suggests, automated testing, which is also called test automation, is the programmatic execution of the tests. The tester uses an automation tool or software like Selenium to write code that performs the following tasks.
Once a test is automated, you can run it as often as you want, to check if any new code has broken it. It enables you to spend your time on other high-value tests, such as exploratory testing that help find bugs that an automated test would miss.
Humans get tired and bored from conducting the same tests repeatedly and seeing the same results. Software is much better at doing repetitive tasks without getting tired or making mistakes than a human operator would.
QA stands for Quality Assurance. In a software development team, a QA ensures that the software is thoroughly tested before releasing it to the end-users. QA activities are generally performed while the product is being developed and focuses on improving the software development process.
In many software organizations, a tester and a QA can be the same person, but they can be different depending on the organization's size. The goal of the QA is to ensure quality in the shipped software.
Its main aim is to ensure that the developed products meet the required standards or not. QC is a process in software engineering that is used to ensure Software product quality by testing and reviewing its functional and non-functional requirements.
QC activities are generally performed after the product is developed as it examines the quality of the end products and the final outcome.
A software bug is an error in the software that produces wrong results. A software tester tests the software to find bugs in it.
There are many causes for the bugs—for example, poor design, sloppy programming, lack of version control, or miscommunication. Throughout development, developers introduce hundreds or thousands of bugs in the system. The goal of the tester is to uncover those bugs. You can find a bug in many different ways, regardless of your role. When building the software, the software developer might notice the bug in another module, written by another developer or by themselves.
The tester actively tries to find the bugs as part of a routine testing process. Finally, the users could see the bugs when the software is in production.
All bugs, no matter how they are found, are recorded into a bug-tracking system. A triage team triages the bugs and assigns a priority to the bug, and assigns the bug to a software developer to fix it. Once the developer resolves the problem, they check in the code and mark that bug as ready for testing.
If not, they assign it to the same developer with a description of the exact steps to reproduce the bug. Some examples of popular bug-tracking systems include BugZilla, FogBugz, etc. 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. Automation testing is a process of executing tests automatically. It reduces human intervention to a great extent. Testing tools help in speeding up the testing tasks. These tools allow you to create test scripts to verify the application automatically and also to generate the test reports.
Quality Assurance QA refers to the planned and systematic way of monitoring the quality of the process which is followed to produce a quality product. QA tracks the test reports and modifies the process to meet the expectation. Quality Control QC is relevant to the quality of the product. QC not only finds the defects but suggests improvements too. Thus, a process that is set by QA is implemented by QC.
QC is the responsibility of the testing team. The aim of performing testing is to find bugs and make sure that they get fixed. Thus, it helps to maintain the quality of the product to be delivered to the customer. Choosing automated testing over manual testing depends on the following factors:. Bug release: A bug release is when a particular version of the software is released with a set of known bug s.
Performance is identified with achieving response time, throughput, and resource-utilization levels that meet the performance objectives for a project or a product. Monkey testing is a technique in software testing where the user tests the application by providing random inputs, checking the behavior of the application or trying to crash the application.
Exploratory testing is an approach to software testing, wherein testers learn simultaneously about the test design and test execution. In other words, it is a hands-on approach where testers are involved more in the test execution part than in planning. System testing is a black-box testing technique, used on a complete integrated system, where it will test the system compliance as per the requirement.
Test reports will help us find the current status of a project and its quality. This can help stakeholders and customers take necessary actions.
The complete documentation of test reports will help analyze different phases of the project. However, this will not cause any failure to the application because the conditions will never be met.
Above interview questions will help you clear the Selenium certification exam. This is informative and explains different ways to validate a code and different types of testing are well derived. Pretty good question and answers, I have read many sites but in this site covered all the important topics which is very helpful. Selection of questions are very good.. These are the most relevant questions faced by many people while interview.
Leave a Reply Cancel reply. Your email address will not be published. Read More.