Monday, December 13, 2010

Basic For Sofware Testing

1. What is 'Software Quality Assurance'?
Answer: Software QA involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'.
2. What is verification? Validation?
Answer: Verification typically involves reviews and meetings to evaluate documents, plans, code, requirements, and specifications. This can be done with checklists, issues lists, walkthroughs, and inspection meetings. Validation typically involves actual testing and takes place after verifications are completed.
3. What are 5 common problems in the software development process?
Answer:
• Poor requirements - if requirements are unclear, incomplete, too general, and not testable, there will be problems.
• Unrealistic schedule - if too much work is crammed in too little time, problems are inevitable.
• Inadequate testing - no one will know whether or not the program is any good until the customer complains or systems crash.
• Requests to pile on new features after development is underway; extremely common.
• Miscommunication - if developers don't know what's needed or customer's have erroneous expectations, problems are guaranteed.
4. What is software 'quality'?
Answer: Quality software is reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable.
5. What makes a good Software Test engineer?
Answer: A good test engineer has a 'test to break' attitude, an ability to take the point of view of the customer, a strong desire for quality, intuitive and an attention to detail.
6. What's a 'test plan'?
Answer: A software project test plan is a document that describes the objectives, scope, approach, of a software testing effort. The completed document will help people outside the test group understand the 'why' and 'how' of product validation.
7. What are the components of a test plan?
Answer: objective, scope, entrance criteria, exit criteria, features to be tested, features not to be tested, approach, item pass fail criteria, Suspension Criteria and Resumption Requirements, Test Deliverables, Environmental Needs, Staffing and Training Needs, Schedule, risk analysis, approval.
8. What is 'configuration management'?
Answer: CCB and version control of test plan.

9. What if the software is so buggy it can't really be tested at all?
Answer: The build must pass the build acceptance testing, which is done by quickly going thru the major functionality testing. Log a problem with high severity. Since this type of problem can severely affect schedules, and indicates deeper problems in the software development process (such as insufficient unit testing or insufficient integration testing, poor design, improper build or release procedures, etc.) managers should be notified, and provided with some documentation as evidence of the problem.
10. How can it be known when to stop testing?
Answer: Zero ship issues, Zero assigned/answered Problem, Complete final regression, complete SnS testing and user documentation is ready.
11. What if there isn't enough time for thorough testing?
Answer: First try to pull more resources from other project. If not possible use risk analysis to determine where testing should be focused.
• 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?
• What do the developers think are the highest-risk aspects of the application?
• Which aspects of similar/related previous projects caused problems?
12. How can World Wide Web sites be tested?
Answer: Web sites are essentially client/server applications - with web servers and 'browser' clients. Consideration should be given to the interactions between html pages, TCP/IP communications, Internet connections, firewalls, applications that run in web pages (such as applets, javascript, plug-in applications), and applications that run on the server side (such as cgi scripts, database interfaces, logging applications, dynamic page generators, asp, etc.). Additionally, there are a wide variety of servers and browsers, various versions of each, small but sometimes significant differences between them, variations in connection speeds, rapidly changing technologies, and multiple standards and protocols. The end result is that testing for web sites can become a major ongoing effort. Other considerations might include:
• What are the expected loads on the server (e.g., number of hits per unit time?), and what kind of performance is required under such loads (such as web server response time, database query response times). What kinds of tools will be needed for performance testing (such as web load testing tools, other tools already in house that can be adapted, web robot downloading tools, etc.)?
• Pages should be 3-5 screens max unless content is tightly focused on a single topic. If larger, provide internal links within the page.
• The page layouts and design elements should be consistent throughout a site, so that it's clear to the user that they're still within a site.
• Pages should be as browser-independent as possible, or pages should be provided or generated based on the browser-type.
• All pages should have links external to the page; there should be no dead-end pages.
13. What is END-TO-END Testing?
Answer: You do these tests either in System Testing OR User Acceptance testing (UAT) Business (Business Analyst are most interested in this type of tests)
End-to-End testing is a generic word. It means that we are testing from one end to the other end of the application to test a particular functionality from the user perspective. For Ex: If you use the application to make a payment to Mr. XXX, using the web, you are not just interested in getting a "Successfully paid to Mr. XXX" message on the web page, but you need to ensure that the payment did reach Mr. XXX after creating an entry in the local database and then update all relevant databases and indeed update the balance after payment. (One End -to the- other End)

In other words, in end-To-End test, we have to make sure that the entire functional path is exercised so that the software path for this function is tested from this end to the other end, internally. (Testing the Functionality of the requirements from the perspective of the user using the system and performing a particular task)

14. What is exploratory testing?
Answer: exploratory testing is simultaneous learning, test plan and execution. Usually done by exp testers. Done whenever we have vague requirements about the product and time constraints
15. What types of testing does non-functional testing?
Answer: Non-functional testing: This testing is used to test the other quality factors of our build other than the usability testing and functionality testing. This testing includes 7 types of testings: 1) Compatibility testing2) Configuration testing3) Load testing4) Stress testing5) Storage testing6) Data-volume testing7) Installation testing
16. What is the Test we are going to do when a New Build is come to test environment?
Answer: Generic Sequence: 1. Run Smoke Test Plan, 2. Execute Functional Test Plan (If planned), 3. Verify Bug Fixes, 4. Execute Regression Test Plan (applicable to build under test, if planned)
Based on above executions decide (probably test lead/QA manager) whether this build can be accepted
17. What are QA and QC? Explain Briefly.
Answer: QA people involved in entire software development life cycle, they create and enforce some standards and methods to be followed to develop the software. They are the people who were preventing the bugs. QC means testing.
18. What is Test Metrics and how to calculate the Test Metrics?
Answer: Test matrices are used either for test status or for test process improvement.
21. Describe components of a typical test plan?
Answer: Actually test plan describes what to test, how to test, when to test, & who test.
22. How should you learn about problems discovered in the field, and what should you learn from those problems?
Answer: learn about the scenario in which the problem occurred. check your test plans/test design/test cases for the scenarion1. You donot have that scenario. Its an escape. Analyze the scenario where you slipped and make amendments in future releases /versions2. You have it. Did not cover because of lack of time or resources [hardware /software/others] ...Not your fault. Report to Manager he will take care of it.
23. How do you scope, organize, and execute a test project?
Answer: test plan will have everything.
24. What is the difference between error, bug, fault, failure etc?
Answer: My understanding is that:
An Error is an occurrence of human error that can happen during documentation, software construction or testing (such as a misunderstanding of system-use meaning an incorrect condition or test script has been written)
A Fault is a manifestation of an error within the software delivery that causes a deviance of software behavior from expected behavior (ie a defect or a bug).
A Failure is a deviance of software from expected behavior post-live implementation. The implication is that catching an error is more cost effective than having failures.
25. What is the difference between beta and user acceptance testing?
Answer: Acceptance testing: This is where you have to be careful with book definitions. In practice, unless your testers are incompetent, you will have finished all final testing based on specifications during systems testing. Therefore, there is one additional (key) reason for acceptance testing: to see if the code actually works in the real world. I am not even referring to acceptance of offshore code (that is a local systems testing task to confirm that all functionality is properly implemented).
Beta testing: Something similar happens with beta testing. The code, however, is developed for general use, and it should already have passed all the normal test efforts. While technically "perfect" the code may not strike a chord with potential customers. Beta versions are an overt trial code offered to allow potential customers to provide feedback prior to a broad distribution. Sometimes code never sees commercial use as a result of beta feedback, and I assure you that potential customers don't care about any specifications either.
26. What are the types of Bottlenecks in Performance testing?
Answer: hardware bottleneck, process leak bottleneck, network bottleneck, memory leak bottleneck
27. What is the difference between Load, Volume and stress testing?
Answer: Volume testing: Testing where the system is subjected to large volumes of data. Testing which confirms that any values that may become large over time (such as accumulated counts, logs, and data files), can be accommodated by the program and will not cause the program to stop working or degrade its operation in any manner.

Stress testing: Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements. [IEEE] Stress testing is a form of testing which is used to determine the stability of a given system or entity. It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results.

Load Testing
Testing the load-bearing ability of a system. For example, verifying that the system can handle the required number of users per time period.

28. What are the severity levels?
Answer:
1. Fatal error:(e.g.: Suppose u will open a IE Browser then browser cannot be opened, The page cannot be displayed), it is also called as Show Stopper Errors or 500 Internal servers problem.
2. Major error:(On the above example, the page can be opened, but the contents cannot be displayed)
3. Minor error: Cosmetic errors such as spell check, alignment problem, and etc.
4. Suggestion: At Last How the tester can contact to the developer in a polite way.
29. What is the difference between Client Server Testing and Web Testing?
Answer: mainly differ in security and configuration.

Sunday, December 12, 2010

A New Beginning

Hello Friends, This is my first blog so i really need you guys.I am pretty sure this will really help you in Software Testing.This blog will very helpful for them who are wants their career in Software Testing.

This Blog will carry The Books related to Testing, Helpful Links & other Important Information in Testing.

So Guys always give your feedback because it will help me for making this blog more useful.

Thank You,
Pratap Gusain