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?

Do Testers Need Programming Skills ?

Do Testers Need Programming Skills ? A Good Tester Friend View.
Many freshers (especially people with Computer Science background) does not take up the first job as QA engineer and the reason they give is that many organizations give preference to people with development skills even while hiring people for testing positions. This raises the question does the testers need to be coders ? Some blogs report that organization like Microsoft hire the coders for test positions because they want to automate everything and eliminate manual testing. Automation is just one part of testing. But testers who understand programming and CS concepts have better analysis skills for testing. Testers with development skills can find the bugs earlier in development cycle and also find the cause for the bug. This also helps them in finding other places in code where there can be similar errors. I, personally feel that people with programming skills always makes better testers. Does this mean all the testers without programming knowledge be fired ?- of course not. Its always an option to have creative people as testers than bad programmers. An organization cannot have all the testers to have programming knowledge as well, with industry facing shortage of quality programmers. Microsoft seems to have found a way out of this by creating two different job profiles SDET and STE. SDET needs to have good programming skills as they are used for automation and debugging. But even this did'nt seem to have solved the problem completely. Can read more about SDET Vs STE here.

SOA- Service Oriented Architecture

software vendors have been creating development and infrastructure products for the latest IT architecture style - Service Oriented Architecture (SOA). Recognizing the immense value SOA can bring to IT, companies like BEA, IBM, and Microsoft have delivered products to help customers design and build SOA-based applications. These vendor-driven initiatives are beginning to sprout actual customer-developed applications that are built on the promise of SOA, such as better flexibility, agility and reuse.
A challenge facing many organizations is how to quickly and effectively react to frequent changes in business requirements, whilst improving productivity and reducing costs. To achieve this, you need a flexible infrastructure that can meet the demands of a changing marketplace and seize emerging opportunities. To address this challenge, Service Oriented Architecture (SOA) promotes an architectural approach that replaces rigid proprietary systems with heterogeneous, "loosely-coupled" services. The Service Component Architecture (SCA), along with Service Data Objects (SDO), makes this architectural concept a reality and provides the programming model to build SOA solutions for agile businesses.

Some QTP Related Question Answers

  • Full form of QTP ?
  • Quick Test Professional
  • What's the QTP ?
  • QTP is Mercury Interactive Functional Testing Tool.
  • Which scripting language used by QTP ?
  • QTP uses VB scripting.
  • What's the basic concept of QTP ?
  • QTP is based on two concept-
  • * Recording
  • * Playback
  • How many types of recording facility are available in QTP ?
  • QTP provides three types of recording methods-
  • * Context Recording (Normal)
  • * Analog Recording
  • * Low Level Recording
  • How many types of Parameters are available in QTP ?
  • QTP provides three types of Parameter-
  • * Method Argument
  • * Data Driven
  • * Dynamic
  • What's the QTP testing process ?
  • QTP testing process consist of seven steps-
  • * Preparing to recoding
  • * Recording
  • * Enhancing your script
  • * Debugging
  • * Run
  • * Analyze
  • * Report
  • DefectsWhat's the Active Screen ?
  • It provides the snapshots of your application as it appeared when you performed a certain steps during recording session.
  • What's the Test Pane ?
  • Test Pane contains Tree View and Expert View tabs.
  • What's Data Table ?
  • It assists to you about parameterizing the test.
  • What's the Test Tree ?
  • It provides graphical representation of your operations which you have performed with your application.
  • Which all environment QTP supports ?
  • ERP/ CRM /Java/ J2EE/ VB, .NET ,Multimedia, XML Web Objects, ActiveX controls ,SAP, Oracle, Siebel, PeopleSoft Web Services, Terminal EmulatorIE, NN, AOL .
  • How can you view the Test Tree ?
  • The Test Tree is displayed through Tree View tab.
  • What's the Expert View ?
  • Expert View display the Test Script.
  • Which keyword used for Normal Recording ?
  • F3
  • Which keyword used for run the test script ?
  • F5
  • Which keyword used for stop the recording ?
  • F4
  • Which keyword used for Analog Recording ?
  • Ctrl+Shift+F4
  • Which keyword used for Low Level Recording ?
  • Ctrl+Shift+F3
  • Which keyword used for switch between Tree View and Expert View ?
  • Ctrl+Tab
  • What's the Transaction ?
  • You can measure how long it takes to run a section of your test by defining transactions.
  • Where you can view the results of the checkpoint ?
  • You can view the results of the checkpoints in the Test Result Window.
  • What's the Standard Checkpoint ?
  • Standard Checkpoints checks the property value of an object in your application or web page.
  • Which environment are supported by Standard Checkpoint ?
  • Standard Checkpoint are supported for all add-in environments.
  • What's the Image Checkpoint ?
  • Image Checkpoint check the value of an image in your application or web page.
  • Which environments are supported by Image Checkpoint ?
  • Image Checkpoint are supported only Web environment.
  • What's the Bitmap Checkpoint ?
  • Bitmap Checkpoint checks the bitmap images in your web page or application.
  • Which enviornment are supported by Bitmap Checkpoints ?
  • Bitmap checkpoints are supported all add-in environment.
  • What's the Table Checkpoints ?
  • Table Checkpoint checks the information with in a table.
  • Which environments are supported by Table Checkpoint ?
  • Table Checkpoints are supported only ActiveX environment.
  • What's the Text Checkpoint ?
  • Text Checkpoint checks that a test string is displayed in the appropriate place in your application or on web page.
  • Which environment are supported by Test Checkpoint ?
  • Text Checkpoint are supported all add-in environments Note:
  • * QTP records each steps you perform and generates a test tree and test script.
  • * QTP records in normal recording mode.
  • * If you are creating a test on web object, you can record your test on one browser and run it on another browser.
  • * Analog Recording and Low Level Recording require more disk sapce than normal recording mode.

Capability Maturity Model Integration (CMM) Maturity Levels

Capability Maturity Model Integration (CMM) Maturity Levels
The Five Maturity Levels described by the Capability Maturity Model can be characterized as per their primary process changes made at each level as follows:

1) Initial The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort and heroics.
2) Repeatable Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications.
3) Defined The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software.
4) Managed Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.
5) Optimizing Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.