1. What are the different matrices that you follow?
Answer: There are various reports we normally prepare in QA:
Test summary Report – It is a report that has list of the total test cases, list of executed test cases, remaining test case to be executed, executed date, pass/fail
Defect Report – In this report we normally prepare a list of defect in spreadsheet e.g. defect # CQ12345 [ if you log a defect in the application called Rational ClearQuest]
Traceability Matrix [also called RTM (Requirement Traceability Matrix)] Report – the document which shows the relationship between the functionalities or the business rules and the test cases. So, with the help of Traceability Matrix we make sure that we includes all the functionalities in our test cases according to the requirement document.
2. Explain Bug Life Cycle.
Answer: I would describe this as below:
A Tester finds a defect and logs it. (But before you log it, you must try to recreate it for 3 or 4 times so that you are 100% sure that it is a bug)
The defect is now approved or disapproved by the Test Lead.
(If it is disapproved, then the test lead will come to you ask for more details and you have explain to him why it is a bug)
After the Test Lead approves the bug, it is now assigned to a development Team Lead (or Development Manager). He/she now assigns that bug to the concerned developer. The developer now looks into the bug and fixes it. Once the fix is ready, there will be another build ready to test. The tester now tests the defect. It the defect is fixed, then the tester closes the defect, if not then the test will reopen it and same cycle starts.
3. What will you do if developer does not accept the bug?
Answer: If the developer does not accept the defect, then he will reject it. Once it is rejected, then it comes back to the tester. Now, the tester will ask for clarification with the developer why the defect is rejected. Since everything is based on the requirement documents, both tester and developer will have to look at the requirement document, validate it and then reopen it if necessary or close.
4. What are the different tests that can be done for Client Server Application and Web-based Application. Give details.
Answer: For both client server and web based applications, the testing is the same except one thing: We test web based applications in different browsers, for example, Internet Explorer (will test in different versions like IE 5.0, IE 6.0, IE 7.0), Firefox, Safari (for Mac) and so on where as for client server, we don’t need to test in the browsers.
5. What is an inspection?
Answer: An inspection is a formal meeting, more formalized than a walkthrough and typically consists of 3-10 people including a moderator, reader (the author of whatever is being reviewed) and a recorder (to make notes in the document). The subject of the inspection is typically a document, such as a requirements document or a test plan. The purpose of an inspection is to find problems and see what is missing, not to fix anything. The result of the meeting should be documented in a written report. Attendees should prepare for this type of meeting by reading through the document, before the meeting starts; most problems are found during this preparation. Preparation for inspections is difficult, but is one of the most cost-effective methods of ensuring quality, since bug prevention is more cost effective than bug detection.
6. Give me five common problems that occur during software development.
Answer: Poorly written requirements, unrealistic schedules, inadequate testing, adding new features after development is underway and poor communication. Requirements are poorly written when requirements are unclear, incomplete, too general, or not testable; therefore there will be problems. The schedule is unrealistic if too much work is crammed in too little time.
Software testing is inadequate if none knows whether or not the software is any good until customers complain or the system crashes. It’s extremely common that new features are added after development is underway.
Miscommunication either means the developers don’t know what is needed, or customers have unrealistic expectations and therefore problems are guaranteed
7. What is the role of documentation in QA?
Answer: Documentation plays a critical role in QA. QA practices should be documented, so that they are repeatable. Specifications, designs, business rules, inspection reports, configurations, code changes, test plans, test cases, bug reports, user manuals should all be documented. Ideally, there should be a system for easily finding and obtaining of documents and determining what document will have a particular piece of information. Use documentation change management, if possible.
8. What if the software is so buggy it can’t be tested at all?
Answer: In this situation the best bet is to have test engineers go through the process of reporting whatever bugs or problems initially show up, with the focus being on critical bugs. Since this type of problem can severely affect schedules and indicates deeper problems in the software development process, such as insufficient unit testing, insufficient integration testing, poor design, improper build or release procedures, managers should be notified and provided with some documentation as evidence of the problem.
9. How do you know when to stop testing?
Answer: This can be difficult to determine. Many modern software applications are so complex and run in such an interdependent environment, that complete testing can never be done. Common factors in deciding when to stop are…
Deadlines, e.g. release deadlines, testing deadlines;
Test cases completed with certain percentage passed;
Test budget has been depleted;
Coverage of code, functionality, or requirements reaches a specified point;
Bug rate falls below a certain level; or
Beta or alpha testing period ends.
10. What if there isn’t enough time for thorough testing?
Answer: Since it’s rarely possible to test every possible aspect of an application, every possible combination of events, every dependency, or everything that could go wrong, risk analysis is appropriate to most software development projects. Use risk analysis to determine where testing should be focused. This requires judgment skills, common sense and experience. The checklist should include answers to the following questions:
Which functionality is most important to the project’s intended purpose?
Which functionality is most visible to the user?
Which functionality has the largest safety impact?
Which functionality has the largest financial impact on users?
Which aspects of the application are most important to the customer?
Which aspects of the application can be tested early in the development cycle?
Which parts of the code are most complex and thus most subject to errors?
Which parts of the application were developed in rush or panic mode?
Which aspects of similar/related previous projects caused problems?
Which aspects of similar/related previous projects had large maintenance expenses?
Which parts of the requirements and design are unclear or poorly thought out?
What do the developers think are the highest-risk aspects of the application?
What kinds of problems would cause the worst publicity?
What kinds of problems would cause the most customer service complaints?
What kinds of tests could easily cover multiple functionalities?
Which tests will have the best high-risk-coverage to time-required ratio?
11. What can be done if requirements are changing continuously?
Answer: Work with management early on to understand how requirements might change, so that alternate test plans and strategies can be worked out in advance. It is helpful if the application’s initial design allows for some adaptability, so that later changes do not require redoing the application from scratch. Additionally, try to… • Ensure the code is well commented and well documented; this makes changes easier for the developers.
- Use rapid prototyping whenever possible; this will help customers feel sure of their requirements and minimize changes.
- In the project’s initial schedule, allow for some extra time to commensurate with probable changes.
- Move new requirements to a ‘Phase 2′ version of an application and use the original requirements for the ‘Phase 1′ version.
- Negotiate to allow only easily implemented new requirements into the project; move more difficult, new requirements into future versions of the application.
- Ensure customers and management understand scheduling impacts, inherent risks and costs of significant requirements changes. Then let management or the customers decide if the changes are warranted; after all, that’s their job.
- Balance the effort put into setting up automated testing with the expected effort required to redo them to deal with changes.
- Design some flexibility into automated test scripts;
- Focus initial automated testing on application aspects that are most likely to remain unchanged;
- Devote appropriate effort to risk analysis of changes, in order to minimize regression-testing needs;
- Design some flexibility into test cases; this is not easily done; the best bet is to minimize the detail in the test cases, or set up only higher-level generic-type test plans;
- Focus less on detailed test plans and test cases and more on ad-hoc testing with an understanding of the added risk this entails.
12. What if the application has functionality that wasn’t in the requirements?
Answer: It may take serious effort to determine if an application has significant unexpected or hidden functionality, which it would indicate deeper problems in the software development process. If the functionality isn’t necessary to the purpose of the application, it should be removed, as it may have unknown impacts or dependencies that were not taken into account by the designer or the customer.
If not removed, design information will be needed to determine added testing needs or regression testing needs. Management should be made aware of any significant added risks as a result of the unexpected functionality. If the functionality only affects areas, such as minor improvements in the user interface, it may not be a significant risk.
13. How can software QA processes be implemented without stifling productivity?
Answer: Implement QA processes slowly over time. Use consensus to reach agreement on processes and adjust and experiment as an organization grows and matures. Productivity will be improved instead of stifled. Problem prevention will lessen the need for problem detection. Panics and burnout will decrease and there will be improved focus and less wasted effort. At the same time, attempts should be made to keep processes simple and efficient, minimize paperwork, promote computer-based processes and automated tracking and reporting, minimize time required in meetings and promote training as part of the QA process. However, no one, especially talented technical types, like bureaucracy and in the short run things may slow down a bit. A typical scenario would be that more days of planning and development will be needed, but less time will be required for late-night bug fixing and calming of irate customers.
14. What is parallel/audit testing?
Answer: Parallel/audit testing is testing where the user reconciles the output of the new system to the output of the current system to verify the new system performs the operations correctly. Let us say, for example, the currently software is in the mainframe system which calculates the interest rate. The company wants to change this mainframe system to web-based application. While testing the new web based application, we need to verify that the web-based application calculates the same interest rate. This is parallel testing.
15. What is system testing?
Answer: System testing is black box testing, performed by the Test Team, and at the start of the system testing the complete system is configured in a controlled environment. The purpose of system testing is to validate an application’s accuracy and completeness in performing the functions as designed. System testing simulates real life scenarios that occur in a “simulated real life” test environment and test all functions of the system that are required in real life. System testing is deemed complete when actual results and expected results are either in line or differences are explainable or acceptable, based on client input.
Upon completion of integration testing, system testing is started. Before system testing, all unit and integration test results are reviewed by Software QA to ensure all problems have been resolved. For a higher level of testing it is important to understand unresolved problems that originate at unit and integration test levels. You CAN learn system testing, with little or no outside help. Get CAN get free information. Click on a link!