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.

CMM-Capability Maturity Model

Capability Maturity Model:The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes. CMM was developed and is promoted by the Software Engineering Institute (SEI), a research and development center sponsored by the U.S. Department of Defense (DoD). SEI was founded in 1984 to address software engineering issues and, in a broad sense, to advance software engineering methodologies. More specifically, SEI was established to optimize the process of developing, acquiring, and maintaining heavily software-reliant systems for the DoD. Because the processes involved are equally applicable to the software industry as a whole, SEI advocates industry-wide adoption of the CMM.
The CMM is similar to ISO 9001, one of the ISO 9000 series of standards specified by the International Organization for Standardization (ISO). The ISO 9000 standards specify an effective quality system for manufacturing and service industries; ISO 9001 deals specifically with software development and maintenance. The main difference between the two systems lies in their respective purposes: ISO 9001 specifies a minimal acceptable quality level for software processes, while the CMM establishes a framework for continuous process improvement and is more explicit than the ISO standard in defining the means to be employed to that end.

What is CMM (SEI Capability Maturity Model)? The Capability Maturity Model for Software (CMM) is a framework that describes the key elements of an effective software process. There are CMMs for non software processes as well, such as Business Process Management (BPM). The CMM describes an evolutionary improvement path from an ad hoc, immature process to a mature, disciplined process. The CMM covers practices for planning, engineering, and managing software development and maintenance. When followed, these key practices improve the ability of organizations to meet goals for cost, schedule, functionality, and product quality. The CMM establishes a yardstick against which it is possible to judge, in a repeatable way, the maturity of an organization's software process and compare it to the state of the practice of the industry. The CMM can also be used by an organization to plan improvements to its software process. It also reflects the needs of individuals performing software process, improvement, software process assessments, or software capability evaluations; is documented; and is publicly available.

Unit & Integration Testing

Unit Testing

In computer programming, a unit test is a method of testing the correctness of a particular module of source code.
The idea is to write test cases for every non-trivial function or method in the module so that each test case is separate from the others if possible. This type of testing is mostly done by the developers.
Benefits
The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. It provides a written contract that the piece must satisfy. This isolated testing provides four main benefits:
Encourages change
Unit testing allows the programmer to refactor code at a later date, and make sure the module still works correctly (regression testing). This provides the benefit of encouraging programmers to make changes to the code since it is easy for the programmer to check if the piece is still working properly.
Simplifies Integration
Unit testing helps eliminate uncertainty in the pieces themselves and can be used in a bottom-up testing style approach. By testing the parts of a program first and then testing the sum of its parts will make integration testing easier.
Documents the code
Unit testing provides a sort of "living document" for the class being tested. Clients looking to learn how to use the class can look at the unit tests to determine how to use the class to fit their needs.
Separation of Interface from Implementation
Because some classes may have references to other classes, testing a class can frequently spill over into testing another class. A common example of this is classes that depend on a database; in order to test the class, the tester finds herself writing code that interacts with the database. This is a mistake, because a unit test should never go outside of its own class boundary. As a result, the software developer abstracts an interface around the database connection, and then implements that interface with their own Mock Object. This results in loosely coupled code, thus minimizing dependencies in the system.
Limitations
It is important to realize that unit-testing will not catch every error in the program. By definition, it only tests the functionality of the units themselves. Therefore, it will not catch integration errors, performance problems and any other system-wide issues. In addition, it may not be trivial to anticipate all special cases of input the program unit under study may receive in reality. Unit testing is only effective if it is used in conjunction with other software testing activities.
Integration Testing
It is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing. takes as its input modules that have been checked out by unit testing, groups them in larger aggregates, applies tests defined in an Integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing.
Purpose
The purpose of Integration testing is to verify functional, performance and reliability requirements placed on major design items. These "design items", i.e. assemblages (or groups of units), are exercised through their interfaces using Black box testing, success and error cases being simulated via appropriate parameter and data inputs. Simulated usage of shared data areas and inter-process communication is tested, individual subsystems are exercised through their input interface. All test cases are constructed to test that all components within assemblages interact correctly, for example, across procedure calls or process activations.
The overall idea, is the "building block" approach in which verified assemblages are added to a verified base which is then used to support the Integration testing of further assemblages.

White Box and Black Box Testing

White Box Testing
Testing of a function with knowing internal structure of the program. Also known as glass box, structural, clear box and open box testing. A software testing technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data. Unlike black box testing, white box testing uses specific knowledge of programming code to examine outputs. The test is accurate only if the tester knows what the program is supposed to do. He or she can then see if the program diverges from its intended goal. White box testing does not account for errors caused by omission, and all visible code must also be readable.
Black Box Testing
Testing of a function without knowing internal structure of the program. 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.

Interview Questions

Interview Question Answer By Testing Expert- Dr K.V.V.K. Prasad
Testing Scenarios :
Q: How do you know that all the scenarios for testing are covered? By using the Requirement Traceability Matrix (RTM) we can ensure that we have covered all the functionalities in Test Coverage. RTM is a document that traces User Requirements from analysis through implementations. RTm can be used as a completeness check to verify that all the requirements are present or that there is no unnecessary/extra features and as a maintenance guide to new personnel. We can use the simple format in Excel sheet where we map the Functionality with the Test case ID. 2. Complete Testing with Time Constraints :
Question: How do you complete the testing when you have a time constraint? If i am doinf regression testing and i do not have sufficient time then we have to see for which sort of regression testing i have to go 1)unit regression testing 2)Regional Regression testing 3)Full Regression testing. 3. Given an yahoo application how many test cases u can write? First we need requirements of the yahoo applicaiton. I think test cases are written aganist given requirements.So for any working webapplication or new application, requirements are needed to prepare testcases.The number of testcases depends on the requirements of the application Note to learners : A Test Engineer must have knowledge on SDLC. I suggest learners to take any one exiting application and start pratice from writing requirements. 4. Lets say we have an GUI map and scripts, a we got some 5 new pages included inan application how do we do that? By integration testing. 5. GUI contains 2 fields Field 1 to accept the value of x and Field 2 displays the result of the formula a+b/c-d where a= 0.4*x, b=1.5*a, c=x, d=2.5*b; How many system test cases would you write GUI contains 2 fields Field 1 to accept the value of x and Field 2 displays the result so that there is only one testcase to write