Approaches
1.Implicit Risk context approach
2.Metrics-Based approach
3.Test work breakdown approach
4.Iterative approach
5.Percentage of development approach
Implicit Risk context approach
Project manager (or) QA Manager to implicitly use risk context in combination with past personal experiences in the organization to choose a level of resources to allocate to testing
Risk context Factor:
a)Software quality levels
b)Software's intended use
c)Experience level of developers and testers
Metric based Approach
Track past experience of an organization various projects and associated test effort that worked well for projects.This past experience information can be used for further future test project planning.
Test work breakdown approach
Decompose the expected testing tasks into collection of small tasks for which estimates can at least in theory be made with reasonable accuracy.
Iterative approach
In this approach for large test efforts an initial rough testing estimate is made.once testing begins a more refined approach is made after a small percentage(eg 1%) of the first estimate's work is done.
Then a yet more refined estimate is made after a somewhat larger percentage(eg 2%) of the new work estimate is done. Respect the cycle as necessary/Appropriate.
Percentage of development approach
Some organizations utilize a quick estimation method for testing based on the estimated programming effort. For example If a project is estimated to require 1000 hours of programming effort, and the organization normaally finds that a 40% ratio for testing os appropriate
Then an estimate of 400 hours for testing would be used this approach may (or) may not be useful depending on the project to variations in risk personal,types of applications,levels of complexity etc.
Thursday, March 31, 2011
Tuesday, March 29, 2011
How to write better bug reports
How often do we see the developers requiring more information on the bug reports filed by us?
How often do we need to spend more time investigating on the issue after the bug report has been filed? How often do we get to hear from the developers that the bug is not reproducible on their end and we need to improvise on the Steps To Reproduce? In a broad sense, we end up spending more time on these issues rather than investing more time testing the system. The problem lies in the quality of bug reports. Here are some areas which can be improved upon to achieve that perfect bug report.
The Purpose Of A Bug Report
When we uncover a defect, we need to inform the developers about it. Bug report is a medium of such communication. The primary aim of a bug report is to let the developers see the failure with their own eyes. If you can't be with them to make it fail in front of them, give them detailed instructions so that they can make it fail for themselves. The bug report is a document that explains the gap between the expected result and the actual result and detailing on how to reproduce the scenario.
After Finding The Defect
Draft the bug report just when you are sure that you have found a bug, not after the end of test or end of day. It might be possible that you might miss out on some point. Worse, you might miss the bug itself.
Invest some time to diagnose the defect you are reporting. Think of the possible causes. You might land up uncovering some more defects. Mention your discoveries in your bug report. The programmers will only be happy seeing that you have made their job easier.
Take some time off before reading your bug report. You might feel like re-writing it.
The Summary
The summary of the bug report is the reader’s first interaction with your bug report. The fate of your bug heavily depends on the attraction grabbed by the summary of your bug report. The rule is that every bug should have a one-liner summary. It might sound like writing a good attention-grabbing advertisement campaign. But then, there are no exceptions. A good summary will not be more than 50-60 characters. Also, a good summary should not carry any subjective representations of the defect.
The Language
Do not exaggerate the defect through the bug report. Similarly, do not undertone it.
However nasty the bug might be, do not forget that it’s the bug that’s nasty, not the programmer. Never offend the efforts of the programmer. Use euphemisms. “Dirty UI” can be made milder as “Improper UI”. This will take care that the programmer’s efforts are respected.
Keep It Simple & Straight. You are not writing an essay or an article, so use simple language.
Keep your target audience in mind while writing the bug report. They might be the developers, fellow testers, managers, or in some cases, even the customers. The bug reports should be understandable by all of them.
Steps To Reproduce
The flow of the Steps To Reproduce should be logical.
Clearly list down the pre-requisites.
Write generic steps. For example, if a step requires the user to create file and name it, do not ask the user to name it like “Mihir’s file”. It can be better named as “Test File”.
The Steps To Reproduce should be detailed. For example, if you want the user to save a document from Microsoft Word, you can ask the user to go to File Menu and click on the Save menu entry. You can also just say “save the document”. But remember, not everyone will not know how to save a document from Microsoft Word. So it is better to stick to the first method.
Test your Steps To Reproduce on a fresh system. You might find some steps that are missing, or are extraneous.
Test Data
Strive to write generic bug reports. The developers might not have access to your test data. If the bug is specific to a certain test data, attach it with your bug report.
Screen Prints
Screen prints are a quite essential part of the bug report. A picture makes up for a thousand words. But do not make it a habit to unnecessarily attach screen shots with every bug report. Ideally, your bug reports should be effective enough to enable the developers to reproduce the problem. Screen shots should be a medium just for verification.
If you attach screen shots to your bug reports, ensure that they are not too heavy in terms of size. Use a format like jpg or gif, but definitely not bmp.
Use annotations on screen shots to pin-point at the problems. This will help the developers to locate the problem at a single glance.
Severity / Priority
The impact of the defect should be thoroughly analyzed before setting the severity of the bug report. If you think that your bug should be fixed with a high priority, justify it in the bug report. This justification should go in the Description section of the bug report.
If the bug is the result of regression from the previous builds/versions, raise the alarm. The severity of such a bug may be low but the priority should be typically high.
Logs
Make it a point to attach logs or excerpts from the logs. This will help the developers to analyze and debug the system easily. Most of the time, if logs are not attached and the issue is not reproducible on the developer’s end, they will revert to you asking for logs.
If the logs are not too large, say about 20-25 lines, you can paste it in bug report. But if it is large enough, add it to your bug report as an attachment, else your bug report will look like a log.
Other Information
If your bug is randomly reproducible, just mention it in your bug report. But don’t forget to file it. You can always add the exact steps to reproduce anytime later you (or anyone else) discover them. This will also come to your rescue when someone else reports this issue, especially if it’s a serious one.
Mention the error messages in the bug report, especially if they are numbered. For example, error messages from the database.
Mention the version numbers and build numbers in the bug reports.
Mention the platforms on which the issue is reproducible. Precisely mention the platforms on which the issue is not reproducible. Also understand that there is difference between the issue being not reproducible on a particular platform and it not being tested on that platform. This might lead to confusion.
If you come across several problems having the same cause, write a single bug report. The fix of the problem will be only one. Similarly, if you come across similar problems at different locations requiring the same kind of fix but at different places, write separate bug reports for each of the problems. One bug report for only one fix.
If the test environment on which the bug is reproducible is accessible to the developers, mention the details of accessing this setup. This will help them save time to setting up the environment to reproduce your bug.
Under no circumstances should you hold on to any information regarding the bug. Unnecessary iterations of the bug report between the developer and the tester before being fixed is just waste of time due to ineffective bug reporting.
How often do we need to spend more time investigating on the issue after the bug report has been filed? How often do we get to hear from the developers that the bug is not reproducible on their end and we need to improvise on the Steps To Reproduce? In a broad sense, we end up spending more time on these issues rather than investing more time testing the system. The problem lies in the quality of bug reports. Here are some areas which can be improved upon to achieve that perfect bug report.
The Purpose Of A Bug Report
When we uncover a defect, we need to inform the developers about it. Bug report is a medium of such communication. The primary aim of a bug report is to let the developers see the failure with their own eyes. If you can't be with them to make it fail in front of them, give them detailed instructions so that they can make it fail for themselves. The bug report is a document that explains the gap between the expected result and the actual result and detailing on how to reproduce the scenario.
After Finding The Defect
Draft the bug report just when you are sure that you have found a bug, not after the end of test or end of day. It might be possible that you might miss out on some point. Worse, you might miss the bug itself.
Invest some time to diagnose the defect you are reporting. Think of the possible causes. You might land up uncovering some more defects. Mention your discoveries in your bug report. The programmers will only be happy seeing that you have made their job easier.
Take some time off before reading your bug report. You might feel like re-writing it.
The Summary
The summary of the bug report is the reader’s first interaction with your bug report. The fate of your bug heavily depends on the attraction grabbed by the summary of your bug report. The rule is that every bug should have a one-liner summary. It might sound like writing a good attention-grabbing advertisement campaign. But then, there are no exceptions. A good summary will not be more than 50-60 characters. Also, a good summary should not carry any subjective representations of the defect.
The Language
Do not exaggerate the defect through the bug report. Similarly, do not undertone it.
However nasty the bug might be, do not forget that it’s the bug that’s nasty, not the programmer. Never offend the efforts of the programmer. Use euphemisms. “Dirty UI” can be made milder as “Improper UI”. This will take care that the programmer’s efforts are respected.
Keep It Simple & Straight. You are not writing an essay or an article, so use simple language.
Keep your target audience in mind while writing the bug report. They might be the developers, fellow testers, managers, or in some cases, even the customers. The bug reports should be understandable by all of them.
Steps To Reproduce
The flow of the Steps To Reproduce should be logical.
Clearly list down the pre-requisites.
Write generic steps. For example, if a step requires the user to create file and name it, do not ask the user to name it like “Mihir’s file”. It can be better named as “Test File”.
The Steps To Reproduce should be detailed. For example, if you want the user to save a document from Microsoft Word, you can ask the user to go to File Menu and click on the Save menu entry. You can also just say “save the document”. But remember, not everyone will not know how to save a document from Microsoft Word. So it is better to stick to the first method.
Test your Steps To Reproduce on a fresh system. You might find some steps that are missing, or are extraneous.
Test Data
Strive to write generic bug reports. The developers might not have access to your test data. If the bug is specific to a certain test data, attach it with your bug report.
Screen Prints
Screen prints are a quite essential part of the bug report. A picture makes up for a thousand words. But do not make it a habit to unnecessarily attach screen shots with every bug report. Ideally, your bug reports should be effective enough to enable the developers to reproduce the problem. Screen shots should be a medium just for verification.
If you attach screen shots to your bug reports, ensure that they are not too heavy in terms of size. Use a format like jpg or gif, but definitely not bmp.
Use annotations on screen shots to pin-point at the problems. This will help the developers to locate the problem at a single glance.
Severity / Priority
The impact of the defect should be thoroughly analyzed before setting the severity of the bug report. If you think that your bug should be fixed with a high priority, justify it in the bug report. This justification should go in the Description section of the bug report.
If the bug is the result of regression from the previous builds/versions, raise the alarm. The severity of such a bug may be low but the priority should be typically high.
Logs
Make it a point to attach logs or excerpts from the logs. This will help the developers to analyze and debug the system easily. Most of the time, if logs are not attached and the issue is not reproducible on the developer’s end, they will revert to you asking for logs.
If the logs are not too large, say about 20-25 lines, you can paste it in bug report. But if it is large enough, add it to your bug report as an attachment, else your bug report will look like a log.
Other Information
If your bug is randomly reproducible, just mention it in your bug report. But don’t forget to file it. You can always add the exact steps to reproduce anytime later you (or anyone else) discover them. This will also come to your rescue when someone else reports this issue, especially if it’s a serious one.
Mention the error messages in the bug report, especially if they are numbered. For example, error messages from the database.
Mention the version numbers and build numbers in the bug reports.
Mention the platforms on which the issue is reproducible. Precisely mention the platforms on which the issue is not reproducible. Also understand that there is difference between the issue being not reproducible on a particular platform and it not being tested on that platform. This might lead to confusion.
If you come across several problems having the same cause, write a single bug report. The fix of the problem will be only one. Similarly, if you come across similar problems at different locations requiring the same kind of fix but at different places, write separate bug reports for each of the problems. One bug report for only one fix.
If the test environment on which the bug is reproducible is accessible to the developers, mention the details of accessing this setup. This will help them save time to setting up the environment to reproduce your bug.
Under no circumstances should you hold on to any information regarding the bug. Unnecessary iterations of the bug report between the developer and the tester before being fixed is just waste of time due to ineffective bug reporting.
Ways to launch our Application
Four different ways to launch your application are mentioned below:
1) SystemUtil.Run
SystemUtil.Run ( FileName, Parameters, Path, Operation )
FileName - The name of the file you want to run.
Parameters - If the specified FileName is an executable file, use the Parameters argument to specify any parameters to be passed to the application.
Path - The default directory of the application or file.
Operation - The action to be performed. If this argument is blank (""), the open operation is performed.
The following operations can be specified for the operation argument of the SystemUtil.Run method:
open - Opens the file specified by the FileName parameter. The file can be an executable file, a document file, or a folder. Non-executable files are open in the associated application.
edit - Launches an editor and opens the document for editing. If the FileName argument does not specify an editable document file, the statement fails.
explore - Explores the folder specified by the FileName argument.
find - Initiates a search starting from the specified folder path.
print - Prints the document file specified by the FileName argument. If the specified file is not a printable document file, the statement fails.
Example:SystemUtil.Run "D:\My Music\Breathe.mp3","","D:\My Music\Details","open"
2) InvokeApplication
This command is now mainly used for the backward compatability ie to use with the lower versions(below QTP 6.0) of QTP.
InvokeApplication("Full URL as Parameter")
Example:InvokeApplication "C:\Program Files\Internet Explorer\IEXPLORE.EXE http://www.yahoo.com"
3) VBscript to invoke application
1. Create a "WScript.shell" object.
2. Use the "run" object to launch the application. If the path to your executable contains spaces, use Chr(34) to ensure the path is contained within double quotes.
3. When done, set the shell object to nothing to release it.
Example:
Dim oShellSet oShell = CreateObject ("Wscript.shell")'
Example 1 - run a batch file:oShell.run "F:\jdk1.3.1\demo\jfc\SwingSet2.bat"'
Example 2 - run a Java jar file:oShell.run "java -jar F:\jdk1.3.1\demo\jfc\SwingSet2\SwingSet2.jar"'
Example 3 - launch Internet Explorer:oShell.Run Chr(34) & "C:\Program Files\Internet Explorer\IEXPLORE.EXE" & Chr(34)Set oShell = Nothing
4) Trivial but useful method
If nothing works out you might try this
You can use the Start -> Run dialog of Windows.
1. Add the Windows Start button to the Object Repository using the "Add Objects" button in Object Repository dialog.
2. Open the Run dialog (Start -> Run), and learn the "Open" edit field and the "OK" button into the Object Repository.
3. Switch to the Expert View, and manually add the lines to open the Run dialog.
Example:Window("Window").WinButton("Button").ClickWindow("Window").Type("R")
4. Manually enter the lines to enter the information to launch the application, and click the "OK" button of the Run dialog.
Example:
Dialog("Run").WinEdit("Open:").Type "c:\WINNT\system32\notepad.exe"
Dialog("Run").WinButton("OK").Click
1) SystemUtil.Run
SystemUtil.Run ( FileName, Parameters, Path, Operation )
FileName - The name of the file you want to run.
Parameters - If the specified FileName is an executable file, use the Parameters argument to specify any parameters to be passed to the application.
Path - The default directory of the application or file.
Operation - The action to be performed. If this argument is blank (""), the open operation is performed.
The following operations can be specified for the operation argument of the SystemUtil.Run method:
open - Opens the file specified by the FileName parameter. The file can be an executable file, a document file, or a folder. Non-executable files are open in the associated application.
edit - Launches an editor and opens the document for editing. If the FileName argument does not specify an editable document file, the statement fails.
explore - Explores the folder specified by the FileName argument.
find - Initiates a search starting from the specified folder path.
print - Prints the document file specified by the FileName argument. If the specified file is not a printable document file, the statement fails.
Example:SystemUtil.Run "D:\My Music\Breathe.mp3","","D:\My Music\Details","open"
2) InvokeApplication
This command is now mainly used for the backward compatability ie to use with the lower versions(below QTP 6.0) of QTP.
InvokeApplication("Full URL as Parameter")
Example:InvokeApplication "C:\Program Files\Internet Explorer\IEXPLORE.EXE http://www.yahoo.com"
3) VBscript to invoke application
1. Create a "WScript.shell" object.
2. Use the "run" object to launch the application. If the path to your executable contains spaces, use Chr(34) to ensure the path is contained within double quotes.
3. When done, set the shell object to nothing to release it.
Example:
Dim oShellSet oShell = CreateObject ("Wscript.shell")'
Example 1 - run a batch file:oShell.run "F:\jdk1.3.1\demo\jfc\SwingSet2.bat"'
Example 2 - run a Java jar file:oShell.run "java -jar F:\jdk1.3.1\demo\jfc\SwingSet2\SwingSet2.jar"'
Example 3 - launch Internet Explorer:oShell.Run Chr(34) & "C:\Program Files\Internet Explorer\IEXPLORE.EXE" & Chr(34)Set oShell = Nothing
4) Trivial but useful method
If nothing works out you might try this
You can use the Start -> Run dialog of Windows.
1. Add the Windows Start button to the Object Repository using the "Add Objects" button in Object Repository dialog.
2. Open the Run dialog (Start -> Run), and learn the "Open" edit field and the "OK" button into the Object Repository.
3. Switch to the Expert View, and manually add the lines to open the Run dialog.
Example:Window("Window").WinButton("Button").ClickWindow("Window").Type("R")
4. Manually enter the lines to enter the information to launch the application, and click the "OK" button of the Run dialog.
Example:
Dialog("Run").WinEdit("Open:").Type "c:\WINNT\system32\notepad.exe"
Dialog("Run").WinButton("OK").Click
Recovery Scenarios
Recovery Scenario Manager:
To recover from unexpected events and errors that are occurred in the test environment during run session, we can use Recovery Scenario Manager. For good recovery, error must be known the occurrence is unknown.
There are (4) Types of events such as:
(i) Application Crash
An open application fails during Test Run.
Navigation:
Resources Menu -> Recovery Scenario Manager-> Click New-> Click Next ->
Select Application Crash as Trigger event->Next ->Select selected executable
application->Next ->Select Recovery Operation [Keyboard, Mouse Operation,
Close Application Process, function Call, Restart, Microsoft Windows] ->Next ->If
you want to check Add another operation else uncheck->Next ->Next ->Enter
Scenario Name ->Next->Select Option ->Finish ->Close ->Save the scenario in
specified location with “.qrs”
(qrs stands for QuickTest Recovery Scenario.)
(ii) Popup Window.
To handle unwanted popups.
Navigation:
Resources Menu ->Recovery Scenario Manager ->New ->Next ->Select “Popup
Window” as Trigger event ->Next ->Click on Hand Icon ->Show unwanted
window with Hand icon ->Next ->Next ->Select function call as Recovery
Operation ->Next [Open Notepad ->Save empty file with .vbs extension] ->Browse
the .vbs fie path ->Next ->Uncheck Add another Recovery Operation ->Next ->
Select Post-Recovery Test Run Option [Repeat current step and continue, Proceed to
Next step, Proceed to Next Action, Proceed to next test iteration, Restart current test
run, Stop the Test Run] ->Next ->Enter Scenario Name ->Next ->Select Option ->
Finish ->Save the scenario with “.qrs” ->Record required Recovery Operation [Click
ok, Click Cancel] take the script into function ->Save the library file ->Click Run
(iii) Test Run Error.
A step in your test does not run successfully then Test Run Error
can be raised.
Navigation :
Resources Menu ->Recovery Scenario Manager ->New ->Next ->Select “Testrunerror
Window” as Trigger event ->Next ->select any error o ->Next ->Next ->Select function call as Recovery
Operation ->Next [Open Notepad ->Save empty file with .vbs extension] ->Browse
the .vbs fie path ->Next ->Uncheck Add another Recovery Operation ->Next ->
Select Post-Recovery Test Run Option [Repeat current step and continue, Proceed to
Next step, Proceed to Next Action, Proceed to next test iteration, Restart current test
run, Stop the Test Run] ��Next ��Enter Scenario Name ��Next ��Select Option ��
Finish ��Save the scenario with “.qrs” ��Record required Recovery Operation [Click
ok, Click Cancel] take the script into function ��Save the library file ��Click Run
(iv) Object State.
The property values of an object in your application match
specified values. You can specify property values for each object in the
hierarchy.
Navigation:
Resources Menu -> Recovery Scenario Manager -> New -> Next -> Select “Object state
Window” as Trigger event -> Next -> Click on Hand Icon -> Show object with hand icon
-> Next -> Next->select object property with value (enabled ,false)->click next -> Select function call as Recovery
Operation -> Next [Open Notepad -> Save empty file with .vbs extension] -> Browse
the .vbs fie path -> Next -> Uncheck Add another Recovery Operation -> Next ->
Select Post-Recovery Test Run Option [Repeat current step and continue, Proceed to
Next step, Proceed to Next Action, Proceed to next test iteration, Restart current test
run, Stop the Test Run] -> Next-> Enter Scenario Name -> Next -> Select Option ->
Finish -> Save the scenario with “.qrs” -> Record required Recovery Operation [Click
ok, Click Cancel] take the script into function -> Save the library file -> Click Run
While creating Recovery Scenario for Pop-up window..In 'Recovery operation' we have to call a function. Can u tell me that function?
1. Go to TOOLS -> Recovery scenario manager.
2. Select the trigger event that caused the error(it may be a pop up window).
3. Identify the name of the window with the help of POINTING HAND.
4. Choose the operation type : KEYBOARD OR MOUSE OPERATION.
5. Select the action with the help of POINTING HAND.(e.g.Click on OK button to close the window.)
6. If you want to add another action then keep "Add another
recovery scenario" check box selected else de select it.
7. In the "Post recovery test run option" select "Proceed to next test iteration"
8. Give scenario name & description & click on finish button.
9. Save the scenario.
10. Go to TEST->SETTINGS->SCENARIO TAB....and add the saved scenario.
11. Click on APPLY & OK button......now your test run smoothly.
see... generally we can handle those pop up window exeptions
by writing If then statement and using exist method.
for example...
If window("skdhja").dialog("text:=fahda").exist then
window("skdhja").dialog("text:=fahda").winbutton("text:=OK(or)Cancel").click
window("akdhja").close
else
If you select “Function call" option we have to select the
file containing our library functions.
then we will have two radio buttons
1.Select function
2.Define new function
if we select the 'select function' radio button then we have to use the following syntax
Function (Object)
‘ recovery information and code goes here
End Function
Example:
‘ Close the About Notepad window.
Function AboutWindow(Object)
Object.Highlight
Object.Close
End Function
if we choose 'Define new function' then Create a new
function by specifying a unique name for it, and defining
the function in the Function Name box according to the
displayed function prototype. The new function is added to
the library file you selected.
To recover from unexpected events and errors that are occurred in the test environment during run session, we can use Recovery Scenario Manager. For good recovery, error must be known the occurrence is unknown.
There are (4) Types of events such as:
(i) Application Crash
An open application fails during Test Run.
Navigation:
Resources Menu -> Recovery Scenario Manager-> Click New-> Click Next ->
Select Application Crash as Trigger event->Next ->Select selected executable
application->Next ->Select Recovery Operation [Keyboard, Mouse Operation,
Close Application Process, function Call, Restart, Microsoft Windows] ->Next ->If
you want to check Add another operation else uncheck->Next ->Next ->Enter
Scenario Name ->Next->Select Option ->Finish ->Close ->Save the scenario in
specified location with “.qrs”
(qrs stands for QuickTest Recovery Scenario.)
(ii) Popup Window.
To handle unwanted popups.
Navigation:
Resources Menu ->Recovery Scenario Manager ->New ->Next ->Select “Popup
Window” as Trigger event ->Next ->Click on Hand Icon ->Show unwanted
window with Hand icon ->Next ->Next ->Select function call as Recovery
Operation ->Next [Open Notepad ->Save empty file with .vbs extension] ->Browse
the .vbs fie path ->Next ->Uncheck Add another Recovery Operation ->Next ->
Select Post-Recovery Test Run Option [Repeat current step and continue, Proceed to
Next step, Proceed to Next Action, Proceed to next test iteration, Restart current test
run, Stop the Test Run] ->Next ->Enter Scenario Name ->Next ->Select Option ->
Finish ->Save the scenario with “.qrs” ->Record required Recovery Operation [Click
ok, Click Cancel] take the script into function ->Save the library file ->Click Run
(iii) Test Run Error.
A step in your test does not run successfully then Test Run Error
can be raised.
Navigation :
Resources Menu ->Recovery Scenario Manager ->New ->Next ->Select “Testrunerror
Window” as Trigger event ->Next ->select any error o ->Next ->Next ->Select function call as Recovery
Operation ->Next [Open Notepad ->Save empty file with .vbs extension] ->Browse
the .vbs fie path ->Next ->Uncheck Add another Recovery Operation ->Next ->
Select Post-Recovery Test Run Option [Repeat current step and continue, Proceed to
Next step, Proceed to Next Action, Proceed to next test iteration, Restart current test
run, Stop the Test Run] ��Next ��Enter Scenario Name ��Next ��Select Option ��
Finish ��Save the scenario with “.qrs” ��Record required Recovery Operation [Click
ok, Click Cancel] take the script into function ��Save the library file ��Click Run
(iv) Object State.
The property values of an object in your application match
specified values. You can specify property values for each object in the
hierarchy.
Navigation:
Resources Menu -> Recovery Scenario Manager -> New -> Next -> Select “Object state
Window” as Trigger event -> Next -> Click on Hand Icon -> Show object with hand icon
-> Next -> Next->select object property with value (enabled ,false)->click next -> Select function call as Recovery
Operation -> Next [Open Notepad -> Save empty file with .vbs extension] -> Browse
the .vbs fie path -> Next -> Uncheck Add another Recovery Operation -> Next ->
Select Post-Recovery Test Run Option [Repeat current step and continue, Proceed to
Next step, Proceed to Next Action, Proceed to next test iteration, Restart current test
run, Stop the Test Run] -> Next-> Enter Scenario Name -> Next -> Select Option ->
Finish -> Save the scenario with “.qrs” -> Record required Recovery Operation [Click
ok, Click Cancel] take the script into function -> Save the library file -> Click Run
While creating Recovery Scenario for Pop-up window..In 'Recovery operation' we have to call a function. Can u tell me that function?
1. Go to TOOLS -> Recovery scenario manager.
2. Select the trigger event that caused the error(it may be a pop up window).
3. Identify the name of the window with the help of POINTING HAND.
4. Choose the operation type : KEYBOARD OR MOUSE OPERATION.
5. Select the action with the help of POINTING HAND.(e.g.Click on OK button to close the window.)
6. If you want to add another action then keep "Add another
recovery scenario" check box selected else de select it.
7. In the "Post recovery test run option" select "Proceed to next test iteration"
8. Give scenario name & description & click on finish button.
9. Save the scenario.
10. Go to TEST->SETTINGS->SCENARIO TAB....and add the saved scenario.
11. Click on APPLY & OK button......now your test run smoothly.
see... generally we can handle those pop up window exeptions
by writing If then statement and using exist method.
for example...
If window("skdhja").dialog("text:=fahda").exist then
window("skdhja").dialog("text:=fahda").winbutton("text:=OK(or)Cancel").click
window("akdhja").close
else
file containing our library functions.
then we will have two radio buttons
1.Select function
2.Define new function
if we select the 'select function' radio button then we have to use the following syntax
Function (Object)
‘ recovery information and code goes here
End Function
Example:
‘ Close the About Notepad window.
Function AboutWindow(Object)
Object.Highlight
Object.Close
End Function
if we choose 'Define new function' then Create a new
function by specifying a unique name for it, and defining
the function in the Function Name box according to the
displayed function prototype. The new function is added to
the library file you selected.
Friday, March 25, 2011
Script to verify the items exists in dropdown box
Public Function fnVerifyDropDownItems(objDropdown, strItemsToSearch)
Dim intItemsCount, intCounter, strItem, intItems, blnItemPresent
Dim arrItemsToSearch
fnVerifyDropDownItems=True
If (objDropdown.Exist = False) Then
reporter.report micFail,"The Dropdown box '" & objDropdown.GetROProperty("name") & "' should Exist", "The Dropdown Box does not exist", "FAIL")
fnVerifyDropDownItems=False
Exit Function
End If
'''''''' Get count of items in dropdown''''''''''''''''''
intItemsCount = objDropdown.GetTOProperty("items count")
''''''''Split the list items list based on comma(,)''''''
arrItemsToSearch = Split(strItemsToSearch, ",")
For intItems=0 to UBound(arrItemsToSearch)
blnItemPresent = False
''''''''''''Loop through all items''''''''''''''
For intCounter=1 to intItemsCount
strItem = ""
'''''''''' Get an item''''''''''''''''''
strItem = objDropdown.GetItem(intCounter)
'''''''''''''''If the search item is present'''''''''''''''''''''''
If (StrComp(Trim(strItem), Trim(arrItemsToSearch(intItems)), 1) = 0) Then
blnItemPresent = True
reporter.report micPass "The Item '" & arrItemsToSearch(intItems) & "' should be present in the dropdown box", "The specified Item exists in the dropdown box", "PASS")
Exit For
End If
Next
If (Not blnItemPresent) Then
reporter.report micFail , "The Item '" & arrItemsToSearch(intItems) & "' should be present in the dropdown box", "The specified Item does not exist in the dropdown box", "WARNING")
fnVerifyDropDownItems = False
End If
Next
End Function
Dim intItemsCount, intCounter, strItem, intItems, blnItemPresent
Dim arrItemsToSearch
fnVerifyDropDownItems=True
If (objDropdown.Exist = False) Then
reporter.report micFail,"The Dropdown box '" & objDropdown.GetROProperty("name") & "' should Exist", "The Dropdown Box does not exist", "FAIL")
fnVerifyDropDownItems=False
Exit Function
End If
'''''''' Get count of items in dropdown''''''''''''''''''
intItemsCount = objDropdown.GetTOProperty("items count")
''''''''Split the list items list based on comma(,)''''''
arrItemsToSearch = Split(strItemsToSearch, ",")
For intItems=0 to UBound(arrItemsToSearch)
blnItemPresent = False
''''''''''''Loop through all items''''''''''''''
For intCounter=1 to intItemsCount
strItem = ""
'''''''''' Get an item''''''''''''''''''
strItem = objDropdown.GetItem(intCounter)
'''''''''''''''If the search item is present'''''''''''''''''''''''
If (StrComp(Trim(strItem), Trim(arrItemsToSearch(intItems)), 1) = 0) Then
blnItemPresent = True
reporter.report micPass "The Item '" & arrItemsToSearch(intItems) & "' should be present in the dropdown box", "The specified Item exists in the dropdown box", "PASS")
Exit For
End If
Next
If (Not blnItemPresent) Then
reporter.report micFail , "The Item '" & arrItemsToSearch(intItems) & "' should be present in the dropdown box", "The specified Item does not exist in the dropdown box", "WARNING")
fnVerifyDropDownItems = False
End If
Next
End Function
Script to maximize the Browser
Public Function fnBrowserMaximize()
fnBrowserMaximize=false
wait(2)
If Browser("Creationtime:=0").exist(1) then
If Browser("Creationtime:=0").Object.Top <> "-1" then
Browser("Creationtime:=0").Page("Creationtime:=0").sync
Browser("Creationtime:=0").FullScreen
fnBrowserMaximize=true
End If
End If
End Function
fnBrowserMaximize=false
wait(2)
If Browser("Creationtime:=0").exist(1) then
If Browser("Creationtime:=0").Object.Top <> "-1" then
Browser("Creationtime:=0").Page("Creationtime:=0").sync
Browser("Creationtime:=0").FullScreen
fnBrowserMaximize=true
End If
End If
End Function
Function to download the file from the webpage and store it in location drive
Script:
msgbox SaveWebBinary ("www.al-islam.org/encyclopedia/shia5b.txt", "C:\a\sample.txt")
public Function SaveWebBinary(strUrl, strFile)
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Const ForWriting = 2
Dim web, varByteArray, strData, strBuffer, lngCounter, ado
Err.Clear
Set web = Nothing
Set web = CreateObject("WinHttp.WinHttpRequest.5.1")
If web Is Nothing Then
Set web = CreateObject("WinHttp.WinHttpRequest")
End if
If web Is Nothing Then
Set web = CreateObject("MSXML2.ServerXMLHTTP")
End if
If web Is Nothing Then
Set web = CreateObject("Microsoft.XMLHTTP")
End if
web.Open "GET", strURL, False
web.Send
If Err.Number <> 0 Then
SaveWebBinary = False
Set web = Nothing
Exit Function
End If
If web.Status <> "200" Then
SaveWebBinary = False
Set web = Nothing
Exit Function
End If
varByteArray = web.ResponseBody
Set web = Nothing
'Save the file
On Error Resume Next
Set ado = Nothing
Set ado = CreateObject("ADODB.Stream")
If ado Is Nothing Then
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(strFile, ForWriting, True)
strData = ""
strBuffer = ""
For lngCounter = 0 to UBound(varByteArray)
ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1)))
Next
ts.Close
Else
ado.Type = adTypeBinary
ado.Open
ado.Write varByteArray
ado.SaveToFile strFile, adSaveCreateOverWrite
ado.Close
End If
SaveWebBinary = True
Set ado = Nothing
Set ts = Nothing
Set fs = Nothing
End Function
msgbox SaveWebBinary ("www.al-islam.org/encyclopedia/shia5b.txt", "C:\a\sample.txt")
public Function SaveWebBinary(strUrl, strFile)
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Const ForWriting = 2
Dim web, varByteArray, strData, strBuffer, lngCounter, ado
Err.Clear
Set web = Nothing
Set web = CreateObject("WinHttp.WinHttpRequest.5.1")
If web Is Nothing Then
Set web = CreateObject("WinHttp.WinHttpRequest")
End if
If web Is Nothing Then
Set web = CreateObject("MSXML2.ServerXMLHTTP")
End if
If web Is Nothing Then
Set web = CreateObject("Microsoft.XMLHTTP")
End if
web.Open "GET", strURL, False
web.Send
If Err.Number <> 0 Then
SaveWebBinary = False
Set web = Nothing
Exit Function
End If
If web.Status <> "200" Then
SaveWebBinary = False
Set web = Nothing
Exit Function
End If
varByteArray = web.ResponseBody
Set web = Nothing
'Save the file
On Error Resume Next
Set ado = Nothing
Set ado = CreateObject("ADODB.Stream")
If ado Is Nothing Then
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(strFile, ForWriting, True)
strData = ""
strBuffer = ""
For lngCounter = 0 to UBound(varByteArray)
ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1)))
Next
ts.Close
Else
ado.Type = adTypeBinary
ado.Open
ado.Write varByteArray
ado.SaveToFile strFile, adSaveCreateOverWrite
ado.Close
End If
SaveWebBinary = True
Set ado = Nothing
Set ts = Nothing
Set fs = Nothing
End Function
QTP Scripts
Script to finding out Broken link:
'Start of Code
Set a=Browser().Page().Link()
Dim URL,httprot
URL=a.GetROProperty("href")
Set httprot = CreateObject("MSXML2.XmlHttp")
httprot.open "GET",URL,FALSE
On Error Resume Next
httprot.send()
Print httprot.Status
If httprot.Status<>200 Then
msgbox "fail"
Else
msgbox "pass"
End If
Set httprot = Nothing
'End Of Code
------------------------------------------------
Get names of all open Browsers:
Set bDesc = Description.Create()
bDesc(“application version”).Value = “internet explorer 6″
Set bColl = DeskTop.ChildObjects(bDesc)
Cnt = bColl.Count
MsgBox “There are total:”&Cnt&”browsers opened”
For i = 0 To (Cnt -1)
MsgBox “Browser: “&i&” has title: “& bColl(i).GetROProperty(“title”)
Next ‘ i
Set bColl = Nothing
Set bDesc = Nothing
-------------------------------------------------
code to get number of all images on a Web page:
Dim descImage, listImages
' Create description for all images on a Web page.
' For that we use "html tag" property and its value "IMG"
Set descImage = Description.Create
descImage("html tag").value = "IMG"
' Get all images which match the above description
Set listImages = Browser("Google Book Search").Page("Google Book Search").ChildObjects(descImage)
' Show the number of found images
MsgBox "Found images: " & listImages.Count
-------------------------------------------------------------
Capturing tool tips of images:
Now, I'm going to show how to show how to capture tool tips of images located on a Web page.Actually, the solution is simple.
To capture a tool tip of an image, we can get value of "alt" Run-time Object property with GetROProperty("alt") function:
Browser("brw").Page("pg").GetROProperty("alt")
Let's verify this code in practice. For example, let's check tooltips from Wikipedia Main page
I've prepared QTP script, which gets all image from this page and checks their tooltips ("alt" property)
Dim descImage, listImages, attrAltText, attrSrcText
Browser("Main Page - Wikipedia,").Sync
Browser("Main Page - Wikipedia,").Page("Main Page - Wikipedia,").Sync
' Create description for all images on a Web page.
' For that we use "html tag" property and its value "IMG"
Set descImage = Description.Create
descImage("html tag").value = "IMG"
' Get all images which match the above description
Set listImages = Browser("Main Page - Wikipedia,").Page("Main Page - Wikipedia,").ChildObjects(descImage)
' Check tool tips of images
For i = 0 To listImages.Count - 1
attrAltText = listImages(i).GetROProperty("alt")
attrSrcText = listImages(i).GetROProperty("src")
If attrAltText <> "" Then
MsgBox "Image src: " & attrSrcText & vbNewLine & "Tool tip: " & attrAltText
End If
Next
When I run this code in QTP, it shows all images containing non-empty tool tip
The same message boxes will be shown for others images on a Web page.
So, our solution is simple - use GetROProperty("alt") function to get tool tip of image.
As you can see - it works correctly.
'Start of Code
Set a=Browser().Page().Link()
Dim URL,httprot
URL=a.GetROProperty("href")
Set httprot = CreateObject("MSXML2.XmlHttp")
httprot.open "GET",URL,FALSE
On Error Resume Next
httprot.send()
Print httprot.Status
If httprot.Status<>200 Then
msgbox "fail"
Else
msgbox "pass"
End If
Set httprot = Nothing
'End Of Code
------------------------------------------------
Get names of all open Browsers:
Set bDesc = Description.Create()
bDesc(“application version”).Value = “internet explorer 6″
Set bColl = DeskTop.ChildObjects(bDesc)
Cnt = bColl.Count
MsgBox “There are total:”&Cnt&”browsers opened”
For i = 0 To (Cnt -1)
MsgBox “Browser: “&i&” has title: “& bColl(i).GetROProperty(“title”)
Next ‘ i
Set bColl = Nothing
Set bDesc = Nothing
-------------------------------------------------
code to get number of all images on a Web page:
Dim descImage, listImages
' Create description for all images on a Web page.
' For that we use "html tag" property and its value "IMG"
Set descImage = Description.Create
descImage("html tag").value = "IMG"
' Get all images which match the above description
Set listImages = Browser("Google Book Search").Page("Google Book Search").ChildObjects(descImage)
' Show the number of found images
MsgBox "Found images: " & listImages.Count
-------------------------------------------------------------
Capturing tool tips of images:
Now, I'm going to show how to show how to capture tool tips of images located on a Web page.Actually, the solution is simple.
To capture a tool tip of an image, we can get value of "alt" Run-time Object property with GetROProperty("alt") function:
Browser("brw").Page("pg").GetROProperty("alt")
Let's verify this code in practice. For example, let's check tooltips from Wikipedia Main page
I've prepared QTP script, which gets all image from this page and checks their tooltips ("alt" property)
Dim descImage, listImages, attrAltText, attrSrcText
Browser("Main Page - Wikipedia,").Sync
Browser("Main Page - Wikipedia,").Page("Main Page - Wikipedia,").Sync
' Create description for all images on a Web page.
' For that we use "html tag" property and its value "IMG"
Set descImage = Description.Create
descImage("html tag").value = "IMG"
' Get all images which match the above description
Set listImages = Browser("Main Page - Wikipedia,").Page("Main Page - Wikipedia,").ChildObjects(descImage)
' Check tool tips of images
For i = 0 To listImages.Count - 1
attrAltText = listImages(i).GetROProperty("alt")
attrSrcText = listImages(i).GetROProperty("src")
If attrAltText <> "" Then
MsgBox "Image src: " & attrSrcText & vbNewLine & "Tool tip: " & attrAltText
End If
Next
When I run this code in QTP, it shows all images containing non-empty tool tip
The same message boxes will be shown for others images on a Web page.
So, our solution is simple - use GetROProperty("alt") function to get tool tip of image.
As you can see - it works correctly.
Database Testing
Database Testing mainly focus on
Data integrity test
Stored procedures test
type test
data size test
event driven item test
input item verification
Data integrity test:
Once value undergoes any of the actions like Update,Delete,Insert.
The Db should be verified for the changes performed on related entries (ie) foreign key, Primary key and all dependent entries.
Stored procedures test:
Every stored procedure is to be tested separately for its functionalities.
Based on separate functions its performs
Stored procedure need to be broken up into actions items based on functions & then each action item needs to be tested separately as the result of complete stored procedure.
Execution may differ from the results obtained by partial execution
This also helps in validating the modularity of code(White box).
Whats needed for Stored Procedure test?
The number of arguments being passed.
The data type of each of the arguments being passed
The order of arguments being passed
The Return value
The data type of the return value
What you will do from this?
Based on these we can categories to write both positive and negative test cases
Example: Consider a Stored procedure taking 2 data as input and returning that with the sum of two data's
Type test:
This test is performed to verify that the data types used by the DBA are same as Expected by agreed upon by the developer.Often the data types chosen by developers are not the same as suggested by the DBA especially for the fields like Ph
Text/Number),Description(large test)
Data size test:
Performance of data size testing is often done only at the front end during the unit testing, but it is essential to perform it at back end separately.This ensures smooth transition while appending functionality and integrating modules as during these phases.The data is passed to this system with direct user interaction and bypassing front end validation.
Event driven item test:
Event driven actions like triggers or scheduled actions need to be tested on 2 parameters
1.Events that trigger these actions - Here QA needs to check the events on which any of the trigger can get fired /executed. This testing can be done with the help of DBA also.
2.Actions performed by the previously mentioned events. Here the contents of such stored procedures or scheduled actions are verified for the functionality.
Input item verification:
This is the process of verification of the input items.
Even though this is not totally a part of database testing but this has to be performed essentially during database testing of the web based applications.
Often, it is seen that the input items like text box, Rich test box(ideal for content management systems)
combination box and axtive x controls are tested for validation only at front end(Screen testing).
But these are again to be tested with junk character values to confirm that they do not push in such characters which the databases often misrepresent or replace with other characters(This testing can partially be performed during unit testing also by the developer).
Essential elements needed for database testing:
Back end table structure is very important thing.
Need to know about database structure and the specification of each table like the size of column and if any primary key.
So we can have a database design document which help us to know the structure the specification might be given in FRS.
Database design documents.
If the tester has the idea about the table structure and design then they can check the performance issues also.
Admin user id & password
Build
Any Application interface – ex – TOAD
Data integrity test
Stored procedures test
type test
data size test
event driven item test
input item verification
Data integrity test:
Once value undergoes any of the actions like Update,Delete,Insert.
The Db should be verified for the changes performed on related entries (ie) foreign key, Primary key and all dependent entries.
Stored procedures test:
Every stored procedure is to be tested separately for its functionalities.
Based on separate functions its performs
Stored procedure need to be broken up into actions items based on functions & then each action item needs to be tested separately as the result of complete stored procedure.
Execution may differ from the results obtained by partial execution
This also helps in validating the modularity of code(White box).
Whats needed for Stored Procedure test?
The number of arguments being passed.
The data type of each of the arguments being passed
The order of arguments being passed
The Return value
The data type of the return value
What you will do from this?
Based on these we can categories to write both positive and negative test cases
Example: Consider a Stored procedure taking 2 data as input and returning that with the sum of two data's
Type test:
This test is performed to verify that the data types used by the DBA are same as Expected by agreed upon by the developer.Often the data types chosen by developers are not the same as suggested by the DBA especially for the fields like Ph
Text/Number),Description(large test)
Data size test:
Performance of data size testing is often done only at the front end during the unit testing, but it is essential to perform it at back end separately.This ensures smooth transition while appending functionality and integrating modules as during these phases.The data is passed to this system with direct user interaction and bypassing front end validation.
Event driven item test:
Event driven actions like triggers or scheduled actions need to be tested on 2 parameters
1.Events that trigger these actions - Here QA needs to check the events on which any of the trigger can get fired /executed. This testing can be done with the help of DBA also.
2.Actions performed by the previously mentioned events. Here the contents of such stored procedures or scheduled actions are verified for the functionality.
Input item verification:
This is the process of verification of the input items.
Even though this is not totally a part of database testing but this has to be performed essentially during database testing of the web based applications.
Often, it is seen that the input items like text box, Rich test box(ideal for content management systems)
combination box and axtive x controls are tested for validation only at front end(Screen testing).
But these are again to be tested with junk character values to confirm that they do not push in such characters which the databases often misrepresent or replace with other characters(This testing can partially be performed during unit testing also by the developer).
Essential elements needed for database testing:
Back end table structure is very important thing.
Need to know about database structure and the specification of each table like the size of column and if any primary key.
So we can have a database design document which help us to know the structure the specification might be given in FRS.
Database design documents.
If the tester has the idea about the table structure and design then they can check the performance issues also.
Admin user id & password
Build
Any Application interface – ex – TOAD
Thursday, March 24, 2011
Top 25 Most dangerous Software Errors
Top 25 most dangerous software errors are listed below
1.Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
2.Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
3.Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
4.Cross-Site Request Forgery (CSRF)
5.Improper Access Control (Authorization)
6.Reliance on Untrusted Inputs in a Security Decision
7.Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
8.Unrestricted Upload of File with Dangerous Type
9.Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
10.Missing Encryption of Sensitive Data
11.Use of Hard-coded Credentials
12.Buffer Access with Incorrect Length Value
13.Improper Control of Filename for Include/Require Statement in PHP Program ('PHP File Inclusion')
14.Improper Validation of Array Index
15.Improper Check for Unusual or Exceptional Conditions
16.Information Exposure Through an Error Message
17.Integer Overflow or Wraparound
18.Incorrect Calculation of Buffer Size
19.Missing Authentication for Critical Function
20.Download of Code Without Integrity Check
21.Incorrect Permission Assignment for Critical Resource
22.Allocation of Resources Without Limits or Throttling
23.URL Redirection to Untrusted Site ('Open Redirect')
24.Use of a Broken or Risky Cryptographic Algorithm
25.Race Condition
1.Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
2.Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
3.Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
4.Cross-Site Request Forgery (CSRF)
5.Improper Access Control (Authorization)
6.Reliance on Untrusted Inputs in a Security Decision
7.Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
8.Unrestricted Upload of File with Dangerous Type
9.Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
10.Missing Encryption of Sensitive Data
11.Use of Hard-coded Credentials
12.Buffer Access with Incorrect Length Value
13.Improper Control of Filename for Include/Require Statement in PHP Program ('PHP File Inclusion')
14.Improper Validation of Array Index
15.Improper Check for Unusual or Exceptional Conditions
16.Information Exposure Through an Error Message
17.Integer Overflow or Wraparound
18.Incorrect Calculation of Buffer Size
19.Missing Authentication for Critical Function
20.Download of Code Without Integrity Check
21.Incorrect Permission Assignment for Critical Resource
22.Allocation of Resources Without Limits or Throttling
23.URL Redirection to Untrusted Site ('Open Redirect')
24.Use of a Broken or Risky Cryptographic Algorithm
25.Race Condition
Wednesday, March 23, 2011
3 ways of retrieving data in QTP
Monday, March 21, 2011
International Standard which are related with Testing
Hai,
Have yor ever concentrate on International standard deeply? Why its not so?. As a tester we should have enough knowledge on quality standards.So thatsy i have documented some important international testing standard in this post.
International Standards:
BS 7925-2 - Standard for Software component Testing
BS 7925-1 - Standard for Software Testing Terminology
Do-178B:1992- S/W Considerations in airborne systems and equipement certification,
Requirement and technical concepts for aviation(RTCASC167)
IEEE 610.12 - Standard glossary of software engineering Terminalogy
IEEE 829 - Standard for software test documentation
IEEE 1008 - Standard for software unit testing
IEEE 1012 - Standard for Verification and Validation plans
IEEE 1028 - Standard for software reviews and audits
IEEE 1044 - Standard classification for software anomalies
IEEE 1219 - Standard for Software maintenance
IEEE 802.11 - Standard for Wireless LAN
ISO/IEC 2382-1 - Data processing-Vocabulary-Part 1: Fundamental Terms
ISO 9000:2005 - Quality management systems fundamental and vocabulary
ISO/IEC 9126-1 - Standard for Quality characteristics and sub characteristics
ISO/IEC 12207 -Informational Technology-Software Life cycle process
ISO/IEC 14598-1 -Informational Technology-Software Product evalution-Part1.General
Overview
ISO 9001 - Quality management standard
ISO/IEC 9126 - Standard for software Product Quality
ISO 1013 - Standard of determination of bulk density in a large container
ISO 1012 - Standard for photography
ISO 1926:2005 - Standard for regid cellular plastics
Have yor ever concentrate on International standard deeply? Why its not so?. As a tester we should have enough knowledge on quality standards.So thatsy i have documented some important international testing standard in this post.
International Standards:
BS 7925-2 - Standard for Software component Testing
BS 7925-1 - Standard for Software Testing Terminology
Do-178B:1992- S/W Considerations in airborne systems and equipement certification,
Requirement and technical concepts for aviation(RTCASC167)
IEEE 610.12 - Standard glossary of software engineering Terminalogy
IEEE 829 - Standard for software test documentation
IEEE 1008 - Standard for software unit testing
IEEE 1012 - Standard for Verification and Validation plans
IEEE 1028 - Standard for software reviews and audits
IEEE 1044 - Standard classification for software anomalies
IEEE 1219 - Standard for Software maintenance
IEEE 802.11 - Standard for Wireless LAN
ISO/IEC 2382-1 - Data processing-Vocabulary-Part 1: Fundamental Terms
ISO 9000:2005 - Quality management systems fundamental and vocabulary
ISO/IEC 9126-1 - Standard for Quality characteristics and sub characteristics
ISO/IEC 12207 -Informational Technology-Software Life cycle process
ISO/IEC 14598-1 -Informational Technology-Software Product evalution-Part1.General
Overview
ISO 9001 - Quality management standard
ISO/IEC 9126 - Standard for software Product Quality
ISO 1013 - Standard of determination of bulk density in a large container
ISO 1012 - Standard for photography
ISO 1926:2005 - Standard for regid cellular plastics
Useful Manual Testing and Qtp websites
Hai,
go through some of the useful Manual testing and QTP websites below.
http://www.learnqtp.com/
http://www.scribd.com/document_collections/2472259
http://www.guru99.com/quick-test-profess...al-34.html
http://www.sqaforums.com/ubbthreads.php
http://www.advancedqtp.com/forums/
http://forum.onestoptesting.com/default.asp
http://motevich.blogspot.com/
http://mercuryquicktestprofessional.blogspot.com/
http://en.wikipedia.org/wiki/HP_QuickTest_Professional
http://knol.google.com/k/collection-of-qtp-links#
http://knol.google.com/k/quick-test-prof...tion-tool#
http://www.open2test.org/techdocs.html
Motevich Blogspot:
http://motevich.blogspot.com/
http://motevich.blogspot.com/2008/05/qtp...l-tip.html
http://motevich.blogspot.com/2008/06/qtp...wsers.html
http://motevich.blogspot.com/2008/06/qtp...r-url.html
http://motevich.blogspot.com/2008/06/sta...t-qtp.html
--------------------
QTP Blogspot:
http://quicktestprofessionalblog.blogspo...ction.html
http://www.qtpsudhakar.com/
http://arunjustinraaj.blogspot.com/2007/...h-qtp.html
--------------------
VisualBasic:
http://freevbcode.com/
http://www.brainbell.com/tutors/Visual_B..._Basic.htm
http://en.allexperts.com/q/Visual-Basic-...rmat-1.htm
http://www.vbforums.com/
http://dotnet.mvps.org/
http://www.bigresource.com/Tracker/Track-vb-vWt4DS920k/
http://www.bigresource.com/VB-How-to-cha...hcuI0.html
http://bytes.com/topic/visual-basic-net/...mat-vb-net
http://www.vbforums.com/showthread.php?t=360189
--------------------
advancedqtp.com
http://www.advancedqtp.com/knowledge-bas...ng/dp-101/
http://www.advancedqtp.com/knowledge-bas...o-classes/
http://www.advancedqtp.com/
http://www.advancedqtp.com/community/blo...-reporter/
--------------------
learnqtp.com
http://www.learnqtp.com/forums/index.php
http://mercuryquicktestprofessional.blog...h-qtp.html
http://www.learnqtp.com/
http://mercuryquicktestprofessional.blog...pport.html
http://mercuryquicktestprofessional.blog...n-qtp.html
http://www.learnqtp.com/qtp-quality-cent...tor-guide/
http://mercuryquicktestprofessional.blog...rized.html
http://mercuryquicktestprofessional.blog...ut-to.html
http://www.learnqtp.com/details-on-qtp-certification/
http://www.learnqtp.com/qtp-11-available...esting-11/
http://www.learnqtp.com/new-features-qtp...esting-11/
http://www.learnqtp.com/make-your-qtp-sc...rm-better/
http://www.learnqtp.com/what-is-relative-path-in-qtp/
--------------------
knol.google.com
http://knol.google.com/k/quick-test-prof...rn_QTP(3F)
http://knol.google.com/k/quick-test-prof...ion_to_QTP
http://knol.google.com/k/quick-test-prof...tion-tool#
other:
http://www.vietnamesetestingboard.org/zbxe/
http://www.open2test.org/techdocs.html
http://www.docstoc.com/docs/24271940/QTP-functions
http://www.authorstream.com/Presentation...owerpoint/
http://www.qaforums.com/cgi-bin/forums/u...=005751;p=
http://relevantcodes.com/qtp-using-class...modules-i/
http://relevantcodes.com/qtp-all-about-t...on-create/
http://hubpages.com/hub/descriptive-prog...ng-notepad
http://www.zimbio.com/member/dukekalra/a...Part+4+New
http://stackoverflow.com/questions/19165...-qtp-tests
http://forums13.itrc.hp.com/service/foru...Id=1306035
http://forums11.itrc.hp.com/service/foru...Id=1339486
http://www.onestoptesting.com/qtp/
http://en.wikipedia.org/wiki/QTP
http://agileali.com/qtp/2009/10/how-to-r...ts-in-qtp/
http://hisudhakar.spaces.live.com/?_c11_...Techniques
http://www.coolinterview.com/type.asp?iType=225
http://www.geekinterview.com/question_details/22901
http://qtpfaq.wordpress.com/category/aut...framework/
http://quicktestprofessional.wordpress.c...oard-keys/
http://msdn.microsoft.com/en-us/library/8c6yea83
http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx
http://www.guru99.com/qtp-interview-questions.html
http://www.ibm.com/developerworks/ration.../591a.html
http://heydaysoft.com/flash/video3/sidz_copy.swf
http://www.softwareinquisition.com/-p=55.htm
http://www.qtpsudhakar.com/2010/03/all-a...art-2.html
http://www.regular-expressions.info/reference.html
http://www.docstoc.com/docs/35295992/Reg...ons-in-QTP
there is a lot of useful information...
go through some of the useful Manual testing and QTP websites below.
http://www.learnqtp.com/
http://www.scribd.com/document_collections/2472259
http://www.guru99.com/quick-test-profess...al-34.html
http://www.sqaforums.com/ubbthreads.php
http://www.advancedqtp.com/forums/
http://forum.onestoptesting.com/default.asp
http://motevich.blogspot.com/
http://mercuryquicktestprofessional.blogspot.com/
http://en.wikipedia.org/wiki/HP_QuickTest_Professional
http://knol.google.com/k/collection-of-qtp-links#
http://knol.google.com/k/quick-test-prof...tion-tool#
http://www.open2test.org/techdocs.html
Motevich Blogspot:
http://motevich.blogspot.com/
http://motevich.blogspot.com/2008/05/qtp...l-tip.html
http://motevich.blogspot.com/2008/06/qtp...wsers.html
http://motevich.blogspot.com/2008/06/qtp...r-url.html
http://motevich.blogspot.com/2008/06/sta...t-qtp.html
--------------------
QTP Blogspot:
http://quicktestprofessionalblog.blogspo...ction.html
http://www.qtpsudhakar.com/
http://arunjustinraaj.blogspot.com/2007/...h-qtp.html
--------------------
VisualBasic:
http://freevbcode.com/
http://www.brainbell.com/tutors/Visual_B..._Basic.htm
http://en.allexperts.com/q/Visual-Basic-...rmat-1.htm
http://www.vbforums.com/
http://dotnet.mvps.org/
http://www.bigresource.com/Tracker/Track-vb-vWt4DS920k/
http://www.bigresource.com/VB-How-to-cha...hcuI0.html
http://bytes.com/topic/visual-basic-net/...mat-vb-net
http://www.vbforums.com/showthread.php?t=360189
--------------------
advancedqtp.com
http://www.advancedqtp.com/knowledge-bas...ng/dp-101/
http://www.advancedqtp.com/knowledge-bas...o-classes/
http://www.advancedqtp.com/
http://www.advancedqtp.com/community/blo...-reporter/
--------------------
learnqtp.com
http://www.learnqtp.com/forums/index.php
http://mercuryquicktestprofessional.blog...h-qtp.html
http://www.learnqtp.com/
http://mercuryquicktestprofessional.blog...pport.html
http://mercuryquicktestprofessional.blog...n-qtp.html
http://www.learnqtp.com/qtp-quality-cent...tor-guide/
http://mercuryquicktestprofessional.blog...rized.html
http://mercuryquicktestprofessional.blog...ut-to.html
http://www.learnqtp.com/details-on-qtp-certification/
http://www.learnqtp.com/qtp-11-available...esting-11/
http://www.learnqtp.com/new-features-qtp...esting-11/
http://www.learnqtp.com/make-your-qtp-sc...rm-better/
http://www.learnqtp.com/what-is-relative-path-in-qtp/
--------------------
knol.google.com
http://knol.google.com/k/quick-test-prof...rn_QTP(3F)
http://knol.google.com/k/quick-test-prof...ion_to_QTP
http://knol.google.com/k/quick-test-prof...tion-tool#
other:
http://www.vietnamesetestingboard.org/zbxe/
http://www.open2test.org/techdocs.html
http://www.docstoc.com/docs/24271940/QTP-functions
http://www.authorstream.com/Presentation...owerpoint/
http://www.qaforums.com/cgi-bin/forums/u...=005751;p=
http://relevantcodes.com/qtp-using-class...modules-i/
http://relevantcodes.com/qtp-all-about-t...on-create/
http://hubpages.com/hub/descriptive-prog...ng-notepad
http://www.zimbio.com/member/dukekalra/a...Part+4+New
http://stackoverflow.com/questions/19165...-qtp-tests
http://forums13.itrc.hp.com/service/foru...Id=1306035
http://forums11.itrc.hp.com/service/foru...Id=1339486
http://www.onestoptesting.com/qtp/
http://en.wikipedia.org/wiki/QTP
http://agileali.com/qtp/2009/10/how-to-r...ts-in-qtp/
http://hisudhakar.spaces.live.com/?_c11_...Techniques
http://www.coolinterview.com/type.asp?iType=225
http://www.geekinterview.com/question_details/22901
http://qtpfaq.wordpress.com/category/aut...framework/
http://quicktestprofessional.wordpress.c...oard-keys/
http://msdn.microsoft.com/en-us/library/8c6yea83
http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx
http://www.guru99.com/qtp-interview-questions.html
http://www.ibm.com/developerworks/ration.../591a.html
http://heydaysoft.com/flash/video3/sidz_copy.swf
http://www.softwareinquisition.com/-p=55.htm
http://www.qtpsudhakar.com/2010/03/all-a...art-2.html
http://www.regular-expressions.info/reference.html
http://www.docstoc.com/docs/35295992/Reg...ons-in-QTP
there is a lot of useful information...
ISTQB Dump Questions
Hai Friends,
Herewith i have attached Dump questions of ISTQB Examination.I belive that It could be more useful for viewershttp://ajoysingha.info/istqb.aspx
Herewith i have attached Dump questions of ISTQB Examination.I belive that It could be more useful for viewershttp://ajoysingha.info/istqb.aspx
Subscribe to:
Posts (Atom)