Wednesday, July 21, 2010

Bug or Defect Report

Lets assume in your application under test you want to create a new user with user information, for that you need to logon into the application and navigate to USERS menu > New User, then enter all the details in the ‘User form’ like, First Name, Last Name, Age, Address, Phone etc. Once you enter all these information, you need to click on ‘SAVE’ button in order to save the user. Now you can see a success message saying, “New User has been created successfully”.
But when you entered into your application by logging in and navigated to USERS menu > New user, entered all the required information to create new user and clicked on SAVE button. BANG! The application crashed and you got one error page on screen. (Capture this error message window and save as a Microsoft paint file)
Now this is the bug scenario and you would like to report this as a BUG in your bug-tracking tool.
How will you report this bug effectively?
Here is the sample bug report for above mentioned example:(Note that some ‘bug report’ fields might differ depending on your bug tracking system)
SAMPLE BUG REPORT:

Bug Title or Name: Application crash on clicking the SAVE button while creating a new user.Bug ID: (It will be automatically created by the BUG Tracking tool once you save this bug) Area Path: USERS menu > New Users Build Number: Version Number 5.0.1 Severity: HIGH (High/Medium/Low) or 1 Priority: HIGH (High/Medium/Low) or 1 Assigned to: Developer-X Reported By: Your Name Reported On: Date DefectStatus: New/Open/Active (Depends on the Tool you are using)Environment: Windows 2003/SQL Server 2005

Description:Application crash on clicking the SAVE button while creating a newuser, hence unable to create a new user in the application.

Steps To Reproduce:

1) Logon into the application
2) Navigate to the Users Menu > New User
3) Filled all the user information fields
4) Clicked on ‘Save’ button
5) Seen an error page “ORA1090 Exception: Insert values Error…”
6) See the attached logs for more information (Attach more logs related to bug..IF any)
7) And also see the attached screenshot of the error page.Expected result: On clicking SAVE button, should be prompted to a success message “New User has been created successfully”.(Attach ‘application crash’ screen shot.. IF any)Save the defect/bug in the BUG TRACKING TOOL. You will get a bug id, which you can use for further bug reference.Default ‘New bug’ mail will go to respective developer and the default module owner (Team leader or manager) for further action.

QTP quick reference sample code

References:
http://qtp.blogspot.com/2007/05/checkpoints-in-qtp-quicktest.html
http://www.learnqtp.com/
http://www.qtp10.com/

Indexing:
Browser("Amazon.com: Online Shopping").Page("Amazon.com: Online Shopping").WebElement("Movies, Music & Games").Clickwait(5)Browser("Amazon.com: Online Shopping").Page("Amazon.com: Online Shopping").Link("Movies & TV").Clickwait(5)Browser("Amazon.com: Online Shopping").Page("Amazon.com Movies & TV:").Link("text:=Anime","index:=1").Click'Browser("Amazon.com: Online Shopping").WinToolbar("ToolbarWindow32").Click

---------------------
SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","","C:\Documents and Settings\test","open"
Browser("Welcome: Mercury Tours").Page("Page").Sync
Browser("Welcome: Mercury Tours").CloseAllTabs
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "mercury"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "4c3c2d6874ae8db13192471656044dee3a37c0b6"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 4,2
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebRadioGroup("tripType").Select "oneway"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select "Seattle"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").ActiveX("Java Plug-in 1.6.0_20").WinButton("View Calendar").Click
Window("Select Departure Date").WinButton("29").Click
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select "Portland"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 57,14
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Sync




SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","","C:\Documents and Settings\test","open"

Browser("Welcome: Mercury Tours").Navigate "http://newtours.demoaut.com/"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Sync

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("name:= userName", "type:=text").Set"mercury"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("name:= password", "type:=password").Set"mercury"

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Link("outertext:=Hotels").Click
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Link("name:=Image").Click
'Dialog("QuickTest Professional").Activate
'Dialog("QuickTest Professional").Activate


Browser(“Browser”).Page(“Page”).Link(“outertext=”&objval, “index=”&k).Click
--------------------------
Recording Types:
· Normal
· Analog
· Low level

Object Repository
· Local repository
· Shared repository - .tsr


Username – webedit – set
Radio button – webradiogroup – select
Password – setsecure –

Regular expression – User for dynamic objects
Object repository – change the outertext value.

Parameterization
Create an excel sheet in C drive and give the data to be parameterized
Add the following in the starting of the code
Datatable.importsheet “C:test.xls”
Un = datatable.value (“Username”)
Pwd = datatable.value (“password”)
Eml = datatable.value (“Email”)
Msgbox Un
Msgbox Pwd
Msgbox Eml

To get a particular row from datatable
Datatable.importsheet “C:test.xls”
R = datatable.getrowcount
For i= 2 to 3
Datatable.setcurrentrow (i)
Un = datatable.value (“Username”)
Pwd = datatable.value (“password”)
Eml = datatable.value (“Email”)
Msgbox Un
Msgbox Pwd
Msgbox Eml

To take alternative data from the datatable
R= datatable.getrowcount
Msgbox R
For i=1 to R step 2

Topics :
· Parametization
· Object spy
· Regular exp
· Action concept
· Data tables
· Basics of descriptive programming
· Virtual objects
· Recovery scenario

Example:
Datatable.importsheet "C:/test.xlsx,1,1"
Un = datatable.value ("Username")
Pwd = datatable.value ("password")
'Eml = datatable.value (“Email”)
Msgbox Un
Msgbox Pwd
'Msgbox Eml
SystemUtil.Run "iexplore","","C:\Documents and Settings\test",""
Browser("Browser").Page("Page").Sync
Browser("Browser").Navigate "http://www.amazon.com/"
Browser("Browser").Page("Amazon.com: Online Shopping").Link("Start here").Click
Browser("Browser").Page("Sign In").WebEdit("email").Set "yasothai@ustglobal.com"
Browser("Browser").Page("Sign In").WebRadioGroup("action").Select "new-user"
Browser("Browser").Page("Sign In").Image("sign in using our secure").Click 46,12
Browser("Browser").Page("Amazon.com Registration").WebEdit("userName").Set "Un"
Browser("Browser").Page("Amazon.com Registration").WebEdit("emailCheck").Set "yasothai@ustglobal.com"
Browser("Browser").Page("Amazon.com Registration").WebList("month").Select "March"
Browser("Browser").Page("Amazon.com Registration").WebList("day").Select "06"
Browser("Browser").Page("Amazon.com Registration").WebEdit("password").Set Pwd
Browser("Browser").Page("Amazon.com Registration").WebEdit("passwordCheck").Set pwd
Browser("Browser").Page("Amazon.com Registration").Image("continue-blue-arrow._V19219331").Click 55,8


Checkpoint:
Instead of checkpoints they use IF conditions.
XML checkpoints & Database checkpoints are for standalone/desktop applications.
a. Standard
b. Text
c. Text area – used for desktop applications
d. Bitmap
e. Database
f. Accessibility
g. XML

IF condition instead of checkpoints:
Browser("welcome:Mercury Tours").page("welcome:mercury tours").webedit ("username").set "tutorial"
X= Browser("welcome:Mercury Tours").page("welcome:mercury tours").webedit ("username").GetROProperty("value")
If trim(x)="tutorial" then
Browser("welcome:Mercury Tours").page("welcome:mercury tours").webedit ("password").set "tutorial"
else reporter.ReportEvent.micfail."entering user name", "failed"
Y= Browser("welcome:Mercury Tours").page("welcome:mercury tours").webedit ("password").GetROProperty("value")
if trim( y)=tutorial then
Browser("welcome:Mercury Tours").page("welcome.mercury.tourse").image("sign-in").click
End if
End if

Paramterization
Browser(“Browser”).Page(“Page”).Link(“outertext=”&objval, “index=”&k).Click
Datatable.importsheet "D:\Data2.xls",1,1
Un = Datatable.Value ("Username")
Pwd = datatable.Value ("Password")
Msgbox Un
Msgbox Pwd
Datatable.value(“Res”)=”Pass”
Database.Export”D”\Data2.xls”

1.Record and Run a scenario
2. Runtime settings ->sync seconds =0; use page.sync
3.Object Repository
4.Regular Expressions
5. Capture “Anime” in Amazon.com using regular exp.
6. Create Objects in Object Repository and highlight in the application
7.Parameterization
- Import a sheet
-Run with diff set of username and passwd
- Set current row/particular row
8.Descriptive Programming
9.Recovery scenario


*Functions, Data table export, Get Runtime Object property, Fire event,

' record web page and click on insert checkpoints while recording
Browser("Sign-on: Mercury Tours").Page("Welcome: Mercury Tours").SyncBrowser("Sign-on: Mercury Tours").Navigate "http://newtours.demoaut.com/"Browser("Sign-on: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "tutorial"Browser("Sign-on: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Check CheckPoint("userName")'Window("Test Results").Page("Welcome: Mercury Tours").Check CheckPoint("Welcome: Mercury Tours")DbTable("DbTable").Check CheckPoint("DbTable")
Browser("Sign-on: Mercury Tours").Page("Sign-on: Mercury Tours").Image("html").Check CheckPoint("html")Dialog("QuickTest Professional").Activate

Test Plan Vs Test Strategy

Test Strategy
A Test Strategy document is a high level document and normally developed by project manager. This document defines “Testing Approach” to achieve testing objectives. The Test Strategy is normally derived from the Business Requirement Specification document.
The Test Stategy document is a static document meaning that it is not updated too often. It sets the standards for testing processes and activities and other documents such as the Test Plan draws its contents from those standards set in the Test Strategy Document.
Some companies include the “Test Approach” or “Strategy” inside the Test Plan, which is fine and it is usually the case for small projects. However, for larger projects, there is one Test Strategy document and different number of Test Plans for each phase or level of testing.
Components of the Test Strategy document
Scope and Objectives
Business issues
Roles and responsibilities
Communication and status reporting
Test deliverability
Industry standards to follow
Test automation and tools
Testing measurements and metrices
Risks and mitigation
Defect reporting and tracking
Change and configuration management
Training plan

Test Plan
The Test Plan document on the other hand, is derived from the Product Description, Software Requirement Specification SRS, or Use Case Documents.The Test Plan document is usually prepared by the Test Lead or Test Manager and the focus of the document is to describe what to test, how to test, when to test and who will do what test.
It is not uncommon to have one Master Test Plan which is a common document for the test phases and each test phase have their own Test Plan documents.
There is much debate, as to whether the Test Plan document should also be a static document like the Test Strategy document mentioned above or should it be updated every often to reflect changes according to the direction of the project and activities.My own personal view is that when a testing phase starts and the Test Manager is “controlling” the activities, the test plan should be updated to reflect any deviation from the original plan. After all, Planning and Control are continuous activities in the formal test process.
Test Plan Contains:
Test Plan id
Introduction
Test items
Features to be tested
Features not to be tested
Test techniques
Testing tasks
Suspension criteria
Features pass or fail criteria
Test environment (Entry criteria, Exit criteria)
Test delivarables
Staff and training needs
Responsibilities
Schedule

Web Application or Web base testing

Web based applications are of 3 tier applications (developed for Internet / intranet / xtranet)Here we will be having Browser, web server and DB server.
The applications accessible in browser would be developed in HTML, DHTML, XML, JavaScript etc. (We can monitor through these applications)
Applications for the web server would be developed in Java, ASP, JSP, VBScript, JavaScript, Perl, Cold Fusion, PHP etc. (All the manipulations are done on the web server with the help of these programs developed)
The DBserver would be having oracle, sql server, sybase, mysql etc. (All data is stored in the database available on the DB server)

Web testing checklist:
1) Functionality Testing
2) Usability testing
3) Interface testing
4) Compatibility testing
5) Performance testing
6) Security testing
1) Functionality Testing:
Test for – all the links in web pages, database connection, forms used in the web pages for submitting or getting information from user, Cookie testing.
Check all the links:
Test the outgoing links from all the pages from specific domain under test.
Test all internal links.
Test links jumping on the same pages.
Test links used to send the email to admin or other users from web pages.
Test to check if there are any orphan pages.
Lastly in link checking, check for broken links in all above-mentioned links.
Test forms in all pages:Forms are the integral part of any web site. Forms are used to get information from users and to keep interaction with them. So what should be checked on these forms?
First check all the validations on each field.
Check for the default values of fields.
Wrong inputs to the fields in the forms.
Options to create forms if any, form delete, view or modify the forms.
Let’s take example of the search engine project currently I am working on, In this project we have advertiser and affiliate signup steps. Each sign up step is different but dependent on other steps. So sign up flow should get executed correctly. There are different field validations like email Ids, User financial info validations. All these validations should get checked in manual or automated web testing.
Cookies testing:Cookies are small files stored on user machine. These are basically used to maintain the session mainly login sessions. Test the application by enabling or disabling the cookies in your browser options. Test if the cookies are encrypted before writing to user machine. If you are testing the session cookies (i.e. cookies expire after the sessions ends) check for login sessions and user stats after session end. Check effect on application security by deleting the cookies. (I will soon write separate article on cookie testing)
Validate your HTML/CSS:If you are optimizing your site for Search engines then HTML/CSS validation is very important. Mainly validate the site for HTML syntax errors. Check if site is crawlable to different search engines.
Database testing:Data consistency is very important in web application. Check for data integrity and errors while you edit, delete, modify the forms or do any DB related functionality.Check if all the database queries are executing correctly, data is retrieved correctly and also updated correctly. More on database testing could be load on DB, we will address this in web load or performance testing below.
2) Usability Testing:
Test for navigation:Navigation means how the user surfs the web pages, different controls like buttons, boxes or how user using the links on the pages to surf different pages.Usability testing includes:Web site should be easy to use. Instructions should be provided clearly. Check if the provided instructions are correct means whether they satisfy purpose.Main menu should be provided on each page. It should be consistent.
Content checking: Content should be logical and easy to understand. Check for spelling errors. Use of dark colors annoys users and should not be used in site theme. You can follow some standards that are used for web page and content building. These are common accepted standards like as I mentioned above about annoying colors, fonts, frames etc.Content should be meaningful. All the anchor text links should be working properly. Images should be placed properly with proper sizes.These are some basic standards that should be followed in web development. Your task is to validate all for UI testing
Other user information for user help:Like search option, sitemap, help files etc. Sitemap should be present with all the links in web sites with proper tree view of navigation. Check for all links on the sitemap.“Search in the site” option will help users to find content pages they are looking for easily and quickly. These are all optional items and if present should be validated.
3) Interface Testing:The main interfaces are:Web server and application server interfaceApplication server and Database server interface.
Check if all the interactions between these servers are executed properly. Errors are handled properly. If database or web server returns any error message for any query by application server then application server should catch and display these error messages appropriately to users. Check what happens if user interrupts any transaction in-between? Check what happens if connection to web server is reset in between?
4) Compatibility Testing:Compatibility of your web site is very important testing aspect. See which compatibility test to be executed:
Browser compatibility
Operating system compatibility
Mobile browsing
Printing options
Browser compatibility:In my web-testing career I have experienced this as most influencing part on web site testing.Some applications are very dependent on browsers. Different browsers have different configurations and settings that your web page should be compatible with. Your web site coding should be cross browser platform compatible. If you are using java scripts or AJAX calls for UI functionality, performing security checks or validations then give more stress on browser compatibility testing of your web application.Test web application on different browsers like Internet explorer, Firefox, Netscape navigator, AOL, Safari, Opera browsers with different versions.
OS compatibility:Some functionality in your web application is may not be compatible with all operating systems. All new technologies used in web development like graphics designs, interface calls like different API’s may not be available in all Operating Systems.Test your web application on different operating systems like Windows, Unix, MAC, Linux, Solaris with different OS flavors.
Mobile browsing:This is new technology age. So in future Mobile browsing will rock. Test your web pages on mobile browsers. Compatibility issues may be there on mobile.
Printing options:If you are giving page-printing options then make sure fonts, page alignment, page graphics getting printed properly. Pages should be fit to paper size or as per the size mentioned in printing option.
5) Performance testing:Web application should sustain to heavy load. Web performance testing should include:Web Load TestingWeb Stress Testing
Test application performance on different internet connection speed.In web load testing test if many users are accessing or requesting the same page. Can system sustain in peak load times? Site should handle many simultaneous user requests, large input data from users, Simultaneous connection to DB, heavy load on specific pages etc.
Stress testing: Generally stress means stretching the system beyond its specification limits. Web stress testing is performed to break the site by giving stress and checked how system reacts to stress and how system recovers from crashes.Stress is generally given on input fields, login and sign up areas.
In web performance testing web site functionality on different operating systems, different hardware platforms is checked for software, hardware memory leakage errors,
6) Security Testing:
Following are some test cases for web security testing:
Test by pasting internal url directly into browser address bar without login. Internal pages should not open.
If you are logged in using username and password and browsing internal pages then try changing url options directly. I.e. If you are checking some publisher site statistics with publisher site ID= 123. Try directly changing the url site ID parameter to different site ID which is not related to logged in user. Access should denied for this user to view others stats.
Try some invalid inputs in input fields like login username, password, input text boxes. Check the system reaction on all invalid inputs.
Web directories or files should not be accessible directly unless given download option.
Test the CAPTCHA for automates scripts logins.
Test if SSL is used for security measures. If used proper message should get displayed when user switch from non-secure http:// pages to secure https:// pages and vice versa.
All transactions, error messages, security breach attempts should get logged in log files somewhere on web server.

Wednesday, January 16, 2008

Testing Life Cycle - Roles and Responsibilities

Testing Life Cycle – Roles and Responsibilities
Clear communication protocol should be defined with in the testing team to ensure proper understanding of roles and responsibilities.
The roles chart should contain both on-site and off-shore team members.

  • Testing Life Cycle – Roles and Responsibilities
    Test Manager
    Single point contact between on site and offshore team
    Prepare the project plan.
    Test management
    Test planning
    Interact with onsite lead, Client QA manager.
    Team Management.
    Work Allocation to the team.
    Test coverage analysis.
    Co-ordination with onsite for issue resolution.
    Monitoring the deliverables.
    Verify readiness of the product for release through release review.
    Obtain customer acceptance on the deliverables
    Performing risk analysis when required
    Reviews and status reporting.
    Authorize intermediate deliverables and patch release to customer.
  • Test Lead
    Resolves technical issues for the product group
    Provide direction to the team member.
    Perform activities to the respective product group.
    Review and approve of test plan.
    Review test script/code.
    Approve completion of the integration testing.
    Conduct system/regression test.
    Ensure tests are conducted as per plan.
    Reports status to the offshore test manager.
  • Team Lead or Test Lead or Module Lead
    Must be able to independently lead a team of at least 5 engineers
    Must be able to provide technical guidance and be the technical "go to" person for the team
    Must also be able to perform planning, scheduling, tracking and status reporting
    Supporting pre-sales activities by providing inputs around estimation, approach, domain knowledge etc
    Enforces changes to test strategy based on the project context
    Provide ideas to improve the existing test processes commenting about quality of the application under test through factual information
    Accountable for the test schedules, effectiveness of the testing, morale of the team etc.
    Note:
    1) Able to lead independent teams of 4-5 engineers on software validation projects (functionality testing, test automation, IOT / compatibility testing, compliance & certification testing, I18N / L10N testing etc
    2) Be hands-on in test designing, automation, defect management, test reporting & analysis & independently troubleshoot & debug problems in test environments, test automation frameworks etc.
  • Test Engineer
    Development and Execution of the test cases and scripts
    Result capturing and analysis
    Defects reporting and status reporting.
  • Team Structure
    An effective testing team includes a mixture of members who has Testing expertise/Tools expertise.
    Database expertise/Domain/Technology expertise.
    Consultants/End users.
    The testing team must be properly structured, with defined roles and responsibilities that allow the testers to perform their function with minimal overlap.
    There should not be any certainty regarding which team member should perform which duties.
    The test manager will be facilitating any resources required for the testing team.
    Understanding Software Defects

Becoming an Influential Test Team Leader by Randall Rice, Rice Consulting Services, USA
The reason it is so important to add value to your team and to your organization is that when a test team is seen as just a group that finds defects, it's easy to see them as the problem. It's also easy to justify outsourcing such a group because they mainly do one job. This also leads to becoming a commodity within an organization, which can be bought from a variety of providers. In this mindset, management is very tempted to give the job to the people who can do it the cheapest, regardless of who can do it best. In this way, adding value helps make you an indispensable part of your organization.
Let's look at some ways you can add value to your team and to your organization.
Grow Each Member Cross Functionally
This means that each person can perform multiple tasks. When this happens you add depth to your team and you have additional backups when needed. You can also greatly multiply time and effort by having people who can do a variety of jobs at the same time.
To do this involves cross-training people in a variety of tasks that the test team performs. This can be done in on-the-job training or in formal training.
Just as a way of measuring the value of this, compute a 10% overall increase in value for each function on your team that has cross-functional support.
Find Each Person’s Passion And Focus On It
When you do this, you unleash excitement, productivity and creativity because people get to do what they love to do. In addition, attitudes and morale improve greatly. There is no doubt that when people do the things they love to do, they do their job better.
To do this requires that you understand each person and what motivates them. This means that you must know the individuals on your team and find out what they love to do. As a test team leader you become more like the coach of a sports team. A good coach knows the players and the positions where they add the most value on the team.
Add 20% value for each person working in their respective area that is exciting and interesting to them.
Make Each Person A Resident Expert On Something
This gives each person on the team a level of importance and respect because they know that the team is looking to them as “the expert.” Also, this motivates people to learn more about their area of expertise.
I first saw this in action when I performed an assessment at a large company that was probably the most dysfunctional organisation I had ever seen in terms of culture and process. However, one team seemed to stand out above the rest. They got along with each other and they did an excellent job. This team was a technically diverse group of individuals - one person was a software architect, one was a requirements analyst, another person was a tester, one was a programmer, another was a documentation specialist, and the leader came from marketing.
In speaking with their leader I learned their secret was that each person on the team was regarded as an expert in their respective area. When a decision was needed, the rest of the team looked first and foremost to the person who knew the most about that area and heeded their advice. This really helped them to gel as a team. It added a tremendous value to the organisation, because they were able to do their jobs better than anyone else.
By the way, every person I spoke with on that team loved their job. People on the other teams could hardly wait for the day to be over.
Add 10% value for each resident expert on your team.
Encourage Each Person On The Team To Be A Mentor
I don't recommend that you force people to become mentors, but rather encourage them based on what it can do for them and for others. In my experience, mentoring initiatives fail when they are seen as mandatory.
People can be a mentor to someone, although not necessarily on your team. Mentors are a big force in driving continuous learning and they can also promote what your team does to people outside of the team. A mentor can personalize training to individuals on your team in a way that could never be achieved in a classroom setting.
Add 20% value for each mentor on your team.
Encourage Each Person On The Team To Have A Mentor
The person’s mentor may or may not be on the team. By having a mentor, you have someone who can answer your questions, teaching you new things, and commit observations about your performance. And very importantly, a mentor can hold you accountable and can help you improve in ways that others can’t or won’t. Because of this, I highly recommend that the team leader have one or more mentors.
At 20% value for each person on your team that has a mentor.
Constantly Work To Build And Reinforce Skills
This can be done by formal training, as well as in formal training and mentoring. Training does not have to be formal or expensive to be effective. However, there must be personal motivation that causes a person to want to learn. If someone doesn't want to learn, it doesn't matter which method they choose!
Each person should have a skill building plan that includes all types of training, including independent research. My skill building plan is simple -- I spend 30 minutes a day on the topic I'm trying to learn about until I feel like I have enough knowledge to move on to something else. I don't just focus on testing or even technology. I spent time on whatever interests me and sometimes even on things that don't initially interest me.
Add 20% value for each person on your team that has and follows a skill building plan.
Play To Your Strengths and Add People To Fill Gaps
No individual is great at doing everything on a team, so find the things you do best and do them the most. Then, find others to fill the gaps. Even if you work diligently at trying to improve your weak areas, about the best you will become is average. If you spend your time doing what you're average at the expense of doing things you really excel in, that's not a good trade-off.
If you need to know your strengths and weaknesses, ask the others on your team or ask your mentor.
Add 25% value if people on your team are all working in their area of strength.
The Combined Value
Assuming a seven person team that performs eight major functions, here is how I would estimate the increase in the team’s value. Keep in mind, that these are just my own subjective estimates based on my own experience of what these would mean to me as a test team leader.
• Each function can be performed by more than one person: +80%• Each person working in their area of passion: +140%• Each person is an expert on something: +70%• Each person is a mentor: +140%• Each person has a mentor: +140%• Each person has a personal growth plan: +175%• Each person is working in their area of strength: +175%
Added together, these would give an increase in value of 920%. That’s an increase of over nine times in value!
Some people have suggested that the combined impact is not a summation, but rather a multiplication the cause of the synergistic effect that could be seen. For example, having someone that is a resident expert on something and being a mentor could have an added value in itself that is more than the value of the two added together. This may well be true, but I'm just trying to stay conservative in my numbers.
In fact, if you don't like these numbers, that's fine. I encourage you to estimate what each of these areas would mean for your team and do a similar calculation using your own numbers. I think most teams would be happy with just doubling their value!
Helpful Questions
In your efforts to learn about your team and its value, here are some questions that I have found helpful to ask. I'm dividing these between questions for your team and those you serve.
For your team:
What do you really like to do?What excites you?What do we do best as a team?What do we struggle with most as a team?Where do you see your greatest contribution to the team?Who do you respect most on the team and why?
To those your team serves (your customers):What value do you see from our services?What unrealized potential do you see in our services?
Conclusion
I hope this article is a catalyst for thinking about new and creative ways to add value to your team. I'm sure there's more than seven ways to do this, and the ways I've suggested will require effort and teamwork, but can be done with minimal out-of-pocket expense. You can also try this as an experiment or trial and see how it works without a huge commitment.
Always remember, that these are things that the team must want to do. People must see the value themselves of increasing their skills and contribution to the organization.
By doing these things your team will set itself apart as a well functioning and valued part of your organization. Hopefully, management will also see your team as an indispensable part of the organization.
Biography
Randall Rice is a consultant and trainer in software testing with over 30 years experience in building and testing systems. He will be presenting this topic as part of a half-day tutorial at EuroStar 2006 in Manchester called “Becoming an Influential Test Team Leader.” You can reach Randy from his web site at www.riceconsulting.com.

Monday, December 3, 2007

Bug Triage Meeting – Severity & Priority

Bug Triage Meetings (sometimes called Bug Councils) are project meetings in which open bugs are divided into categories. The most important distinction is between bugs that will not be fixed in this release and those that will be

There are three categories for the medical usage, software also three categories - bugs to fix now, bugs to fix later, and bugs we'll never fix

Triaging a bug involves:
Making sure the bug has enough information for the developers and makes sense
Making sure the bug is filed in the correct place
Making sure the bug has sensible "Severity" and "Priority" fields

Let us see what Priority and Severity means
Priority is Business;
Severity is Technical

In Triages, team will give the Priority of the fix based on the business perspective. They will check “How important is it to the business that we fix the bug?” In most of the times high Severity bug is becomes high Priority bug, but it is not always. There are some cases where high Severity bugs will be low Priority and low Severity bugs will be high Priority.

In most of the projects I worked, if schedule drawn closer to the release, even if the bug severity is more based on technical perspective, the Priority is given as low because the functionality mentioned in the bug is not critical to business.

Priority and Severity gives the excellent metrics to identify overall health of the Project. Severity is customer-focused while priority is business-focused. Assigning Severity for a bug is straightforward. Using some general guidelines about the project, testers will assign Severity but while assigning a priority is much more juggling act. Severity of the bug is one of the factors for assigning priority for a bug. Other considerations are might be how much time left for schedule, possibly ‘who is available for fix’, how important is it to the business to fix the bug, what is the impact of the bug, what are the probability of occurrence and degree of side effects are to be considered.

Many organizations mandate that bugs of certain severity should be at least certain priority. Example: Crashes must be P1; Data loss must be P1, etc. A severe bug that crashes the system only once and not always reproducible will not be P1, where as an error condition that results re-entry a portion of input for every user will be P1

Microsoft uses a four-point scale to describe severity of bugs and three-point scale for Priority of the bug. They are as follows

Severity
---------------
1. Bug causes system crash or data loss.
2. Bug causes major functionality or other severe problems; product crashes in obscure cases.
3. Bug causes minor functionality problems, may affect "fit anf finish".
4. Bug contains typos, unclear wording or error messages in low visibility fields.

Priority
---------------
1. Must fix as soon as possible. Bug is blocking further progress in this area.
2. Should fix soon, before product release.
3. Fix if time; somewhat trivial. May be postponed.

Wednesday, November 28, 2007

Localization Testing & Internationalization Testing

Globalization
Globalization is the process of developing, manufacturing and s/w products that are intended for worldwide distribution. An important feature of these products is that, they support multiple languages and locale. In a globalize product, code is separated from the messages or text that it uses. This enables software to be used with different languages without having to rebuilding the complete s/w. Globalization is achieved through the Internationalization and localization. It is important to understand locale as supporting different locale is more than supporting different language. In addition to languages and geographical location, locale incorporates cultural information such as time, date, font, currency convention etc. Differences in spelling, currency and other conventions make testing with different locales necessary. Internationalization In I18N testing, first step is to identify all the textual information in the sytem. This includes all the text present on the application’s GUI, any text/messages that application is producing including error message/warning and help/documentation etc. Main focus of the I18N testing is not to find functional defects, but to make sure that product is ready for the global market. As in other non functional testing it is assumed that functional testing has been completed and all the functionality related defects are identified and removed. I18N testing can be divided in to two parts. First, to make sure that application’s GUI or functionality will not be broken with the translated text. Second to make sure that translation of all the strings have happened properly. This activity is called Translation Verification Testing and is normally conducted by person who knows the language very well. To make sure that application’s functionality or GUI will not be broken after the translation a popular technique known as pseudo-translation is used. In pseudo-translation instead of translating it completely, it is translated in a pseudo manner. For example an externalized string “Bad Command” can be translated in Japanese as [JA XXXXX Bad Command XXXXXX JA]. Now if the product is launched with locale as Japanese it should show the externalized string as given above instead of “Bad Command”. There are utilities to do this job for you, to do pseudo-translation of all the externalized strings of your application. During pseudo-translation you need to make sure that you are doing it roughly according to the rule. For example, width is normally expanded up to forty percent for the pseudo-translated strings as compare to the English. As stated above, In I18N testing focus is not on the functionality but on the translation and locale related issues. Once all the externalized strings are pseudo-translated, you need to make sure that you have test cases for every message or text element present in the system. Once it is done, same set of test cases can be executed on the properly translated build to make sure that translation is proper.

Localization Testing (L8N orl8n)

Localization testing typically follows after internationalization testing, which verifies the product's readiness for localization and its international use in the required culture or locale.As part of localization testing, User Interface (UI) testing concentrates on the appearance of the product assuring that the product looks good to the end user. We perform a series of UI checks on every dialog in the software. This series includes steps such as:
All User Interface is localized
List box and Combo box items are localized and are not truncated.
No duplicate items on list box/combo box.
Any available drop-down menus are localized.
The User Interface format and design is comparable to the source version.
No duplicate hotkeys exist.
No items are truncated.
No items overlap.
When a control gets focus, it does not truncate the text.
Alternative texts (tool-tips) are localized.
Additional UI testing steps check the localized product compliance with the relevant national language standards, such as formats consistency, capitalization, alphabet, currencies format etc.Localization testing involves also a number of functionality testing passes to verify if no functionality issues have been introduced into the product during the process of localization. The basic functionality tests include setup and upgrade tests run in the localized environment. The complete functional testing as a standalone service will verify the product's behavior in both source and localized versions and environments.

Internationalization testing (i18n or I18N)
Common i18n issues:
Adding a New Character Set or Language
8 bit clean (many encodings need to use the 8th bit for non-ASCII characters)
1 character = 1 byte (some Asian characters are multibyte)
Layout
Locale-sensitive integers (e.g. date/time)
English protocol elements (English retained on-the-wire, but translation on UI)
Issues with when reading text into fixed-size buffers (partial characters)
Special encodings of non-ASCII text (e.g. encoding standards for sending email)
Front Ends (FEs – e.g. winfe (Windows), macfe (Mac), xfe (Unix))
Complex Language Support (BiDi, Thai, Indic, etc.)
Non-Latin Layout Styles (Vertical, Ruby, etc)
Platform Independent IME Support
Natural Language Dictionary Lookup
Proofing API (in addition to spell checking)
Import/Export of database formats
Hardcopy outputs


For more information refer:
http://www.testinggeek.com/

Build Verification Testing (BVT)

Build Verification Testing (BVT)
Have you ever received a build into testing which was missing files, had the wrong file, or a file with the incorrect language version? These and other problems associated with the file properties of each new build usually result from a improperly designed build verification test (BVT) suite. The primary purpose of the BVT is to validate the integrity of each new build of a project. Some teams combine the BVT along with the Build Acceptance Test (BAT) which is not necessarily a bad approach if the test team owns the BVT. However, I have found in these situations the test team usually places more emphasis on the BAT to verify basic functionality of the build rather than the BVT which actually validates the build and thus misses critical problems with the build itself.
Ideally, the person or team that builds the project should be responsible for validating each new build before releasing it to build acceptance testing, but the test team should have oversight into what is being checked. It does no good to run a new build through a BAT process only to discover a missing file, or a German help file in a Japanese language version of the project. At a minimum the BVT should check every file in each new build for:
 Correct version information
 Correct time and date stamps
 Appropriate file flags
 Correct cyclic redundancy check (CRC) keys
 Correct language information
 ISO 9660 file naming conventions based on standards
 Viruses
Changes in the build can help the test team focus on critical areas, or identify areas of the project that should be revisited. Other information a BVT should provide to the test team includes:
 New files added to the project build
 Files removed from the project build
 Files with binary changes
It might also be a good idea to scan file names for public acceptability. For example, I remember one project in which a clever developer decided to call his new library 'sexme.dll.' This file name was released in the shipped product and several customers objected.
Even on large projects with several hundred files the tests to validate the integrity of a build would not take more than a few minutes using automated processes. The few minutes spent validating each new build is well justified considering the cost of releasing an build into testing and discovering the build is invalid (even though it may have passed the BAT) because then you have to question the validity of the test effort on that build.

Definition Here’s the definition we use: “A build acceptance test (sometimes also called build verification test a.k.a. BVT, smoke test, quick check, or the like) is a set of tests run on each new build of a product to verify that the build is testable before the build is released into the hands of the test team. The build acceptance test is generally a short set of tests, which exercises the mainstream functionality of the application. Any build that fails the build verification test is rejected, and testing continues on the previous build (provided there has been at least one build that has passed the acceptance test). So build acceptance tests are a type of regression testing that is done every time a new build is taken. Build acceptance tests are important because they let developers know right away if there is a serious problem with the build, and they save the test team wasted time and frustration.”

In testing, a Build Verification Test (BVT), also known as Build Acceptance Test, is a set of tests run on each new build of a product to verify that the build is testable before the build is released into the hands of the test team. The build acceptance test is generally a short set of tests, which exercises the mainstream functionality of the app s/w Any build that fails the build verification test is rejected, and testing continues on the previous build (provided there has been at least one build that has passed the acceptance test).
BVT is important because it lets developers know right away if there is a serious problem with the build, and they save the test team wasted time and frustration by avoiding test of an unstable build.

Thursday, November 15, 2007

Testing: Automation QTP FAQs

1. What automating testing tools are you familiar with? Win Runner, Load runner, QTP, Silk Performer, Test director, Rational robot, QA run. 2. How did you use automating testing tools in your job? 1. For regression testing 2. Criteria to decide the condition of a particular build 3. Describe some problem that you had with automating testing tool. The problem of win runner identifying the third party controls like infragistics control. 4. How do you plan test automation? 1. Prepare the automation Test plan 2. Identify the scenario 3. Record the scenario 4. Enhance the scripts by inserting check points and Conditional Loops 5. Incorporated Error Handler 6. Debug the script 7. Fix the issue 8. Rerun the script and report the result. 5. Can test automation improve test effectiveness? Yes, automating a test makes the test process: 1.Fast 2.Reliable 3.Repeatable 4.Programmable 5.Reusable 6.Comprehensive 6. What is data - driven automation? Testing the functionality with more test cases becomes laborious as the functionality grows. For multiple sets of data (test cases), you can execute the test once in which you can figure out for which data it has failed and for which data, the test has passed. This feature is available in the Win Runner with the data driven test where the data can be taken from an excel sheet or notepad. 7. What are the main attributes of test automation? software test automation attributes : Maintainability - the effort needed to update the test automation suites for each new release Reliability - the accuracy and repeatability of the test automation Flexibility - the ease of working with all the different kinds of automation test ware Efficiency - the total cost related to the effort needed for the automation Portability - the ability of the automated test to run on different environments Robustness - the effectiveness of automation on an unstable or rapidly changing system Usability - the extent to which automation can be used by different types of users

8. Does automation replace manual testing? There can be some functionality which cannot be tested in an automated tool so we may have to do it manually. Therefore manual testing can never be replaced. (We can write the scripts for negative testing also but it is hectic task).When we talk about real environment we do negative testing manually. 9. How will you choose a tool for test automation? Choosing of a tool depends on many things ... 1. Application to be tested 2. Test environment 3. Scope and limitation of the tool. 4. Feature of the tool. 5. Cost of the tool. 6. Whether the tool is compatible with your application which means tool should be able to interact with your application 7. Ease of use 10. How you will evaluate the tool for test automation? We need to concentrate on the features of the tools and how this could be beneficial for our project. The additional new features and the enhancements of the features will also help. 11. What are main benefits of test automation? FAST, RELIABLE, COMPREHENSIVE, REUSABLE 12. What could go wrong with test automation? 1. The choice of automation tool for certain technologies 2. Wrong set of test automated 13. How you will describe testing activities? Testing activities start from the elaboration phase. The various testing activities are preparing the test plan, Preparing test cases, Execute the test case, Log teh bug, validate the bug & take appropriate action for the bug, Automate the test cases. 14. What testing activities you may want to automate? 1. Automate all the high priority test cases which need to be executed as a part of regression testing for each build cycle. 15. Describe common problems of test automation. The common problems are: 1. Maintenance of the old script when there is a feature change or enhancement 3. The change in technology of the application will affect the old scripts 16. What types of scripting techniques for test automation do you know? 5 types of scripting techniques: Linear Structured Shared Data Driven Key Driven 17. What are principles of good testing scripts for automation? 1. Proper code guiding standards 2. Standard format for defining functions, exception handler etc 3. Comments for functions 4. Proper error handling mechanisms 5. The appropriate synchronization techniques 18. What tools are available for support of testing during software development life cycle? Testing tools for regression and load/stress testing for regression testing like, QTP, load runner, rational robot, win runner, silk, test complete, Astra are available in the market. -For defect tracking BugZilla, Test Runner are available. 19. Can the activities of test case design be automated? As I know it, test case design is about formulating the steps to be carried out to verify something about the application under test. And this cannot be automated. However, I agree that the process of putting the test results into the excel sheet. 20. What are the limitations of automating software testing? Hard-to-create environments like “out of memory”, “invalid input/reply”, and “corrupt registry entries” make applications behave poorly and existing automated tools can’t force these condition - they simply test your application in “normal” environment. 21. What skills needed to be a good test automaton engineer? 1. Good Logic for programming. 2. Analytical skills. 3. Pessimestic in Nature. 22. How to find that tools work well with your existing system? 1. Discuss with the support officials 2. Download the trial version of the tool and evaluate 3. Get suggestions from people who are working on the tool 23. Describe some problem that you had with automating testing tool. 1. The inability of win runner to identify the third party control like infragistics controls 2. The change of the location of the table object will cause object not found error. 3. The inability of the win runner to execute the script against multiple languages 24. What are the main attributes of test automation? Maintainability, Reliability, Flexibility, Efficiency, Portability, Robustness, and Usability - these are the main attributes in test automation. 25. What testing activities you may want to automate in a project? Testing tools can be used for: * Sanity tests (which is repeated on every build), * stress/Load tests (U simulate a large no of users, which is manually impossible) & * Regression tests(which are done after every code change)
26. How to find that tools work well with your existing system? To find this, select the suite of tests which are most important for your application. First run them with automated tool. Next subject the same tests to careful manual testing. If the results are coinciding you can say your testing tool has been performing. 27. How will you test the field that generates auto numbers of AUT when we click the button 'NEW" in the application? We can create a text file in a certain location, and update the auto generated value each time we run the test and compare the currently generated value with the previous one will be one solution. 28. How will you evaluate the fields in the application under test using automation tool? We can use Verification points (rational Robot) to validate the fields .Ex. Using object data, object data properties VP we can validate fields. 29. Can we perform the test of single application at the same time using different tools on the same machine? No. The Testing Tools will be in the ambiguity to determine which browser is opened by which tool. 30. Difference between Web application Testing and Client Server Testing. State the different types for Web application Testing and Client Server Testing types? which win runner 7.2 version compatible with internet explorer, firefox,n.n 31. What is 'configuration management'? Configuration management is a process to control and document any changes made during the life of a project. Revision control, Change Control, and Release Control are important aspects of Configuration Management. 32. How to test the Web applications? The basic difference in web testing is here we have to test for URL's coverage and links coverage. Using Win Runner we can conduct web testing. But we have to make sure that Web test option is selected in "Add in Manager". Using WR we cannot test XML objects. 33. What are the problems encountered during the testing the application compatibility on different browsers and on different operating systems Font issues, alignment issues 35. How testing is proceeded when SRS or any other document is not given? If SRS is not there we can perform exploratory testing. In Exploratory testing the basic module is executed and depending on its results, the next plan is executed.

36. How do we test for severe memory leakages? By using Endurance Testing. Endurance Testing means checking for memory leaks or other problems that may occur

Sample Testing CV

Mob :
Narendra Email -


Objective

Seeking a challenging & growth oriented career in Software Testing and Quality Management

Work Summary

X+ years of experience in Testing (change or Write accordingly as applicable for u)

· Experience in designing test cases and execution
Manual Testing and Automation
Experience in client/server and Web Testing
Good knowledge of OOP’s Concepts and SDLC
Quick learner and excellent team player, ability to meet tight deadlines and work under pressure
Knowledge on QTP, Silk Test
ü Around 3 years of professional experience in Software Development & Testing.
ü Expertise in using the Automation Testing Tools WinRunner, LoadRunner & Test Director.
ü Strong in Software Development Life Cycle and Test Methodology.
ü Good experience in Design and Execution of Manual and Automated Test Cases & Scenarios.
ü Efficient in writing Test Scripts using Automation Tools.
ü Experience in Testing of Client/ Server and Web Based Applications.
Involved in Functional Testing, Regression Testing, Compatibility Testing & System Testing
Experience in Developing and Executing test scripts using Win runner.
Experience in performing techniques like Functional testing,User Interface
tesing,Regression testing and System testing.
Experience in Web based Applications and Clint Server Applications.
Experience in preparing and executing Test Cases and Test Procedures.
Participated in code reviews and Requirement analysis.
Exposure in using Bug Tracking Tools.
· Clear understaning of Software Development Life Cycle.
· Reporting bugs in conjunction with the development team.
· Self starter,Self motivated and Quick learner.
· Versatile Team player with good communications and Problem solving skills.


Educational Profile (Change Accordingly)

· Pursuing M.Sc (IT) from Manipal University.
· B.C.A from Osmania University with aggregate of 70%.

Technical Exposure

Skills
Testing Tools
WinRunner
Test Management Tool
Test Director
Languages
C, Java, VB, SQL and TSL
Internet Technologies
HTML
Databases
Oracle, Ms-Access
Operating Systems
Windows 98/NT/2k, Linux

Professional Experience (Change Accordingly)

Ø Working as a Test Engineer in xxxxxxxx from June 2003 to July 2004.

Nature of Work

Extensively used automated test tool Win Runner for GUI testing and Regression Testing

Projects

#1. Title (Change Accordingly)

Client : Critical Health Care Company, Mumbai
Duration : Feb 2004 to July 2004
Environment : Visual Basic 6.0, oracle and Windows 98
Tools : Win Runner 7.0
Role : Test Engineer

Description:

This comprehensive system includes modules for:
Admin, Reception, Appointment Scheduling,Reports, Clinical Data Repository and Help.

Responsibilities: (Change Accordingly)
· Prepared test cases and Execution
· Extensively involved in Functional, System and Regression testing
· Developed the Test script using Win Runner and Executing the Test Script
· Defect Tracking and Reporting· Developed & Executed automated scripts for the Salary module, Personal Profile module to perform Functional Testing and Regression Testing.· Developed automated scripts for the work permit module to perform User Interface Testing.· Review of test cases and test scripts written by the team members.· Participated in team reviews.



Project Details below

Personal Information Optional (Change Accordingly)

Date of Birth :
Marital Status :
Language Known :
Present Address :




Sunday, November 11, 2007

Stress Control!

Stress Control!
Simple modifications in posture, habits, thought, and behavior often go a long way toward reducing feelings of stress and tension. Here are 8 quick and simple things you can do immediately to help keep your stress level under control.
1. Control Your AngerWatch for the next instance in which you find yourself becoming annoyed or angry at something trivial or unimportant, then practice letting go - make a conscious choice not to become angry or upset. Do not allow yourself to waste thought and energy where it isn't deserved. Effective anger management is a tried-and-true stress reducer.
2. BreatheBreathe slowly and deeply. Before reacting to the next stressful occurrence, take three deep breaths and release them slowly. If you have a few minutes, try out breathing exercises such as meditation or guided imagery.
3. Slow Downwhenever you feel overwhelmed by stress, practice speaking more slowly than usual. You'll find that you think more clearly and react more reasonably to stressful situations. Stressed people tend to speak fast and breathlessly; by slowing down your speech you'll also appear less anxious and more in control of any situation.
4. Complete One Simple To DoJump start an effective time management strategy. Choose one simple thing you have been putting off (e.g. returning a phone call, making a doctor's appointment) and do it immediately. Just taking care of one nagging responsibility can be energizing and can improve your attitude.
5. Get Some Fresh AirGet outdoors for a brief break. Our grandparents were right about the healing power of fresh air. Don't be deterred by foul weather or a full schedule. Even five minutes on a balcony or terrace can be rejuvenating.
6. Avoid Hunger and DehydrationDrink plenty of water and eat small, nutritious snacks. Hunger and dehydration, even before you're aware of them, can provoke aggressiveness and exacerbate feelings of anxiety and stress.
7. Do a Quick Posture CheckHold your head and shoulders upright and avoid stooping or slumping. Bad posture can lead to muscle tension, pain, and increased stress.
8. Recharge at the Day's EndPlan something rewarding for the end of your stressful day, even if only a relaxing bath or half an hour with a good book. Put aside work, housekeeping or family concerns for a brief period before bedtime and allow yourself to fully relax. Don't spend this time planning tomorrow's schedule or doing chores you didn't get around to during the day. Remember that you need time to recharge and energize yourself - you'll be much better prepared to face another stressful day.

11 Ways to Keep Your Cool:
Dale Collie is an author, speaker, former US Army Ranger, CEO, and professor at West Point. His McGraw-Hill book, "Winning Under Fire: Turn Stress into Success the US Army Way," takes strategies from the battlefield into the boardroom and beyond. A Purple Heart recipient, Dale has succeeded in both the Army and the corporate world through his management and leadership strategies.
11 Ways to Keep Your Cool
· Do your own job.
· Get organized.
· Communicate with the boss and others.
· Control interruptions.
· Schedule family time.
· Exercise.
· Eat right.
· Get eight hours sleep a night.
· Let others know what bugs you.
· Learn new things about your job.
· Volunteer to help others.

Do your own job: When poor the work habits of others create stress, remember why you're there. Pay attention to your own job. You will not be rated on the performance of others, but the boss will note the quality of your work. Stay focused on the job you were hired for and let management deal with improving the department or the company. Don't get stressed about things that are not your responsibility.
Organization: Regardless of company expectations, you can alleviate a lot of your stress by organizing your workspace and getting a firm grasp on the work that must be done. Even if you have to pay for it yourself, get the tools needed to organize your effort, such as files, furniture, PDAs, software, and training. Work with your boss to prioritize projects and routine tasks. Only get concerned about unfinished work if the boss gives it a priority. You'll never get everything done, so pick the most important and file everything else in an easy to reach file drawer.
Communication: It's important to maintain your supervisor's comfort level, so meet with them as often as necessary to keep them informed of projects and progress. Give them updates the way they want them (email, memos, briefings, etc.), and persist in getting the feedback that is so important in reducing stress. Use this same strategy with those who give you information or products to do your job and those who depend on what you give them. Good communication is essential for good stress control.
Interruptions: Avoid stressful interruptions by controlling your schedule and your communications. Establish times for meeting with those who want information from you and hold them to it. The more persistent you are, the more organized they will be. Handle phone calls and respond to email during specific times. Develop a list of people and events that disrupt your job and work with each until it is under control.
Family Time: Family situations are among the greatest stressors at work. There's an old axiom that says, "If momma ain't happy, ain't nobody happy." It's true. Avoid future problems by prioritizing family time on your schedule and stick to it. Get professional help if you're unable to resolve sticky situations.
Exercise: More than 80% of all doctor's visits are stress-related. Those who find time to exercise, reduce stress, strengthen their immune system, and improve their well-being are much more effective than those who do not. Do a little research and talk with the experts to find out what fits your needs. Make exercise part of your work schedule if possible; don't let it cut into family time. Regular exercise can add years to your own life and make you more productive for your employer.
Nutrition: Proper nutrition is a key to stress control. The US Army recognizes proper nutrition as a critical element in controlling stress among combat soldiers and you must admit, your job is sometimes as stressful as combat. Get information to improve nutrition. You'll have to make some deliberate changes because our eating habits are affected by our culture, the expectations of others, and inadequate knowledge about what makes a proper diet. Learn what is needed and make a plan.
Rest: Take charge of your sleep habits in the same way you work on your eating habits. Sleep deprivation is a major stressor by itself and it adds to the problem with other stressful events. Cut out the late night television. Quit taking work home from the office. Change the pattern of your weekend parties. Get some new friends. Do whatever is necessary to get back on track with seven or eight hours sleep every night. Studies show that twenty-minute power naps make us more productive, so use part of your lunch break for nutrition and part for a short nap to control stress. You'll get more done.
Discussion: Tell people what's on your mind. If you can't ignore someone's special talent for bugging you, talk it over with him or her. There's a good chance they are unaware of the offense, so you don't need to get up tight about it. In a friendly tone of voice, let them know what gets under your skin and be ready to make some concessions yourself. As you now know, their irritating habit is probably magnified by other stressors, so make sure you've done what you can to control stress before challenging anyone.
Education: The more educated you are about your job, the less stressful it becomes. Even if you've been on the job for years, there's always more to learn about the upstream and downstream impact of what you do. Stay up to date with trade journals, books, and other research. Become the expert at what you do and coach others. While some companies do not pay for this type education, your own investment will make you more valuable to your company. What you know is portable - and it looks good on a resume.
Volunteer: Helping others has an immediate impact on stress levels. Build in some family time by volunteering as a family once a month. Build rapport with supervisors and co-workers by organizing a once-a-week lunchtime volunteer program. Lead a food or clothing collection for needy employees or families outside your company.
Each of these stress relievers works independently of the others. Find one that's practical for you and put it to work. Friends, family, and co-workers will all notice the changes in you and thank you for making the effort.
For more information, go to www.couragebuilders.com.

Performance Testing: LoadRunner FAQs

Interview Questions - Loadrunner
1) What is load testing? - Load testing is to test that if the application works fine with the loads that result from large number of simultaneous users, transactions and to determine weather it can handle peak usage periods.
2)What is Performance testing? - Timing for both read and update transactions should be gathered to determine whether system functions are being performed in an acceptable timeframe. This should be done standalone and then in a multi user environment to determine the effect of multiple transactions on the timing of a single transaction.
3)Did u use LoadRunner? What version? - Yes. Version 7.2.
4)Explain the Load testing process? -

Step 1: Planning the test. Here, we develop a clearly defined test plan to ensure the test scenarios we develop will accomplish load-testing objectives.
Step 2: Creating Vusers. Here, we create Vuser scripts that contain tasks performed by each Vuser, tasks performed by Vusers as a whole, and tasks measured as transactions.
Step 3: Creating the scenario. A scenario describes the events that occur during a testing session. It includes a list of machines, scripts, and Vusers that run during the scenario. We create scenarios using LoadRunner Controller. We can create manual scenarios as well as goal-oriented scenarios. In manual scenarios, we define the number of Vusers, the load generator machines, and percentage of Vusers to be assigned to each script. For web tests, we may create a goal-oriented scenario where we define the goal that our test has to achieve. LoadRunner automatically builds a scenario for us.
Step 4: Running the scenario.We emulate load on the server by instructing multiple Vusers to perform tasks simultaneously. Before the testing, we set the scenario configuration and scheduling. We can run the entire scenario, Vuser groups, or individual Vusers.
Step 5: Monitoring the scenario.We monitor scenario execution using the LoadRunner online runtime, transaction, system resource, Web resource, Web server resource, Web application server resource, database server resource, network delay, streaming media resource, firewall server resource, ERP server resource, and Java performance monitors.
Step 6: Analyzing test results. During scenario execution, LoadRunner records the performance of the application under different loads. We use Loadrunner’s graphs and reports to analyze the application’s performance.
5)When do you do load and performance Testing? - We perform load testing once we are done with interface (GUI) testing. Modern system architectures are large and complex. Whereas single user testing primarily on functionality and user interface of a system component, application testing focuses on performance and reliability of an entire system. For example, a typical application-testing scenario might depict 1000 users logging in simultaneously to a system. This gives rise to issues such as what is the response time of the system, does it crash, will it go with different software applications and platforms, can it hold so many hundreds and thousands of users, etc. This is when we set do load and performance testing.
6)What are the components of LoadRunner? - The components of LoadRunner are The Virtual User Generator, Controller, and the Agent process, LoadRunner Analysis and Monitoring, LoadRunner Books Online.
7)What Component of LoadRunner would you use to record a Script? - The Virtual User Generator (Vugen) component is used to record a script. It enables you to develop Vuser scripts for a variety of application types and communication protocols.
8)What Component of LoadRunner would you use to playback the script in multi user mode? - The Controller component is used to playback the script in multi-user mode. This is done during a scenario run where a Vuser script is executed by a number of Vusers in a group.
9)What is a rendezvous point? - You insert rendezvous points into Vuser scripts to emulate heavy user load on the server. Rendezvous points instruct Vusers to wait during test execution for multiple Vusers to arrive at a certain point, in order that they may simultaneously perform a task. For example, to emulate peak load on the bank server, you can insert a rendezvous point instructing 100 Vusers to deposit cash into their accounts at the same time.
10)What is a scenario? - A scenario defines the events that occur during each testing session. For example, a scenario defines and controls the number of users to emulate, the actions to be performed, and the machines on which the virtual users run their emulations.
11) Explain the recording mode for web Vuser script? - We use Vugen to develop a Vuser script by recording a user performing typical business processes on a client application. Vugen creates the script by recording the activity between the client and the server. For example, in web based applications, Vugen monitors the client end of the database and traces all the requests sent to, and received from, the database server. We use Vugen to: Monitor the communication between the application and the server; generate the required function calls; and Insert the generated function calls into a Vuser script.
12) Why do you create parameters? - Parameters are like script variables. They are used to vary input to the server and to emulate real users. Different sets of data are sent to the server each time the script is run. Better simulate the usage model for more accurate testing from the Controller; one script can emulate many different users on the system.
13) What is correlation? Explain the difference between automatic correlation and manual correlation? - Correlation is used to obtain data which are unique for each run of the script and which are generated by nested queries. Correlation provides the value to avoid errors arising out of duplicate values and also optimizing the code (to avoid nested queries). Automatic correlation is where we set some rules for correlation. It can be application server specific. Here values are replaced by data which are created by these rules. In manual correlation, the value we want to correlate is scanned and create correlation is used to correlate.
14) How do you find out where correlation is required? Give few examples from your projects? - Two ways: First we can scan for correlations, and see the list of values which can be correlated. From this we can pick a value to be correlated. Secondly, we can record two scripts and compare them. We can look up the difference file to see for the values which needed to be correlated. In my project, there was a unique id developed for each customer, it was nothing but Insurance Number, it was generated automatically and it was sequential and this value was unique. I had to correlate this value, in order to avoid errors while running my script. I did using scan for correlation.
15) Where do you set automatic correlation options? - Automatic correlation from web point of view can be set in recording options and correlation tab. Here we can enable correlation for the entire script and choose either issue online messages or offline actions, where we can define rules for that correlation. Automatic correlation for database can be done using show output window and scan for correlation and picking the correlate query tab and choose which query value we want to correlate. If we know the specific value to be correlated, we just do create correlation for the value and specify how the value to be created.
16) What is a function to capture dynamic values in the web Vuser script? - Web_reg_save_param function saves dynamic data information to a parameter.
17) When do you disable log in Virtual User Generator, When do you choose standard and extended logs? - Once we debug our script and verify that it is functional, we can enable logging for errors only. When we add a script to a scenario, logging is automatically disabled. Standard Log Option: When you select Standard log, it creates a standard log of functions and messages sent during script execution to use for debugging. Disable this option for large load testing scenarios. When you copy a script to a scenario, logging is automatically disabled Extended Log Option: Selectextended log to create an extended log, including warnings and other messages. Disable this option for large load testing scenarios. When you copy a script to a scenario, logging is automatically disabled. We can specify which additional information should be added to the extended log using the extended log options.
18) How do you debug a LoadRunner script? - Vugen contains two options to help debug Vuser scripts-the Run Step by Step command and breakpoints. The Debug settings in the Options dialog box allow us to determine the extent of the trace to be performed during scenario execution. The debug information is written to the Output window. We can manually set the message class within your script using the lr_set_debug_message function. This is useful if we want to receive debug information about a small section of the script only.
19) How do you write user defined functions in LR? Give me few functions you wrote in your previous project? - Before we create the User Defined functions we need to create the external library (DLL) with the function. We add this library to Vugen bin directory. Once the library is added then we assign user defined function as a parameter. The function should have the following format: __declspec (dllexport) char* (char*, char*) Examples of user defined functions are as follows: GetVersion, GetCurrentTime, GetPltform are some of the user defined functions used in my earlier project.
20) What are the changes you can make in run-time settings? - The Run Time Settings that we make are: a) Pacing - It has iteration count. b) Log - Under this we have Disable Logging Standard Log and c) Extended Think Time - In think time we have two options like Ignore think time and Replay think time. d) General - Under general tab we can set the Vusers as process or as multithreading and whether each step as a transaction.
21) Where do you set Iteration for Vuser testing? - We set Iterations in the Run Time Settings of the Vugen. The navigation for this is Run time settings, Pacing tab, and set number of iterations.

22) How do you perform functional testing under load? - Functionality under load can be tested by running several Vusers concurrently. By increasing the amount of Vusers, we can determine how much load the server can sustain.
23) What is Ramp up? How do you set this? - This option is used to gradually increase the amount of Vusers/load on the server. An initial value is set and a value to wait between intervals can bespecified. To set Ramp Up, go to ‘Scenario Scheduling Options’
24) What is the advantage of running the Vuser as thread? - Vugen provides the facility to use multithreading. This enables more Vusers to be run per generator. If the Vuser is run as a process, the same driver program is loaded into memory for each Vuser, thus taking up a large amount of memory. This limits the number of Vusers that can be run on a single generator. If the Vuser is run as a thread, only one instance of the driver program is loaded into memory for the given number of Vusers (say 100). Each thread shares the memory of the parent driver program, thus enabling more Vusers to be run per generator.
25) If you want to stop the execution of your script on error, how do you do that? - The lr_abort function aborts the execution of a Vuser script. It instructs the Vuser to stop executing the Actions section, execute the vuser_end section and end the execution. This function is useful when you need to manually abort a script execution as a result of a specific error condition. When you end a script using this function, the Vuser is assigned the status "Stopped". For this to take effect, we have to first uncheck the “Continue on error” option in Run-Time Settings.
26) What is the relation between Response Time and Throughput? - The Throughput graph shows the amount of data in bytes that the Vusers received from the server in a second. When we compare this with the transaction response time, we will notice that as throughput decreased, the response time also decreased. Similarly, the peak throughput and highest response time would occur approximately at the same time.
27) Explain the Configuration of your systems? - The configuration of our systems refers to that of the client machines on which we run the Vusers. The configuration of any client machine includes its hardware settings, memory, operating system, software applications, development tools, etc. This system component configuration should match with the overall system configuration that would include the network infrastructure, the web server, the database server, and any other components that go with this larger system so as to achieve the load testing objectives.
28) How do you identify the performance bottlenecks? - Performance Bottlenecks can be detected by using monitors. These monitors might be application server monitors, web server monitors, database server monitors and network monitors. They help in finding out the troubled area in our scenario which causes increased response time. The measurements made are usually performance response time, throughput, hits/sec, network delay graphs, etc.
29) If web server, database and Network are all fine where could be the problem? - The problem could be in the system itself or in the application server or in the code written for the application.
30) How did you find web server related issues? - Using Web resource monitors we can find the performance of web servers. Using these monitors we can analyze throughput on the web server, number of hits per second that occurred during scenario, the number of http responses per second, the number of downloaded pages per second.
31) How did you find database related issues? - By running “Database” monitor and help of “Data Resource Graph” we can find database related issues. E.g. You can specify the resource you want to measure on before running the controller and than you can see database related issues
32) What is the difference between Overlay graph and Correlate graph? - Overlay Graph: It overlay the content of two graphs that shares a common x-axis. Left Y-axis on the merged graph show’s the current graph’s value & Right Y-axis show the value of Y-axis of the graph that was merged. Correlate Graph: Plot the Y-axis of two graphs against each other. The active graph’s Y-axis becomes X-axis of merged graph. Y-axis of the graph that was merged becomes merged graph’s Y-axis.
33) How did you plan the Load? What are the Criteria? - Load test is planned to decide the number of users, what kind of machines we are going to use and from where they are run. It is based on 2 important documents, Task Distribution Diagram and Transaction profile. Task Distribution Diagram gives us the information on number of users for a particular transaction and the time of the load. The peak usage and off-usage are decided from this Diagram. Transaction profile gives us the information about the transactions name and their priority levels with regard to the scenario we are deciding.
34) What does vuser_init action contain? - Vuser_init action contains procedures to login to a server.
35) What does vuser_end action contain? - Vuser_end section contains log off procedures.

36) What is think time? How do you change the threshold? - Think time is the time that a real user waits between actions. Example: When a user receives data from a server, the user may wait several seconds to review the data before responding. This delay is known as the think time. Changing the Threshold: Threshold level is the level below which the recorded think time will be ignored. The default value is five (5) seconds. We can change the think time threshold in the Recording options of the Vugen.
37) What is the difference between standard log and extended log? - The standard log sends a subset of functions and messages sent during script execution to a log. The subset depends on the Vuser type Extended log sends a detailed script execution messages to the output log. This is mainly used during debugging when we want information about: Parameter substitution. Data returned by the server. Advanced trace.
38) Explain the following functions: - lr_debug_message - The lr_debug_message function sends a debug message to the output log when the specified message class is set. lr_output_message - The lr_output_message function sends notifications to the Controller Output window and the Vuser log file. lr_error_message - The lr_error_message function sends an error message to the LoadRunner Output window. lrd_stmt - The lrd_stmt function associates a character string (usually a SQL statement) with a cursor. This function sets a SQL statement to be processed. lrd_fetch - The lrd_fetch function fetches the next row from the result set.
39) Throughput - If the throughput scales upward as time progresses and the number of Vusers increase, this indicates that the bandwidth is sufficient. If the graph were to remain relatively flat as the number of Vusers increased, it would be reasonable to conclude that the bandwidth is constraining the volume of data delivered.
Types of Goals in Goal-Oriented Scenario - Load Runner provides you with five different types of goals in a goal oriented scenario:
The number of concurrent Vusers
The number of hits per second
The number of transactions per second
The number of pages per minute
The transaction response time that you want your scenario
42. Analysis Scenario (Bottlenecks): In Running Vuser graph correlated with the response time graph you can see that as the number of Vusers increases, the average response time of the check itinerary transaction very gradually increases. In other words, the average response time steadily increases as the load increases. At 56 Vusers, there is a sudden, sharp increase in the average response time. We say that the test broke the server. That is the mean time before failure (MTBF). The response time clearly began to degrade when there were more than 56 Vusers running simultaneously.

43. What is correlation? Explain the difference between automatic correlation and manual correlation? - Correlation is used to obtain data which are unique for each run of the script and which are generated by nested queries. Correlation provides the value to avoid errors arising out of duplicate values and also optimizing the code (to avoid nested queries). Automatic correlation is where we set some rules for correlation. It can be application server specific. Here values are replaced by data which are created by these rules. In manual correlation, the value we want to correlate is scanned and create correlation is used to correlate.

44. Where do you set automatic correlation options? - Automatic correlation from web point of view can be set in recording options and correlation tab. Here we can enable correlation for the entire script and choose either issue online messages or offline actions, where we can define rules for that correlation. Automatic correlation for database can be done using show output window and scan for correlation and picking the correlate query tab and choose which query value we want to correlate. If we know the specific value to be correlated we just do create correlation for the value and specify how the value to be created.

45. What is a function to capture dynamic values in the web vuser script? - Web_reg_save_param function saves dynamic data information to a parameter.

Automation: Difference btw Win Runner and QTP

WinRunner
Summary:
This product is a mature tool that has been around since approximately 1995. It interfaces with most of the leading development toolkits using the WindowsAPI and toolkit DLLs to interface with the “Application Under Test”.
WinRunner offers a recording feature that will watch the individual tester and generate a test script to simulate the same actions just performed. The script is displayed as a program which can be enhanced with checkpoints, logic and special coding/programming.
WinRunner also has integration with Excel spreadsheets for data driven testing and the ability to write data out in Excel format or in simple text files.
Here is the description from the Mercury (owned by HP) “Features and Benefits” section of the WinRunner web page:
Significantly increase power and flexibility of tests without any programming: The Function Generator presents a quick and error-free way to design tests and enhance scripts without any programming knowledge. Testers can simply point at a GUI object, and WinRunner will examine it, determine its class and suggest an appropriate function to be used.
Use multiple verification types to ensure sound functionality: WinRunner provides checkpoints for text, GUI, bitmaps, URL links and the database, allowing testers to compare expected and actual outcomes and identify potential problems with numerous GUI objects and their functionality.
Verify data integrity in your back-end database: Built-in Database Verification confirms values stored in the database and ensures transaction accuracy and the data integrity of records that have been updated, deleted and added.
View, store and verify at a glance every attribute of tested objects: WinRunner's GUI Spy automatically identifies, records and displays the properties of standard GUI objects, ActiveX controls, as well as Java objects and methods. This ensures that every object in the user interface is recognized by the script and can be tested.
Maintain tests and build reusable scripts: The GUI map provides a centralized object repository, allowing testers to verify and modify any tested object. These changes are then automatically propagated to all appropriate scripts, eliminating the need to build new scripts each time the application is modified.
Test multiple environments with a single application: WinRunner supports more than 30 environments, including Web, Java, Visual Basic, etc. In addition, it provides targeted solutions for such leading ERP/CRM applications as SAP, Siebel, PeopleSoft and a number of others.
Simplify creation of test scripts: WinRunner's DataDriver Wizard greatly simplifies the process of preparing test data and scripts. This allows for optimal use of QA resources and results in more thorough testing.
Automatically identify discrepancies in data: WinRunner examines and compares expected and actual results using multiple verifications for text, GUI, bitmaps, URLs, and databases. This ensures stable functionality and execution of business transactions when the application is released into production.
Validate applications across browsers: WinRunner enables the same test to be used to validate applications in Internet Explorer, Netscape, and AOL. This saves testing time and reduces the number of scripts that must be developed and maintained.
Automatically recover tested applications from a crash: Unexpected events, errors, and application crashes during a test run can disrupt the testing process and distort results. WinRunner's Recovery Manager enables unattended recovery and provides a wizard that guides the process of defining a recovery scenario.
Leverage investments in other testing products: WinRunner fully integrates with our other testing solutions, including LoadRunner for load testing and TestDirector for global test management. Moreover, organizations can reuse WinRunner test scripts with QuickTest Professional.

- WinRunner “Features and Benefits” webpage from Mercury:
http://www.mercury.com/us/products/quality-center/functional-testing/winrunner/features.html
Pros:
Mature product that has been around since about 1995.
Simple interface.
Many features.
Many consultants and user group/forums for support.
Decent built in help.
Fewer features to have to learn and understand compared to QuickTest Pro.
Interfaces with the Windows API.
Integrates with TestDirector.

Cons:
Has basically been superceded by QuickTest Pro.
Looking at “program code” for the test case.
Coding is done in a proprietary language (TSL).
Very few resources available on TSL programming (it is based on the C programming language, but is not C).
Need to be able to program to a certain extent in order to gain flexibility and parameterization.
Need training to implement properly.
The GUI Map can be difficult to understand and implement.

QuickTest Pro
Summary:
QuickTest Professional provides an interactive, visual environment for test development.

Here is the description from the Mercury Interactive “How it Works” section of the QuickTest Pro web page:
Mercury QuickTest Professional™ allows even novice testers to be productive in minutes. You can create a test script by simply pressing a Record button and using an application to perform a typical business process. Each step in the business process is automated documented with a plain-English sentence and screen shot. Users can easily modify, remove, or rearrange test steps in the Keyword View. QuickTest Professional can automatically introduce checkpoints to verify application properties and functionality, for example to validate output or check link validity. For each step in the Keyword View, there is an ActiveScreen showing exactly how the application under test looked at that step. You can also add several types of checkpoints for any object to verify that components behave as expected, simply by clicking on that object in the ActiveScreen. You can then enter test data into the Data Table, an integrated spreadsheet with the full functionality of Excel, to manipulate data sets and create multiple test iterations, without programming, to expand test case coverage. Data can be typed in or imported from databases, spreadsheets, or text files. Advanced testers can view and edit their test scripts in the Expert View, which reveals the underlying industry-standard VBScript that QuickTest Professional automatically generates. Any changes made in the Expert View are automatically synchronized with the Keyword View. Once a tester has run a script, a TestFusion report displays all aspects of the test run: a high-level results overview, an expandable Tree View of the test script specifying exactly where application failures occurred, the test data used, application screen shots for every step that highlight any discrepancies, and detailed explanations of each checkpoint pass and failure. By combining TestFusion reports with Mercury Quality Management, you can share reports across an entire QA and development team. QuickTest Professional also facilitates the update process. As an application under test changes, such as when a “Login” button is renamed “Sign In,” you can make one update to the Shared Object Repository, and the update will propagate to all scripts that reference this object. You can publish test scripts to Mercury Quality Management, enabling other QA team members to reuse your test scripts, eliminating duplicative work. QuickTest Professional supports functional testing of all popular environments, including Windows, Web, .Net, Visual Basic, ActiveX, Java, SAP, Siebel, Oracle, PeopleSoft, terminal emulators, and Web services.

- QuickTest Pro “How it Works” webpage from Mercury:http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/works.html

We like QuickTest Pro and now prefer implementing it over WinRunner. When you get into advance testing scenarios, QuickTest Pro has more options and they are easier to implement compared to WinRunner in our opinion.

Do to the similarities in concept and features, an experienced WinRunner user can easily convert to QuickTest Pro and quickly become an efficient Test Automation Engineer!

We recommend that existing customers begin all new development with QuickTest Pro and use the built-in feature of calling WinRunner scripts from QuickTest Pro for all existing WinRunner scripts that they already have. As older scripts require updates and time permits, we recommend replacing them with QuickTest Pro scripts. Eventually you will be able to convert your test script library with all QuickTest Pro scripts.
Pros:
Will be getting the initial focus on development of all new features and supported technologies.
Ease of use.
Simple interface.
Presents the test case as a business workflow to the tester (simpler to understand).
Numerous features.
Uses a real programming language (Microsoft’s VBScript) with numerous resources available.
QuickTest Pro is significantly easier for a non-technical person to adapt to and create working test cases, compared to WinRunner.
Data table integration better and easier to use than WinRunner.
Test Run Iterations/Data driving a test is easier and better implement with QuickTest.
Parameterization easier than WinRunner.
Can enhance existing QuickTest scripts without the “Application Under Test” being available; by using the ActiveScreen.
Can create and implement the Microsoft Object Model (Outlook objects, ADO objects, FileSystem objects, supports DOM, WSH, etc.).
Better object identification mechanism.
Numerous existing functions available for implementation – both from within QuickTest Pro and VBScript.
QTP supports .NET development environment (currently WinRunner 7.5 does not).
XML support (currently WinRunner 7.5 does not).
The Test Report is more robust in QuickTest compared to WinRunner.
Integrates with TestDirector and WinRunner (can kick off WinRunner scripts from QuickTest).
Cons:
Currently there are fewer resources (consultants and expertise) available due to QTP being a newer product on the market and because there is a greater Demand than Supply, thus fewer employee/consulting resources.
Must know VBScript in order to program at all.
Must be able to program in VBScript in order to implement the real advance testing tasks and to handle very dynamic situations.
Need training to implement properly.
The Object Repository (OR) and “testing environment” (paths, folders, function libraries, OR) can be difficult to understand and implement initially.