Thursday, July 9, 2009
QTP Testing Process
1)Planning : Before starting to build a test, you should plan it and prepare the required infrastructure. For example, determine the functionality you want to test, short tests that check specific functions of the application or complete site.Decide how you want to organize your object repositories.
2)Creating Tests or Components:
We can create a test or component by
a) Either recording a session on your application or Web site.
As we navigate through the application or site, QuickTest graphically displays each step we perform as a row in the Keyword View. The Documentation column of the Keyword View also displays a description of each step in easy-to-understand sentences. A step is something that causes or makes a change in your site or application, such as clicking a link or image, or submitting a data form.
OR b) Build an object repository and use these objects to add steps manually in the Keyword View or Expert View. We can then modify your test or component with special testing options and/or with programming statements.
3)Inserting Checkpoints: Insert Checkpoints into your test or component. A checkpoint is a verification point that compares a recent value for a specified property with the expected value for that property. This enables you to identify whether the Web site or application is functioning correctly.
4)Broaden the scope of your test or component by replacing fixed values with parameters:
To check how your application performs the same operations with different data you can parameterize your test or component. When you parameterize your test or component, QuickTest substitutes the fixed values in your test or component with parameters Each run session that uses a different set of parameterized data is called an iteration.
We can also use output values to extract data from our test or component. An output value is a value retrieved during the run session and entered into the Data Table or saved as a variable or a parameter. We can subsequently use this output value as input data in your test or component.We can use many functional testing features of QuickTest to improve your test or component and/or add programming statements to achieve more complex testing goals.
5)Run Test Component:
Run test or component to check the site or application. When we run the test or component, QuickTest connects to your Web site or application and performs each operation in a test or component, checking any text strings, objects, or tables you specified. If we parameterized the test with Data Table parameters, QuickTest repeats the test (or specific actions in your test) for each set of data values we defined.
Run the test or component to debug it.We can control the run session to identify and eliminate defects in the test or component. We can use the Step Into, Step Over,
And Step Outcommands to run a test or component step by step. We can also set breakpoints to pause the test or component at pre-determined points. We can view the value of variables in the test or component each time it stops at a breakpoint in the Debug Viewer.
6)Analyzing Results:
After we run test or component, we can view the results.
1. View the results in the Results window.
After running the test or component, we can view the results of the run in the Test Results window. We can view a summary of the results as well as a detailed report.
2. Report defects identified during a run session.
Saturday, May 9, 2009
Guidelines for Unit Testing

1. Keep unit tests small and fast.
8. Keep tests independent
10. Name tests properly
11. Test public API
13. Think white-box
14. Test the trivial cases too
18. Test each feature once
19. Use explicit asserts
20. Provide negative tests
24. Write tests to reproduce bugs
25. Know the limitations
Wednesday, May 6, 2009
UnitTesitng And Guidelines
In computer programming, unit testing is a software verification and validation method where the programmer gains confidence that individual units of source code are fit for use. A unit is the smallest testable part of an application. Unit testing is a development procedure where programmers create tests as they develop software. The tests are simple short tests that test functionality of a particular unit or module of their code, such as a class or function.
Goal of UnitTesting:
The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. A unit test provides a strict, written contract that the piece of code must satisfy.
Monday, May 4, 2009
Quality Assurance & Testing Certifications!!
Guide to QA and Software Testing CertificationsTake a look at certifications available for Quality Assurance and Software Testing professionals. Whether you use a specific software testing tool, or are looking for a CBK, there are certifications to fit your needs.
CSTP & CTMThe Certified Software Test Professional (CSTP)and Certified Test Manager (CTM) certifications are education-based, meaning that you must complete training and experience requirements prior to taking exams. Both online and on-site training are offered.
Empirix CertificationGet information on Empirix's two levels of certification: Certified Empirix e-TEST™ suite Consultant (CEC) & Certified Empirix e-TEST suite Instructor (CEI).
Mercury InteractiveMercury Interactive offers two levels of certification: Certified Product Specialist (CPS), and Certified Product Instructor (CPI). These are designed for anyone who uses TestSuite, LoadRunner Web, LoadRunner DB, or Topaz.
QAI CertificationFind out the requirements and exam information for the Certified Software Quality Analyst (CSQA) or Certified Software Test Engineer (CSTE).
Rational CertificationFind out the steps to consultant and instructor level certification with Rational.
Segue CertificationSegue offers three certifications: Segue Certified SilkPerformer Engineer (SCSPE), Segue Certified SilkTest Engineer (SCSTE), & the Segue Certified SilkVision Project Manager (SCSVPM).
Software Quality Engineer Certification (CSQE)Apply for certification, get exam information, or download a brochure for the CSQE cert. ASQ also offers several other testing certifications (CQIA, CQE, & the Quality Manager Certification)
QA ForumsThis is an excellent place for anyone working in the QA or software testing. There are individual forums for software testing, QA engineering, for each testing tool, and one for certifications.
Certified Software Test Professional (CSTP)Offered by the International Institute for Software Testing, the CSTP is a software testing certification.
Wednesday, April 15, 2009
What Is a Good Test Case?
Designing good test cases is a complex art. The complexity comes from three sources. Test cases help us discover information. Different types of tests are more effective for different classes of information. Test cases can be "good" in a variety of ways. No test case will be good in all of them.
The objective of any Testing activity is to find the defects at the earliest stage. To test a product we must know
1. "What all the features to be tested?" (Objective of testing)
2. "How to test the features?" (Steps to test the objective)
3. "What will be the result if I execute the steps given to test the features?" (Expected behavior of the output for the objective) So, a good test case should be more precise. And it should be more focus towards testing one particular functionality rather than covering all functionality.
A test case is a document that describes an input, action, or event and an expected response, to determine if a feature of an application is working correctly. A test case should contain particulars such as test case identifier, test case name, objective, test conditions/setup, input data requirements, steps, and expected results.
A Test case is a sequence of steps to be executed to test the expected results for a part of am application. A test case could be defined for any of the following:
Data entry or data displayed
Functionality flow
Calculation
Desired output
Drop down list values
Data ranges and data values
Basically anything the tester need to define to make sure the application does not functional incorrectly at any certain scenario.
Friday, April 3, 2009
Software Development Methodologies and Testing.
Below are the different software Methodologies:
Waterfall Model:
The waterfall model is one of the earliest structured models for software development. It consists of the following sequential phases through which the development life cycle progresses:
System feasibility: In this phase, you consider the various aspects of the targeted business process, find out which aspects are worth incorporating into a system, and evaluate various approaches to building the required software.
Requirement analysis: In this phase, you capture software requirements in such a way that they can be translated into actual use cases for the system. The requirements can derive from use cases, performance goals, target deployment, and so on.
System design: In this phase, you identify the interacting components that make up the system. You define the exposed interfaces, the communication between the interfaces, key algorithms used, and the sequence of interaction.
Coding and unit testing: In this phase, you write code for the modules that make up the system. You also review the code and individually test the functionality of each module.
Integration and system testing: In this phase, you integrate all of the modules in the system and test them as a single system for all of the use cases, making sure that the modules meet the requirements.
Deployment and maintenance: In this phase, you deploy the software system in the production environment. You then correct any errors that are identified in this phase, and add or modify functionality based on the updated requirements.
The waterfall model has the following advantages:
- It allows you to compartmentalize the life cycle into various phases, which allows you to plan the resources and effort required through the development process.
- It enforces testing in every stage in the form of reviews and unit testing.
- It allows you to set expectations for deliverables after each phase.
The waterfall model has the following disadvantages:
- You do not see a working version of the software until late in the life cycle. For this reason, you can fail to detect problems until the system testing phase.
- Problems may be more costly to fix in this phase than they would have been earlier in the life cycle.
- When an application is in the system testing phase, it is difficult to change something that was not carefully considered in the system design phase.
Incremental or Iterative Development
The incremental, or iterative, development model breaks the project into small parts. Each part is subjected to multiple iterations of the waterfall model. At the end of each iteration, a new module is completed or an existing one is improved on, the module is integrated into the structure, and the structure is then tested as a whole.
Using the iterative development model, a project can be divided into iterations. The system is tested at the end of each iteration, and the test feedback is immediately incorporated at the end of each test cycle. The time required for successive iterations can be reduced based on the experience gained from past iterations. The system grows by adding new functions during the development portion of each iteration. Each cycle tackles a relatively small set of requirements; therefore, testing evolves as the system evolves.
In contrast, in a classic waterfall life cycle, each phase (requirement analysis, system design, and so on) occurs once in the development cycle for the entire set of system requirements.
The main advantage of the iterative development model is that corrective actions can be taken at the end of each iteration. The corrective actions can be changes to the specification because of incorrect interpretation of the requirements, changes to the requirements themselves, and other design or code-related changes based on the system testing conducted at the end of each cycle.
The main disadvantages of the iterative development model are as follows:
- The communication overhead for the project team is significant, because each iteration involves giving feedback about deliverables, effort, timelines, and so on.
- It is difficult to freeze requirements, and they may continue to change in later iterations because of increasing customer demands. As a result, more iterations may be added to the project, leading to project delays and cost overruns.
- The project requires a very efficient change control mechanism to manage changes made to the system during each iteration.
Prototyping Model:
The prototyping model assumes that you do not have clear requirements at the beginning of the project. Often, customers have a vague idea of the requirements in the form of objectives that they want the system to address. With the prototyping model, you build a simplified version of the system and seek feedback from the parties who have a stake in the project. The next iteration incorporates the feedback and improves on the requirements specification.
The prototypes that are built during the iterations can be any of the following:
A simple user interface without any actual data processing logic
The prototyping model consists of the following steps.
- Capture requirements. This step involves collecting the requirements over a period of time as they become available.
- Design the system. After capturing the requirements, a new design is made or an existing one is modified to address the new requirements.
- Create or modify the prototype. A prototype is created or an existing prototype is modified based on the design from the previous step.
- Assess based on feedback. The prototype is sent to the stakeholders for review. Based on their feedback, an impact analysis is conducted for the requirements, the design, and the prototype. The role of testing at this step is to ensure that customer feedback is incorporated in the next version of the prototype.
- Refine the prototype. The prototype is refined based on the impact analysis conducted in the previous step.
- Implement the system. After the requirements are understood, the system is rewritten either from scratch or by reusing the prototypes.
The main advantage of the prototyping model is that it allows you to start with requirements that are not clearly defined.
The main disadvantage of the prototyping model is that it can lead to poorly designed systems. The prototypes are usually built without regard to how they might be used later, so attempts to reuse them may result in inefficient systems.
Agile Methodology:
Most software development life cycle methodologies are either iterative or follow a sequential model (as the waterfall model does). As software development becomes more complex, these models cannot efficiently adapt to the continuous and numerous changes that occur. Agile methodology was developed to respond to changes quickly and smoothly. Although the iterative methodologies tend to remove the disadvantage of sequential models, they still are based on the traditional waterfall approach. Agile methodology is a collection of values, principles, and practices that incorporates iterative development, test, and feedback into a new style of development.
The key differences between agile and traditional methodologies are as follows:
- Development is incremental rather than sequential.
- Software is developed in incremental, rapid cycles. This results in small, incremental releases, with each release building on previous functionality.
- Each release is thoroughly tested, which ensures that all issues are addressed in the next iteration.
- People and interactions are emphasized, rather than processes and tools.
- Customers, developers, and testers constantly interact with each other. This interaction ensures that the tester is aware of the requirements for the features being developed during a particular iteration and can easily identify any discrepancy between the system and the requirements.
Tuesday, March 24, 2009
Steps to Test Automation Success
Test automation raises our hopes yet often frustrates and disappoints us. Although automation promises to deliver us from a tough situation, implementing automated tests can create as many problems as it solves. The key is to follow the rules of software development when automating testing.
Below are key steps:
Follow these steps as you staff, tool, or schedule your test automation project, and you will be well on your way to success.
- Improve the Testing Process
- Define Requirements
- Prove the Concept
- Champion Product Testability
- Design for Sustainability
- Plan for Deployment
- Face the Challenges of Success
Monday, March 16, 2009
QTP FrameWork:
What is QTP Automation Framework,what is the use of that frame work?
Automation framework is nothing but a set of guidelines designed by expert to accomplish a task in an effective,eficcient and an optimised way.
Automation Framework is a Standard/Procedure/Guidelines/process which is use to Automation Planning with respect to AUT.
There are 4 different types of frame work
1. Linear
2. Modular
3.Keyword
4.Hybrid
Linear Framework: If your application is supposed to Regression run on Local System then this framework is better.
Modular Framework: If AUT is supposed to Regression run in which More than one Action has to be performing for the same script then Modular framework is better. You might be making your test Modular by dividing your test into many re-usable actions and either any action can call any of the action within that test.
Keyword Driven Framework:It sound like business process testing where you might be able to write business logics/code and develop your script and those scripts can be call from outside of your test. Moreover there might be various functions libraries to be build and to be use, Recovery Scenarios, OR maintenance etc will provide your test Reusable.
Friday, March 13, 2009
Automation Tool QTP
Quick Test Professional (QTP) is an automated functional Graphical User Interface (GUI) testing tool created by the HP subsidiary Mercury Interactive that allows the automation of user actions on a web or client based computer application. It is primarily used for functional regression test automation. QTP uses a scripting language built on top of VBScript to specify the test procedure, and to manipulate the objects and controls of the application under test.
Friday, March 6, 2009
Quality Tips for Software
Web application security testing checklist TIP - Testing your Web application security is something that needs be taken seriously. The best way to be successful is to prepare in advance and know what to look for.
Pros and cons of requirements-based software testing TIP - Learn about the strengths and benefits of requirements-based testing as well as what the detractors say -- mostly based on incorrect assumptions about requirements.
Two-minute guide to determining software testing coverage TIP - Get a crash course on deciding which features to test and when and how to test them.
