What is QA?
Quality Assurance is the process of planning and defining the way of monitoring and implementing the quality (test) processes within a team and organization. This method basically defines and sets the quality standards of the projects.
(Or)
QA refers to the planned and systematic way of monitoring the quality of process which is followed to produce a quality product. QA tracks the outcomes and adjusts the process to meet the expectation.
What is QC?
Quality Control is the process of finding defects and providing suggestions to improve the quality of the software. The methods used by Quality Control are usually established by the quality assurance.
What is software testing?
Software Testing is the process of ensuring that product which is developed by the developer meets the user requirement. The motive to perform testing is to find the bugs and make sure that they get fixed.
What is a good test case?
A test case is a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly. Good test cases do only one thing at a time. They don’t overlap and are less complicated. They must be ‘atomic’.
What are the characteristics of a good test case?
Tests what the description says it will test
Separate the initiation steps
Has only the steps needed for its purpose
- Repeatable, self-standing
Same results no matter who tests it
Don’t rely on tester experience when using scripted test
No Pesticide Paradox presents
For both immediate and future testers
Forward to logs
Backward to a requirement
Returns the test environment to a start state
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.
What is the Difference between Test Plan and Test Strategy?
A test plan in software testing is the document that outlines the what, when, how, who, and more of a testing project. In general, it includes the objective and scope of the tests to be run. A test plan does not include the tests themselves – those are called test cases
Testing strategy is a general approach to the testing process rather than a method of devising particular system or component tests. Different testing strategies may be adopted depending on the type of system to be tested and the development process used. There are two different strategies available: Top-Down Testing and Bottom-Up Testing.
Define use case testing?
Use Case Testing is a functional black box testing technique that helps testers to identify test scenarios that exercise the whole system on each transaction basis from start to finish.
What is load testing?
A load test is usually conducted to understand the behavior of the system under a specific expected load. This load can be the expected concurrent number of users on the application performing a specific number of transactions within the set duration. This test will give out the response times of all the important business critical transactions.
Define Testware?
Test ware is a subset of software. It helps testers to test the performance of application. It plans, designs and executes tests during testing processes and procedures. Some of the features of Testware include inputs, scripts, and documents. Others are expected results, utilities and additional software necessary in testing.
Testware can also be defined as a combination of application software and utilities. These apps and utilities are vital in testing an individual software package. Testware is unique since it can be used for different purposes. Its various metrics enhance quality in testing. Its ability to accommodate different users makes testing easy.
What is stress testing?
Under stress testing, various activities to overload the existing resources with excess jobs are carried out in an attempt to break the system down.Stress testing refers to the testing of software or hardware to determine whether its performance is satisfactory under any extreme and unfavorable conditions, which may occur as a result of heavy network traffic, process loading, under clocking, overclocking and maximum requests for resource utilization
Have you used any Automation tools?
The answer to this question is very much exclusive to individual. Reply with all the tools and strategy of automation that you have used in your project.
What is test deliverables?
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 are Test Driver and Test Stub and why are they required?
A stub is called from the software component to be tested, it is used in Top-down approach. The driver calls a component to be tested, it is used in Bottom-up approach.
It is required when we need to test the interface between modules X and Y and we have developed only module X. So we cannot just test module X but if there is any dummy module we can use that dummy module to test module X. Now module B cannot receive or send data from module A directly. So in this case, we have to transmit data from one module to another module by some external features. This external feature is referred as Driver.
What is boundary testing?
Boundary tests are designed to check a program’s response to extreme input values. Extreme output values are generated by the input values. It is important to check that a program handles input values and output results correctly at the lower and upper boundaries. Test which focus on the boundary or limit conditions of the software being tested. (Some of these tests are stress tests).
What is integration testing?
Integrated components and there interfaces are tested as a group. The purpose behind integration testing is to check communication between integrated components is fine. By testing the components in groups, any faults in the way they communicate together can be identified. Integration testing helps in identifying the problems that occur when the individual components are combined i.e. it detects the problem in interface of the two components. No matter how well each component is running but if integration is not done properly, it will affect overall performance of software program.
Integration testing is done after unit testing. Integration testing is a software testing methodology used to test individual software components or units of code to verify interaction between various software components and detect interface defects.
Components are tested as a single group or organized in an iterative manner. After the
integration testing has been performed on the components, they are readily available for system testing Integration testing is level of software testing where integrated components and there interfaces are tested as a group.
The purpose behind integration testing is to check communication between integrated components is fine. By testing the components in groups, any faults in the way they communicate together can be identified. Integration testing helps in identifying the problems that occur when the individual components are combined i.e. it detects the problem in interface of the two components. No matter how well each component is running but if integration is not done properly, it will affect overall performance of software program. Integration testing is done after unit testing.
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 behavior 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’s your experience using Continuous Integration as part of the development process?
If this is applicable to your company, it is a great thing to hear that a candidate has worked with Jenkins or Bamboo CI. If he has set up these systems and can give recommendations to you on what worked and did not work in his previous jobs, the candidate has earned himself not only bonus points but a merit badge or two.
Do you know bug life cycle?
Yes, the time taken for the defeat to be closed or rejected or deferred is called as a bug life cycle.
Suppose you find a bug in production, how would you make sure that the same bug is not introduced again?
Best way is to immediately write a test case for the production defect and include it in the regression suite. This way we ensure that the bug does not get introduced again.
Also many a time we can also think of alternate test cases or similar kind of test case and include them in our planned execution.
What is the strategy for a successful Test automation plan?
A successful test automation plan should cover the following aspects
- Preparation of Automation Test Plan.
- Recording the scenario.
- Error handler incorporation.
- Script enhancement by inserting checkpoints and looping constructs.
- Debugging the script and fixing the issues.
- Re-running the script.
- Reporting the result.
How do you go about learning a new product?
This is perhaps the biggest challenge of being a QA engineer. They need to be comfortable and patient with learning complex software. They should be prepared to ask a lot of questions.
Do you think QA’s can also participate to resolve production issues?
Definitely!! It would be a good learning curve for QA’s to participate in resolving production issues. Many a time production issues could be resolved by clearing the logs or making some registry settings or by restarting the services. These kind of environmental issues could be very well fixed by the QA team.
Also If QAs have an insight on resolving the production issues, they may also include them while writing the test cases, and this way they can Contribute to improve quality and try to minimize the production defects.
What is negative testing? How is it different from positive testing?
Negative testing is a technique which validates that the system behaves gracefully in case of any invalid inputs.
For example, in case user enters any invalid data in a text box, system should display a proper message instead of technical message which the user does not understands.
Negative testing is different from positive testing in a way that positive testing validates that our system works as expected and compares the test results with the expected results.
Most of the time scenarios for negative testing are not mentioned in the functional requirement documents. As a QA we have to identify the negative scenarios and should have provisions to test those.
What are the different artifacts you refer when you write the test cases?
The main artifacts used are:
- Functional requirement specification
- Requirement understanding document
- Use Cases
- Wireframes
- User Stories
- Acceptance criteria
- Many a time UAT test cases
What are the different verification techniques?
Verification techniques are static in nature. There are 3 verification techniques:
Review, Inspection and walkthrough
How do you determine which piece of software require how much testing?
We can know this factor by finding out the Cyclomatic Complexity.
The technique helps to identify the below 3 questions for the programs / features
- This program testable?
- Is the feature understood by everyone?
- Is the program reliable enough?
As a QA we can use this technique to identify the “level” of our testing.
To what extent should developers do their own testing or do you believe testing is the responsibility of the QA team?
The answer to this question is really depending on the business environment you are working in. in today’s emerging test scenario, it is also the developer’s responsibility to perform at least some of his own code testing. Though it is not expected that he will have the capacity or that his focus should be to run through large test plans or test on a large stack of devices. However, without the responsibility to review and test his code, a sense of ownership will not develop.
We believe that results will improve more if all parties have access to test cases and are able to run and access them regularly to verify if the latest changes brought any regression
Do you know about bug leakage and bug release?
Bug release is when software or an application is handed over to the testing team knowing that the defect is present in a release. During this, the priority and severity of the bug are low, as it has to be fixed before the final handover.
Bug leakage is something, when the bug is discovered by the end users or customer, and missed by the testing team to detect while testing the software.
Tell us about the best bug of your test career?
Well since there are so many quality bugs I’ve discovered in my testing career that I can’t really remember the best one I found. What always surprises me is that you find so many different kinds of bugs so quick. It proved that having multiple competencies in the team are a great asset while testing.
The latest bug hunt I did was conducted on a product application which was already on the market for some time. Still, we found 21 bugs in 7 minutes! And yes even a crash! That is what amazes me.
Have you ever managed writing the test cases without having any documents?
Yes, many a time we have a situation where we have to write test cases without having any concrete documents. In that case, best way is to Collaborate with the BA and development team.
Dig into mails which have some information.
Dig into older test cases / regression suite
If the feature is new, try to read the wiki pages or help of the application to have an idea Sit with the developer and try to understand the changes being made. Based on your understanding, identify the test condition and send it to BA or stakeholders to review them.
For More:
How do you define a format of writing a good test case?
A test case has the below format:
- Test case ID
- Test case description
- Severity
- Priority
- Environment
- Build version
- Steps to execute
- Expected results
- Actual results
What do you think is a test plan? Have you written one before? What does it usually consist of?
A test plan is a sort of document which analyzes the resource, scope, approach and schedule of several testing activities. It will help you to find items that need to be tested, its features that need further testing, the risks that come with some and the solutions as well. Yes I have written a test plan before. It consists of history, contents, introduction, scope, overview and approach. The risks and assumptions are not left out either
Do you like the QA job? If yes, tell us why?
Yes I do like the QA job. The only reason behind this is because the job is process oriented. This means that here I have the opportunity to do try several things at the time. I can analyze the needed documents, test the application, write test plans and test cases, prepare reports and retest them once again if the need arises. My favorite task would be reducing defects. The more defects I find while working, the happier I will be.
What is the main role of QA testers in a project development?
The Quality Assurance testers are the essential players in testing. They assure quality by monitoring the entire development process. By monitoring, they track the outcomes of the testing process and goes ahead to adjust the process. This when the process is not in line with the intended purpose. Besides the monitoring role, QAs are responsible for overall planning and execution of the process.
They also create a timetable and enter into agreements regarding the Quality Assurance plan relating to an individual product. Regarding tracking of test cases, it is one of the roles of testers. The manager or officer in charge may assign other functions to testers.
Why use automated testing over manual testing?
Automated testing run much faster as compared to manual testing and therefore it is time-saving. Automated testing allows for the exploitation of the automation tool, unlike the manual testing. The re-usability of the automation script is possible with the application of automated testing. There is also frequency in use of the test case in automated testing alongside adaptability of it.
The manual testing is not suitable for comparison and for future reference due to extensive manual records to be evaluated.
Define 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 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 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 is difference between alpha and beta 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 types of requirements required in software testing?
Software/functional requirements, business requirements and user requirements.
If 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.
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 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 black box testing?
Black box testing is a testing strategy based solely on requirements and specifications. Black box testing requires no knowledge of internal paths, structures, or implementation of the software being tested. Black Box Testing: It verifies that the requirements are met and examines the functionality of an application.
What are the types of Black Box testing?
There are three types of testing’s in Black Box:
Functional Testing: It is a type of black box testing whereby each part of the system or software is tested against functional specification/requirements.
Some important Functional testing Techniques are:
- System Testing
- Unit Testing
- Smoke Testing
- Sanity Testing
- Component Testing
- Integration Testing
- Beta or Usability Testing
- User Acceptance Testing
- Localization Testing
- Globalization Testing
Some Functional Testing Tools:
- QTP
- UFT
- Selenium
- Junit
- Watir
- SoapUI
- Coded UI Tool
- Test complete
- Loadrunner
- Appium
- Applitools
- Real
- 10test
Non-Functional Testing: It is a type of Software Testing that is performed to verify the non-functional requirements of the software applications. This type of testing is performed at all test levels.
Some important Non-Functional testing techniques are:
- Performance testing
- Documentation Testing
- Compatibility testing
- Compliance testing
- Endurance testing
- Load testing
- Recovery testing
- Security testing
- Scalability testing
- Stress testing
- Baseline testing
- Localization testing
- Internationalization testing
- Resilience testing
- Usability testing
- Volume testing
- Efficiency Testing
Some Non-Functional Testing Tools:
- JMeter
- LoadRunner
- Forecast
- Load Complete
- Loadster
- Load storm
- Load Tracer
- Neoload
- vPerformer
- web load professional
- Web services stress tool
Regression Testing: It is performed after code fixes, upgrades or any other system maintenance to check the new changes has not affected any existing functionality.
What are the Black Box Testing Techniques?
There are various test case design techniques applied for black-box testing. Some techniques are:
- Boundary Value Analysis Testing
- Equivalence Class Testing
- State Transition Testing
- Decision Table Testing
- Graph Based Testing
- Error Guessing
- Syntax Testing
- Use case testing
- Comparison Testing
- Testing in Pairs or pairwise testing
- Domain Analysis
What are the Advantages of Black Box Testing?
- a) More effective on larger units of code than glass box testing
- b) Tester needs no knowledge of implementation, including specific programming languages
- c) Tester and programmer are independent of each other
- d) Tests are done from a user’s point of view
- e) Will help to expose any ambiguities or inconsistencies in the specifications
- f) Test cases can be designed as soon as the specifications are complete.
Can you explain Equivalence class partitioning?
It is the black-box test case design technique used for writing test cases. This approach is used to reduce huge set of possible inputs to small but equally effective inputs. This type of method is used to find errors in the data structure and can test the complete set of programs in partition. The benefit of Equivalence class partitioning technique is reducing the testing time as a consequence of split off test cases on groups and modules.
Can you explain State Transition testing?
A state model is produced for the component to identify its states, transitions, and their events and actions. State Transition testing technique uses the inputs, outputs, and the state of the system during the testing phase. It checks the software against the sequence of transitions or events among the test data.
Can you define error guessing technique?
Error guessing technique involves testing for common mistakes developers make when building similar systems. Many defects can be found using error guessing where most of the developers usually make mistakes.
Can you explain Boundary Value Analysis Testing?
Boundary Value Analysis Testing is used to find the errors at boundaries of input domain (tests the behavior of a program at the input boundaries) rather than finding those errors in the center of input.
Can you explain End to end testing?
End-to-end testing is a technique used to test whether the flow of an application right from start to end is behaving as expected. This testing is done to evaluate the desired work flow and expected functioning of the software product at all levels or layers, right from the beginning to till its end against the given requirements.
The purpose of this testing is to simulate the real user scenario and validate the system under test and its components for integration and data integrity.
Can you explain decision table testing?
A decision table is a good way to deal with different combination inputs with their associated outputs and also called cause-effect table. This simple technique consists in documenting business logic in a table as sets of conditions and actions. It is preferred in case of various input combinations and multiple possibilities. Decision tables are very much helpful in test design technique-
- It helps testers to search the effects of combinations of different inputs and other software states that must correctly implement business rules.
- Also, provides a regular way of stating complex business rules, that’s helpful for developers as well as for testers.
Can you explain Pairwise testing?
Pair wise testing is a one of the black box testing technique. It is also known as All pairs testing. which test cases are designed to execute all possible discrete combinations of each pair of input parameters.