Exploratory Testing (Public) Workshop in Noida (June 19, 2010) by Pradeep Soundararajan

Here is an opportunity for you to meet Pradeep in Noida (India- Delhi, NCR). Pradeep is delivering a public workshop on Exploratory testing. I am waiting for his workshop from a long time. [I already registered 🙂 and I am very excited to meet him :)]. It is a great opportunity for me to judge myself and learn new things.
For those who don’t know about Pradeep – Pradeep has played a pivotal role in inspiring testers to better their skills. He is among one of the most demanding Test Consultant.

I personally suggest that testers should attend his workshop. You can contact him through his blog http://testertested.blogspot.com/ for the workshop details and payment details.

QTP GetTOProperty, GetToProperties, SetTOProperty & GetROProperty Simplified

QTP GetTOProperty, GetToProperties, SetTOProperty & GetROProperty Simplified

Retrieving and Setting Test Object Property Values – Following are the pre-defined ways to retrieve and set values of test objects:
GetTOProperty
The GetTOProperty returns the value of the property from the test object’s description, i.e., the value used by QTP to identify the object. It returns the value of a property for a test object which QTP recorded to identify during the recording (run time).
The GetTOProperty command will retrieve the value as it was originally recorded (or created via DP). It does not matter if the corresponding runtime object exists, or if that value was updated in “the real world” since the object was recorded.
Examples:

Example 1(when object is in Object Repository):

SystemUtil.Run “iexplore.exe”
Browser(“Google”).Navigate “http://www.yahoomail.com/”
abc = Browser(“Google”).Page(“Yahoo! Mail: The best”).WebEdit(“login”).GetTOProperties (“name”)
msgbox abc

Example 2 (with descriptive programming):
Set obj = Browser(“name:=Sign in to Yahoo!”).Page(“title:=Sign in to Yahoo!”).WebEdit(“html id:=username”)
msgbox obj.GetTOProperty(“html id”)

SetTOProperty
The SetTOProperty changes the value of a test object property. Changing the property doesn’t affect the OR or Active Screen, but just the way QTP identifies the object during runtime. Actually, this changes the properties of the temporary copy of the object stored in RAM by QTP.
Any changes you make using the SetTOProperty method apply only during the course of the run session, and do not affect the values stored in the test object repository.
Example:
Set obj = Browser(“name:=Sign in to Yahoo!”).Page(“title:=Sign in to Yahoo!”).WebEdit(“html id:=username”)
msgbox obj.GetTOProperty(“html id”)
‘Would retrieve the object html id from the test object description, whether it’s in the OR or DP defined
‘Now we set the name property

obj.SetTOProperty “name”, “loginzzzzz”‘And retrieve it
msgbox obj.GetTOProperty(“name”)
QTP Object Repository
Fig: For “Login” text field, QTP captures value of name property as “login”.
SetTOProperty changes value at Run Time in Object Repository
Fig 2: While executing the script, we use “SetToProperty” and change the value of “name” property to “loginzzzz”.
More examples:

Call Window("Notepad").SetTOProperty("nativeclass", "incorrect value") 
Window("Notepad").Close 'this command will fail

GetTOProperties:
GetTOProperties is used to enumerate all the properties of an object used for identification.
Example:
Set abc = Browser(“Google”).Page(“Yahoo! Mail: The best”).WebEdit(“login”)
Set Props = abc.GetTOProperties
PropsCount = Props.Count
For i = 0 To PropsCount – 1
PropName = Props(i).Name (.Name = Returns the name of property)
PropValue = Props(i).Value (.value = Returns the value of property)
MsgBox PropName & ” = ” & PropValue
Next
Execute the above codes in QTP, you will get the results.

GetROProperty:

GetROProperty allows us to get the current value of a test object property. This means that unlike the GetTOProperty and GetTOProperties commands, GetROProperty requires the test object’s corresponding runtime object to exist.
Basically you would use GetROProperty to get the value of an object property during runtime, such as the current list/combo item selection, or the text in a WebEdit, or the size of an object (width & height).

Print Browser("X").Page("Y"). WebList ("z").GetROProperty("selected item index")

References: http://www.advancedqtp.com & http://knowledgeinbox.com

Responsibilities & Qualities of a Lead Automation Test Engineer

Responsibilities & Qualities of a Lead Automation Test Engineer are:
The Senior Test Automation Engineer will lead the effort to build new test frameworks and or extend existing frameworks. The tool/s accommodates both functional and load testing. These frameworks allow us to perform end-to-end testing in multi-component environments. He will working with the test engineers to design and develop a reusable architecture for the test automation. The Framework or Automation Architecture should consists the following:
 

  • Prepare Reusable functions, which improve the robustness, re-usability, and maintainability of their test scripts.
  • The framework should be designed in such a way that it increases and speeds up their productivity.
  • The engineer also must support the framework/s, for example, supporting dev/qa with issues using the tool. The engineer will implement automation test scripts. Integration with the test management tool is also, planned.
  • The Senior Test Automation Engineer must be able to take on leadership responsibilities and influence the direction of the automation effort, and its schedule and prioritization.
  • The engineer will work with management, developers, and quality assurance personnel, to meet these goals.
  • Additionally the Test Automation Engineer will also be involved in supporting the build master implement/improve build test processes, environments, and scripts. These build tests ensure that the code drops to quality assurance are of the highest quality.
  • ADDITIONAL
  • He will provide a practical approach to complex product testing, specifically in the areas of the automation of test cases for the purposes of regression testing. You will be a creative and proactive thinker and you will make use of current technologies to provide extensible automation infrastructures.
  • He will review product requirements, functional and design specifications to determine and prepare automated test cases.
  • He will work closely with other QC team members to automate the execution and verification of reports created by the various company products.
  • He will work closely with various Dev team members to understand testing objectives and ensure that problems are resolved in a timely and efficient manner.
  • He will be part of a team focusing on automation of an identified set of migration tests, checking they run correctly and working within the infrastructure. The team would focus on develop and test these automation buckets which would be executed by other teams..

Responsibilities & Qualities of an Automation Test Engineer

Responsibilities for Automation Test Consultants may include:
* Establish an automated test environment for UI and non-UI testing
* Review test cases and automate whenever possible
* Educate team members on test automation and drive adoption
* Integrate automated test cases into nightly build system
* Design, document, manage and execute test cases, sets, and suites
* Work in cross-functional project teams that include Development, Marketing, Usability, Software Quality Assurance, Customer Learning, and Support.
Responsibilities of an Automation Test Engineer are dependent on the test phase and test automation framework:
Test Phase:
Unit Test

The test automation engineer, in this case the application developer, instruments the application code in order to enable effective and repetitive unit testing of the code before it is incorporated into the current build. There are several Agile Development paradigms that incorporate this concept / process into their standard development cycle.
Function & System Test
The test automation engineer develops automated solutions to expedite test. This can take the form of tooling to increase the efficiency of test preparation and / or the creation automated of test cases.
Acceptance TestThe test automation engineer develops and deploys automated solutions to expedite acceptance test. In Function and System test the Test Engineer fulfils the same role but it is in the context of the Test Organization – if automation tooling is deployed as part of Acceptance Test then the automation solution should be treated / tested as part of the System being deployed.
For any given Test Phase the objective of the Test Automation Engineer is to put the power of automation into the hands of Test Designers / Testers. The Test Engineer should deploy the simplest solution to meet the defined need – the objective is not to build the “best automation solution ever” the objective is to effectively automate the testing effort.

Challenging Test Automation Questions – Judge Yourself

1. Our software designers use UML for modelling applications. Based on their use cases, we would like to plan a test strategy. Do you agree with this approach or would this mean more effort for the testers?

2. Tell me about a difficult time you had at work and how you worked through it?
3. Give me an example of something you tried at work but did not work out so you had to go at things another way?
4. How can one file compare future dated output files from a program which has change, against the baseline run which used current date for input. The client does not want to mask dates on the output files to allow compares?
5. What automating testing tools are you familiar with?
6. How did you use automating testing tools in your job?
7. Describe some problem that you had with automating testing tool.
8. How do you plan test automation?
9. Can test automation improve test effectiveness?
10. What is data – driven automation?
11. What are the main attributes of test automation?
12. Does automation replace manual testing?
13. How will you choose a tool for test automation?
14. How you will evaluate the tool for test automation?
15. What are main benefits of test automation?
16. What could go wrong with test automation?
17. How you will describe testing activities?
17. What testing activities you may want to automate?

Load/Performance Testing Limitations with Manual Testing

Have you ever tried to test performance testing manually? or Are you performing load testing manually? Do you know its drawbacks? If you doing load/performance testing manually then it might let costly failures of Mission-critical applications.
Before discussing the limitations of performance testing with manual testing, lets discuss Why Performance / Load Test is required?

Load/Performance Testing is required to expose bugs that do not surface during Functional Tests Ex. Memory leaks, buffer overflows. To Assure Performance & functionality under real-time conditions. To locate potential problems before deployment in production. To establish a baseline for future regression testing.

To verify and prove the soundness of Infrastructure. To collect metrics on various performance measures.
Manual performance testing is not feasible for testing systems which must support tremendous loads. Following are the Load testing Limitations with Manual Testing:

1. Generate enough load to perform testing.
2. Obtain sufficient testing personnel (Users) and host machines.
3. Synchronize Users.
3. Measuring Test results.
4. Repeatability of tests after identifying & fixing bottlenecks.

Related article – LoadRuner Tips

A Must read – Art of Application Performance Testing