Test Plan

Test Plan:- A Test Plan is What To Test ? and How To Test? The Test Plan describes the overall approach to development, integration, qualification, and acceptance testing. It describes plans for testing software systems; test environment to be used for the testing; identifies tests to be performed, and provides schedules for test activities. The software Test Plan is used by IT Manager, Test Manager, Documentation Manager, System Administrator, Technical Architect, Development Manager, Project Manager.
The Test Plan is used to perform system testing, subsystem testing, assembly testing, subassembly testing, module testing, user acceptance testing. The Test Plan includes step by step instructions for the various types of testing that will occur during the project life cycle; it also defines the required test equipment, calibration requirements, test facility requirements, and other key factors.
This is a sample of an outline for a test plan. It has been designed for medium to small test projects, and thus is fairly lightweight. It is by necessity general, because each enterprise, each development group, each testing group, and each development project is different. This outline should be used as a set of guidelines for creating your own standard template; add to it or subtract from it as you find appropriate.

Differences in Testing

Difference Between White box and Black Box Testing?
Black box testing - not based on any knowledge of internal design or code. Tests are based on requirements and functionality.
White box testing - based on knowledge of the internal logic of an application's code. Tests are based on coverage of code statements, branches, paths, conditions.
Black-box and white-box are test design methods. Black-box test design treats the system as a “black-box”, so it doesn’t explicitly use knowledge of the internal structure. Black-box test design is usually described as focusing on testing functional requirements. Synonyms for black-box include: behavioral, functional, opaque-box, and closed-box. White-box test design allows one to peek inside the “box”, and it focuses specifically on using internal knowledge of the software to guide the selection of test data. Synonyms for white-box include: structural, glass-box and clear-box. While black-box and white-box are terms that are still in popular use, many people prefer the terms "behavioral" and "structural". Behavioral test design is slightly different from black-box test design because the use of internal knowledge isn't strictly forbidden, but it's still discouraged. In practice, it hasn't proven useful to use a single test design method. One has to use a mixture of different methods so that they aren't hindered by the limitations of a particular one. Some call this "gray-box" or "translucent-box" test design, but others wish we'd stop talking about boxes altogether. It is important to understand that these methods are used during the test design phase, and their influence is hard to see in the tests once they're implemented. Note that any level of testing (unit testing, system testing, etc.) can use any test design methods. Unit testing is usually associated with structural test design, but this is because testers usually don't have well-defined requirements at the unit level to validate .
What are unit, component and integration testing?
Note that the definitions of unit, component, integration, and integration testing are recursive:
Unit. The smallest compilable component. A unit typically is the work of one programmer (At least in principle). As defined, it does not include any called sub-components (for procedural languages) or communicating components in general.
Unit Testing: in unit testing called components (or communicating components) are replaced with stubs, simulators, or trusted components. Calling components are replaced with drivers or trusted super-components. The unit is tested in isolation.
Component: a unit is a component. The integration of one or more components is a component.
Note: The reason for "one or more" as contrasted to "Two or more" is to allow for components that call themselves recursively.
Component testing: same as unit testing except that all stubs and simulators are replaced with the real thing.
Two components (actually one or more) are said to be integrated when:
a. They have been compiled, linked, and loaded together.
b. They have successfully passed the integration tests at the interface between them. Thus, components A and B are integrated to create a new, larger, component (A,B).
Note that this does not conflict with the idea of incremental integration—it just means that A is a big component and B, the component added, is a small one.
Integration testing: carrying out integration tests.
Integration tests (After Leung and White) for procedural languages. This is easily generalized for OO(Object Oriented) languages by using the equivalent constructs for message passing. In the following, the word "call" is to be understood in the most general sense of a data flow and is not restricted to just formal subroutine calls and returns – for example, passage of data through global data structures and/or the use of pointers.
As to the difference between integration testing and system testing. System testing specifically goes after behaviors and bugs that are properties of the entire system as distinct from properties attributable to components (unless, of course, the component in question is the entire system). Examples of system testing issues: Resource loss bugs, throughput bugs, performance, security, recovery, Transaction synchronization bugs (often misnamed "timing bugs").
What's the difference between load and stress testing ?
One of the most common, but unfortunate misuse of terminology is treating “load testing” and “stress testing” as synonymous. The consequence of this ignorant semantic abuse is usually that the system is neither properly “load tested” nor subjected to a meaningful stress test.
Stress testing is subjecting a system to an unreasonable load while denying it the resources (e.g., RAM, disc, MIPS, interrupts, etc.) needed to process that load. The idea is to stress a system to the breaking point in order to find bugs that will make that break potentially harmful. The system is not expected to process the overload without adequate resources, but to behave (e.g., fail) in a decent manner (e.g., not corrupting or losing data). Bugs and failure modes discovered under stress testing may or may not be repaired depending on the application, the failure mode, consequences, etc. The load (incoming transaction stream) in stress testing is often deliberately distorted so as to force the system into resource depletion.
Load testing is subjecting a system to a statistically representative (usually) load. The two main reasons for using such loads are in support of software reliability testing and in performance testing. The term "load testing" by itself is too vague and imprecise to warrant use. For example, do you mean representative load," "overload," "high load," etc. In performance testing, load is varied from a minimum (zero) to the maximum level the system can sustain without running out of resources or having, transactions ,suffer (application-specific) excessive delay.
A third use of the term is as a test whose objective is to determine the maximum sustainable load the system can handle. In this usage, "load testing" is merely testing at the highest transaction arrival rate in performance testing.
What's the difference between QA and testing?
QA is more a preventive thing, ensuring quality in the company and therefore the product rather than just testing the product for software bugs?
TESTING means "quality control"
QUALITY CONTROL measures the quality of a product
QUALITY ASSURANCE measures the quality of processes used to create a quality product.

Testing Interview Question.

  • 1. What is Software Testing?
  • 2. What is the Purpose of Testing?
  • 3. What types of testing do testers perform?
  • 4. What is the Outcome of Testing?
  • 5. What kind of testing have you done?
  • 6. What is the need for testing?
  • 7. What are the entry criteria for Functionality and Performance testing?
  • 8. What is test metrics?
  • 9. Why do you go for White box testing, when Black box testing is available?
  • 10. What are the entry criteria for Automation testing?
  • 11. When to start and Stop Testing?
  • 12. What is Quality?
  • 13. What is Baseline document, Can you say any two?
  • 14. What is verification?
  • 15. What is validation?
  • 16. What is quality assurance?
  • 17. What is quality control?
  • 18. What is SDLC and TDLC?
  • 19. What are the Qualities of a Tester?
  • 20. When to start and Stop Testing?
  • 21. What are the various levels of testing?
  • 22. What are the types of testing you know and you experienced?
  • 23. What exactly is Heuristic checklist approach for unit testing?
  • 24. After completing testing, what would you deliver to the client?
  • 25. What is a Test Bed?
  • 26. What is a Data Guidelines?
  • 27. Why do you go for Test Bed?
  • 28. What is Severity and Priority and who will decide what?
  • 29. Can Automation testing replace manual testing? If it so, how?
  • 30. What is a test case?
  • 31. What is a test condition?
  • 32. What is the test script?
  • 33. What is the test data?
  • 34. What is an Inconsistent bug?
  • 35. What is the difference between Re-testing and Regression testing?
  • 36. What are the different types of testing techniques?
  • 37. What are the different types of test case techniques?
  • 38. What are the risks involved in testing?
  • 39. Differentiate Test bed and Test Environment?
  • 40. What ifs the difference between defect, error, bug, failure, fault?
  • 41. What is the difference between quality and testing?
  • 42. What is the difference between White & Black Box Testing?
  • 43. What is the difference between Quality Assurance and Quality Control?
  • 44. What is the difference between Testing and debugging?
  • 45. What is the difference between bug and defect?
  • 46. What is the difference between verification and validation?
  • 47. What is the difference between functional spec. and Business requirement specification?
  • 48. What is the difference between unit testing and integration testing?
  • 49. What is the diff between Volume & Load?
  • 50. What is diff between Volume & Stress?