Why White box testing when black box testing is there to test conformance to requirements
Logic errors and incorrect assumptions most likely to be made when coding for "special cases". Need to ensure these execution paths are tested.
May find assumptions about execution paths incorrect, and so make design errors. White box testing can find these errors.
Typographical errors are random. Just as likely to be on an obscure logical path as on a mainstream path.
Software Testing Training
Software testing institute
corporate training software testing
Monday, June 29, 2009
Regression Testing
Regression Testing
Testing conducted for the purpose of evaluating whether or not a change to the system (all CM items) has introduced a new failure. Regression testing is
often accomplished through the construction, execution and analysis of product and system tests.
Regression testing is an expensive but necessary activity performed on modified software to provide confidence that changes are correct and do not adversely
affect other system components. Four things can happen when a developer attempts to fix a bug. Three of these things are bad, and one is good:
Because of the high probability that one of the bad outcomes will result from a change to the system, it is necessary to do regression testing.
It can be difficult to determine how much re-testing is needed, especially near the end of the development cycle. Most industrial testing is done via test
suites; automated sets of procedures designed to exercise all parts of a program and to show defects. While the original suite could be used to test the
modified software, this might be very time-consuming. A regression test selection technique chooses, from an existing test set, the tests that are deemed
necessary to validate modified software.
There are three main groups of test selection approaches in use:
Minimization approaches seek to satisfy structural coverage criteria by identifying a minimal set of tests that must be rerun.
Coverage approaches are also based on coverage criteria, but do not require minimization of the test set. Instead, they seek to select all tests that
exercise changed or affected program components.
Safe attempt instead to select every test that will cause the modified program to produce different output than original program.
An interesting approach to limiting test cases is based on whether we can confine testing to the "vicinity" of the change. (Ex. If I put a new radio in my
car, do I have to do a complete road test to make sure the change was successful?) A new breed of regression test theory tries to identify, through program
flows or reverse engineering, where boundaries can be placed around modules and subsystems. These graphs can determine which tests from the existing suite
may exhibit changed behavior on the new version.
Regression testing has been receiving more attention as corporations focus on fixing the 'Year 2000 Bug'. The goal of most Y2K is to correct the date
handling portions of their system without changing any other behavior. A new 'Y2K' version of the system is compared against a baseline original system. With
the obvious exception of date formats, the performance of the two versions should be identical. This means not only do they do the same things correctly,
they also do the same things incorrectly. A non-Y2K bug in the original software should not have been fixed by the Y2K work.
A frequently asked question about regression testing is 'The developer says this problem is fixed. Why do I need to re-test?’ to which the answer is 'The
same person probably told you it worked in the first place'
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Testing conducted for the purpose of evaluating whether or not a change to the system (all CM items) has introduced a new failure. Regression testing is
often accomplished through the construction, execution and analysis of product and system tests.
Regression testing is an expensive but necessary activity performed on modified software to provide confidence that changes are correct and do not adversely
affect other system components. Four things can happen when a developer attempts to fix a bug. Three of these things are bad, and one is good:
Because of the high probability that one of the bad outcomes will result from a change to the system, it is necessary to do regression testing.
It can be difficult to determine how much re-testing is needed, especially near the end of the development cycle. Most industrial testing is done via test
suites; automated sets of procedures designed to exercise all parts of a program and to show defects. While the original suite could be used to test the
modified software, this might be very time-consuming. A regression test selection technique chooses, from an existing test set, the tests that are deemed
necessary to validate modified software.
There are three main groups of test selection approaches in use:
Minimization approaches seek to satisfy structural coverage criteria by identifying a minimal set of tests that must be rerun.
Coverage approaches are also based on coverage criteria, but do not require minimization of the test set. Instead, they seek to select all tests that
exercise changed or affected program components.
Safe attempt instead to select every test that will cause the modified program to produce different output than original program.
An interesting approach to limiting test cases is based on whether we can confine testing to the "vicinity" of the change. (Ex. If I put a new radio in my
car, do I have to do a complete road test to make sure the change was successful?) A new breed of regression test theory tries to identify, through program
flows or reverse engineering, where boundaries can be placed around modules and subsystems. These graphs can determine which tests from the existing suite
may exhibit changed behavior on the new version.
Regression testing has been receiving more attention as corporations focus on fixing the 'Year 2000 Bug'. The goal of most Y2K is to correct the date
handling portions of their system without changing any other behavior. A new 'Y2K' version of the system is compared against a baseline original system. With
the obvious exception of date formats, the performance of the two versions should be identical. This means not only do they do the same things correctly,
they also do the same things incorrectly. A non-Y2K bug in the original software should not have been fixed by the Y2K work.
A frequently asked question about regression testing is 'The developer says this problem is fixed. Why do I need to re-test?’ to which the answer is 'The
same person probably told you it worked in the first place'
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Performance Testing - Volume Testing
Performance Testing - Volume Testing
Volume Testing: Testing where the system is subjected to large volumes of data. As regards faults that should be found through volume testing are those,
where the behaviour of the software deviates from that expected for a specified volume of data. Thus a bank system will be tested for faults at much larger
volumes of data, than that of small retailer software. A fault which is only manifested on a table with a million records will be of no concern to the retail
software, but will be picked up by the bank testers.
For example, a window often used window object is populated with data, by calling a database object which runs a complex SQL query. Supposing the component
is tested against tables with only 4-5 records. Of course it will return within seconds. Everything seems fine. It is then integrated with the window, and
system tested. Again everything seems ok. It is only when the application is in User Acceptance (or even gone live) and it is tested against 100,000 records,
is it discovered that, the SQL was not properly optimized and the tables not indexed. Thus it should have been tested at the component level.
Volume testing needs two things. Firstly clear expected outcomes of how the software is to behave for a given level of data. Secondly, data, and lots of it.
The expected behaviour at various levels, should be in the specification documentation. Ideally this will say something like "the customers details will be
returned returned on the screen within 3 seconds, from a database with 1 million customer records." This gives the tester a benchmark to base a test case on.
The second requirement for data, needs either real life data, or simulated data. Usually, real life data will come in the form of a customer database, that
has had private information, such as names and account numbers scrambled. Alternatively records can be created from scratch using automated tools or by
adding rules directly on to the database, with SQL.
As with all testing, proper records must be kept showing the inputs, outputs other information, to aid potential debugging and audit purposes
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Volume Testing: Testing where the system is subjected to large volumes of data. As regards faults that should be found through volume testing are those,
where the behaviour of the software deviates from that expected for a specified volume of data. Thus a bank system will be tested for faults at much larger
volumes of data, than that of small retailer software. A fault which is only manifested on a table with a million records will be of no concern to the retail
software, but will be picked up by the bank testers.
For example, a window often used window object is populated with data, by calling a database object which runs a complex SQL query. Supposing the component
is tested against tables with only 4-5 records. Of course it will return within seconds. Everything seems fine. It is then integrated with the window, and
system tested. Again everything seems ok. It is only when the application is in User Acceptance (or even gone live) and it is tested against 100,000 records,
is it discovered that, the SQL was not properly optimized and the tables not indexed. Thus it should have been tested at the component level.
Volume testing needs two things. Firstly clear expected outcomes of how the software is to behave for a given level of data. Secondly, data, and lots of it.
The expected behaviour at various levels, should be in the specification documentation. Ideally this will say something like "the customers details will be
returned returned on the screen within 3 seconds, from a database with 1 million customer records." This gives the tester a benchmark to base a test case on.
The second requirement for data, needs either real life data, or simulated data. Usually, real life data will come in the form of a customer database, that
has had private information, such as names and account numbers scrambled. Alternatively records can be created from scratch using automated tools or by
adding rules directly on to the database, with SQL.
As with all testing, proper records must be kept showing the inputs, outputs other information, to aid potential debugging and audit purposes
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Performance Testing - Stress testing 2
Performance Testing - Stress testing 2
Stress testing :is subjecting a system to an unreasonable load while denying it the resources (e.g., RAM, disc, mips, interrupts, etc.) needed to process
that load. The idea is to stress a system to the breaking point in order to find bugs that will make that break potentially harmful. The system is not
expected to process the overload without adequate resources, but to behave (e.g., fail) in a decent manner (e.g., not corrupting or losing data). Bugs and
failure modes discovered under stress testing may or may not be repaired depending on the application, the failure mode, consequences, etc. The load
(incoming transaction stream) in stress testing is often deliberately distorted so as to force the system into resource depletion.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Stress testing :is subjecting a system to an unreasonable load while denying it the resources (e.g., RAM, disc, mips, interrupts, etc.) needed to process
that load. The idea is to stress a system to the breaking point in order to find bugs that will make that break potentially harmful. The system is not
expected to process the overload without adequate resources, but to behave (e.g., fail) in a decent manner (e.g., not corrupting or losing data). Bugs and
failure modes discovered under stress testing may or may not be repaired depending on the application, the failure mode, consequences, etc. The load
(incoming transaction stream) in stress testing is often deliberately distorted so as to force the system into resource depletion.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Performance Testing - Load testing
Performance Testing - Load testing
Load testing: is subjecting a system to a statistically representative (usually) load. The two main reasons for using such loads is in support of software
reliability testing and in performance testing. The term "load testing" by itself is too vague and imprecise to warrant use. For example, do you mean
representative load," "overload," "high load," etc. In performance testing, load is varied from a minimum (zero) to the maximum level the systemcan sustain
without running out of resources or having, transactions suffer (application-specific) excessive delay.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Load testing: is subjecting a system to a statistically representative (usually) load. The two main reasons for using such loads is in support of software
reliability testing and in performance testing. The term "load testing" by itself is too vague and imprecise to warrant use. For example, do you mean
representative load," "overload," "high load," etc. In performance testing, load is varied from a minimum (zero) to the maximum level the systemcan sustain
without running out of resources or having, transactions suffer (application-specific) excessive delay.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Integration Testing
Integration Testing
One of the most difficult aspects of software development is the integration and testing of large, untested sub-systems. The integrated system frequently
fails in significant and mysterious ways, and it is difficult to fix it
Integration testing exercises several units that have been combined to form a module, subsystem, or system. Integration testing focuses on the interfaces
between units, to make sure the units work together. The nature of this phase is certainly 'white box', as we must have a certain knowledge of the units to
recognize if we have been successful in fusing them together in the module.
There are three main approaches to integration testing: top-down, bottom-up and 'big bang'. Top-down combines, tests, and debugs top-level routines that
become the test 'harness' or 'scaffolding' for lower-level units. Bottom-up combines and tests low-level units into progressively larger modules and
subsystems. 'Big bang' testing is, unfortunately, the prevalent integration test 'method'. This is waiting for all the module units to be complete before
trying them out together.
Integration tests can rely heavily on stubs or drivers. Stubs stand-in for finished subroutines or sub-systems. A stub might consist of a function header
with no body, or it may read and return test data from a file, return hard-coded values, or obtain data from the tester. Stub creation can be a time
consuming piece of testing.
The cost of drivers and stubs in the top-down and bottom-up testing methods is what drives the use of 'big bang' testing. This approach waits for all the
modules to be constructed and tested independently, and when they are finished, they are integrated all at once. While this approach is very quick, it
frequently reveals more defects than the other methods. These errors have to be fixed and as we have seen, errors that are found 'later' take longer to fix.
In addition, like bottom up, there is really nothing that can be demonstrated until later in the process.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
One of the most difficult aspects of software development is the integration and testing of large, untested sub-systems. The integrated system frequently
fails in significant and mysterious ways, and it is difficult to fix it
Integration testing exercises several units that have been combined to form a module, subsystem, or system. Integration testing focuses on the interfaces
between units, to make sure the units work together. The nature of this phase is certainly 'white box', as we must have a certain knowledge of the units to
recognize if we have been successful in fusing them together in the module.
There are three main approaches to integration testing: top-down, bottom-up and 'big bang'. Top-down combines, tests, and debugs top-level routines that
become the test 'harness' or 'scaffolding' for lower-level units. Bottom-up combines and tests low-level units into progressively larger modules and
subsystems. 'Big bang' testing is, unfortunately, the prevalent integration test 'method'. This is waiting for all the module units to be complete before
trying them out together.
Integration tests can rely heavily on stubs or drivers. Stubs stand-in for finished subroutines or sub-systems. A stub might consist of a function header
with no body, or it may read and return test data from a file, return hard-coded values, or obtain data from the tester. Stub creation can be a time
consuming piece of testing.
The cost of drivers and stubs in the top-down and bottom-up testing methods is what drives the use of 'big bang' testing. This approach waits for all the
modules to be constructed and tested independently, and when they are finished, they are integrated all at once. While this approach is very quick, it
frequently reveals more defects than the other methods. These errors have to be fixed and as we have seen, errors that are found 'later' take longer to fix.
In addition, like bottom up, there is really nothing that can be demonstrated until later in the process.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Functional testing
Functional testing
Functional testing: Application of test data derived from the specified functional requirements without regard to the final program structure. Also known as
black-box testing.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Functional testing: Application of test data derived from the specified functional requirements without regard to the final program structure. Also known as
black-box testing.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Exploratory Testing
Exploratory Testing
An interactive process of concurrent product exploration, test
design, and test execution. The heart of exploratory testing can be
stated simply: The outcome of this test influences the design of the
next test.
The plainest definition of exploratory testing is test design and
test execution at the same time. This is the opposite of scripted
testing (predefined test procedures, whether manual or automated).
Exploratory tests, unlike scripted tests, are not defined in advance
and carried out precisely according to plan. This may sound like a
straightforward distinction, but in practice it's murky. That's
because "defined" is a spectrum. Even an otherwise elaborately
defined test procedure will leave many interesting details (such as
how quickly to type on the keyboard, or what kinds of behavior to
recognize as a failure) to the discretion of the tester. Likewise,
even a free-form exploratory test session will involve tacit
constraints or mandates about what parts of the product to test, or
what strategies to use. A good exploratory tester will write down
test ideas and use them in later test cycles. Such notes sometimes
look a lot like test scripts, even if they aren't. Exploratory
testing is sometimes confused with "ad hoc" testing. Ad hoc testing
normally refers to a process of improvised, impromptu bug searching.
By definition, anyone can do ad hoc testing
What kinds of specifics affect ET? Here are some of them:
1. the mission of the test project
2. the mission of this particular test session
3. the role of the tester
4. the tester (skills, talents, and preferences)
5. available tools and facilities
6. available time
7. available test data and materials
8. available help from other people
9. accountability requirements
10. what the tester‘s clients care about
11. the current testing strategy
12. the status of other testing efforts on the same product
13. the product, itself- its user interface - its behavior - its
present state of execution - its defects- its testability- its
purpose
14. what the tester knows about the product- what just happened in
the previous test - known problems with it- past problems with it -
strengths and weaknesses - risk areas and magnitude of perceived risk
- recent changes to it - direct observations of it- rumors about it -
the nature of its users and user behavior - how it‘s supposed to work
- how it‘s put together - how it‘s similar to or different from other
products
15. what the tester would like to know about the product
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about
software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
An interactive process of concurrent product exploration, test
design, and test execution. The heart of exploratory testing can be
stated simply: The outcome of this test influences the design of the
next test.
The plainest definition of exploratory testing is test design and
test execution at the same time. This is the opposite of scripted
testing (predefined test procedures, whether manual or automated).
Exploratory tests, unlike scripted tests, are not defined in advance
and carried out precisely according to plan. This may sound like a
straightforward distinction, but in practice it's murky. That's
because "defined" is a spectrum. Even an otherwise elaborately
defined test procedure will leave many interesting details (such as
how quickly to type on the keyboard, or what kinds of behavior to
recognize as a failure) to the discretion of the tester. Likewise,
even a free-form exploratory test session will involve tacit
constraints or mandates about what parts of the product to test, or
what strategies to use. A good exploratory tester will write down
test ideas and use them in later test cycles. Such notes sometimes
look a lot like test scripts, even if they aren't. Exploratory
testing is sometimes confused with "ad hoc" testing. Ad hoc testing
normally refers to a process of improvised, impromptu bug searching.
By definition, anyone can do ad hoc testing
What kinds of specifics affect ET? Here are some of them:
1. the mission of the test project
2. the mission of this particular test session
3. the role of the tester
4. the tester (skills, talents, and preferences)
5. available tools and facilities
6. available time
7. available test data and materials
8. available help from other people
9. accountability requirements
10. what the tester‘s clients care about
11. the current testing strategy
12. the status of other testing efforts on the same product
13. the product, itself- its user interface - its behavior - its
present state of execution - its defects- its testability- its
purpose
14. what the tester knows about the product- what just happened in
the previous test - known problems with it- past problems with it -
strengths and weaknesses - risk areas and magnitude of perceived risk
- recent changes to it - direct observations of it- rumors about it -
the nature of its users and user behavior - how it‘s supposed to work
- how it‘s put together - how it‘s similar to or different from other
products
15. what the tester would like to know about the product
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about
software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Boundary Value Analysis
Large number of errors tend to occur at boundaries of the input domain.
BVA leads to selection of test cases that exercise boundary values.
BVA complements equivalence partitioning. Rather than select any element in an equivalence class, select those at the ''edge' of the class.
Examples:
For a range of values bounded by a and b, test (a-1), a, (a+1), (b-1), b, (b+1).
If input conditions specify a number of values n, test with (n-1), n and (n+1) input values.
Apply 1 and 2 to output conditions (e.g., generate table of minimum and maximum size).
If internal program data structures have boundaries (e.g., buffer size, table limits), use input data to exercise structures on boundaries.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
BVA leads to selection of test cases that exercise boundary values.
BVA complements equivalence partitioning. Rather than select any element in an equivalence class, select those at the ''edge' of the class.
Examples:
For a range of values bounded by a and b, test (a-1), a, (a+1), (b-1), b, (b+1).
If input conditions specify a number of values n, test with (n-1), n and (n+1) input values.
Apply 1 and 2 to output conditions (e.g., generate table of minimum and maximum size).
If internal program data structures have boundaries (e.g., buffer size, table limits), use input data to exercise structures on boundaries.
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
About Software Testing
Process of evaluation of Software application: To verify it satisfy the specified requirements With intent to find errors To Check if the system ?Fit for Purpose? Simulation of real time scenarios.
Testing is not a one-time activity—applications need to be tested throughout their lifecycle. Every version upgrade, module addition, or enhancement, as well as every implementation at a new site or increase in user load, needs to be put through comprehensive testing. The Program Doesn‘t Work Nobody would pay you to test if their program didn‘t have bugs. All programs have bugs. Any change to a program can cause new bugs, and any aspect of the program can be broken. You DON‘T ?verify that the program is working.? You FIND bugs. “If you set your mind to show that a program works correctly, you’ll be more likely to miss problems than if you want and expect the program to fail.” Complete Testing is Impossible:
1. There are a nearly infinite number of paths through any non-trivial program.
2. There are a virtually infinite set of combinations of data that you can feed the program.
You can’t test them all.
1. Therefore, your task is to find bugs --not to find all the bugs.
2. You want to find as many bugs as possible
3. Find the most serious bugs
4. Find bugs as early as possible
5. Your challenges will require judgment, trade-offs, and efficiency.
“Q: How many QA testers does it take to change a lightbulb?
A: QA testers don't change anything. They just report that it's dark.” Kerry Zallar?
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Testing is not a one-time activity—applications need to be tested throughout their lifecycle. Every version upgrade, module addition, or enhancement, as well as every implementation at a new site or increase in user load, needs to be put through comprehensive testing. The Program Doesn‘t Work Nobody would pay you to test if their program didn‘t have bugs. All programs have bugs. Any change to a program can cause new bugs, and any aspect of the program can be broken. You DON‘T ?verify that the program is working.? You FIND bugs. “If you set your mind to show that a program works correctly, you’ll be more likely to miss problems than if you want and expect the program to fail.” Complete Testing is Impossible:
1. There are a nearly infinite number of paths through any non-trivial program.
2. There are a virtually infinite set of combinations of data that you can feed the program.
You can’t test them all.
1. Therefore, your task is to find bugs --not to find all the bugs.
2. You want to find as many bugs as possible
3. Find the most serious bugs
4. Find bugs as early as possible
5. Your challenges will require judgment, trade-offs, and efficiency.
“Q: How many QA testers does it take to change a lightbulb?
A: QA testers don't change anything. They just report that it's dark.” Kerry Zallar?
Software Testing Training
http://www.qacampus.com
QACampus is Center of Education for anything and everything about software testing.
http://www.crestech.in
http://www.crestechsoftware.com.au
Tuesday, May 26, 2009
Automated Functional Testing
Automated Functional Testing
By Bhrigu Malhotra
First of all let me make you all aware that I’m a developer and what you are going to read further is a developer’s account, so it may sound to you like a layman tester. But what I’m going to share is something which has been very helpful to me to ‘functionally’ test the web application our team has been building and I thought this may help you as well. So even if you are a tester, try to think the way developer’s think for some time, I’m sure this would be useful to you too.
Before I go ahead, I think we all understand that Functional Testing is testing the functionality of our application which means you’d probably be going through a login using some credentials, clicking some links, verifying some outputs - in simplest terms. Now just give it a thought that if you can automate these i.e. invest some time for once and then while you are sipping a cup of coffee, someone is testing what you coded. Change your code 10 times and run your test 10 times to ensure nothing breaks, so easy. Not just this if you have continuous integration server setup which runs your tests, you’d come to know immediately if and when someone else broke your code. Believe me ones who have used it, feel it is fantastic.
There are a variety of tools available for this over internet each with pros/cons but I’m going to share some info here about one which I liked very much and have been using for a while now. I’d also share why I preferred it over others.
Ok, no longer prolonging the suspense the tool I’m talking about is called Canoo WebTest (webtest.canoo.com) which is a free Open Source tool for automated testing of web applications in a very effective way. The primary reason why I liked it is that it is FAST; very fast … most of the test cases that I’ve written are executed in less than a minute and that too over remote applications deployed on servers on the other side of globe. Second reason for liking it so much is the ease of writing; very quickly you can build up your tests. Though they have released a WebTest recorder plug-in which when installed in Mozilla Firefox can record the script for you, but believe me the more you start writing there test cases, the less reliant you will become on the recorder. Third thing is these tests do not use a browser so that completely eliminated browser-specific issues which some tools are plagued with.
Now some things about WebTest which some people don’t like is you actually do not see the tests being executed i.e. loading of a browser window, automatic clicking on buttons and errors on the screen (if any). But that I feel that it is so by design …. Doing all this takes time and then browser issues too creep in, so I’m happy like this way only. I agree they can improve on reporting of errors but again the objective of this tool is to test and just to test, if you want to report issues manual intervention is needed.
At last I’ll just say go give it a try, I’m sure once past initial hiccups, you’ll start liking it the way I am.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Bhrigu Malhotra
First of all let me make you all aware that I’m a developer and what you are going to read further is a developer’s account, so it may sound to you like a layman tester. But what I’m going to share is something which has been very helpful to me to ‘functionally’ test the web application our team has been building and I thought this may help you as well. So even if you are a tester, try to think the way developer’s think for some time, I’m sure this would be useful to you too.
Before I go ahead, I think we all understand that Functional Testing is testing the functionality of our application which means you’d probably be going through a login using some credentials, clicking some links, verifying some outputs - in simplest terms. Now just give it a thought that if you can automate these i.e. invest some time for once and then while you are sipping a cup of coffee, someone is testing what you coded. Change your code 10 times and run your test 10 times to ensure nothing breaks, so easy. Not just this if you have continuous integration server setup which runs your tests, you’d come to know immediately if and when someone else broke your code. Believe me ones who have used it, feel it is fantastic.
There are a variety of tools available for this over internet each with pros/cons but I’m going to share some info here about one which I liked very much and have been using for a while now. I’d also share why I preferred it over others.
Ok, no longer prolonging the suspense the tool I’m talking about is called Canoo WebTest (webtest.canoo.com) which is a free Open Source tool for automated testing of web applications in a very effective way. The primary reason why I liked it is that it is FAST; very fast … most of the test cases that I’ve written are executed in less than a minute and that too over remote applications deployed on servers on the other side of globe. Second reason for liking it so much is the ease of writing; very quickly you can build up your tests. Though they have released a WebTest recorder plug-in which when installed in Mozilla Firefox can record the script for you, but believe me the more you start writing there test cases, the less reliant you will become on the recorder. Third thing is these tests do not use a browser so that completely eliminated browser-specific issues which some tools are plagued with.
Now some things about WebTest which some people don’t like is you actually do not see the tests being executed i.e. loading of a browser window, automatic clicking on buttons and errors on the screen (if any). But that I feel that it is so by design …. Doing all this takes time and then browser issues too creep in, so I’m happy like this way only. I agree they can improve on reporting of errors but again the objective of this tool is to test and just to test, if you want to report issues manual intervention is needed.
At last I’ll just say go give it a try, I’m sure once past initial hiccups, you’ll start liking it the way I am.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Script Maintenance
Script Maintenance
By Renu Bala
Script maintenance is a great challenge faced by automation testers. As the course of development proceeds, applications undergo changes, which cause automation test scripts to break. For example, Developers change underlying attributes (like object name) that the test script rely upon to identify the object. So testers need to rework on scripts.
Script maintenance at some level is a fact of automation but too much maintenance can be a drain on team’s time, resulting in decreasing value of automation. Automation testing tool that build scripts that are resistant to breaking are extremely valuable.
Testers must constantly update scripts to handle minor application changes but testers may make mistakes when they update scripts.
One solution to these changes is to update the object map so that all scripts can reference updated object map and identify objects.
Second solution to these changes is Script Assure Technology introduced by Rational Functional Tester. This technology makes test scripts more resilient to changes in applications. With script assure technology, RFT evaluates the closeness of objects that it finds and attempts to match something that is closest. If objects are close enough, test continues with no intervention from tester and will log a warning so that tester is made aware of a possible discrepancy. So more tests can execute with less intervention, even with significant changes being made to objects in application. In this way RFT automatically finds changed target objects in application without object remapping. Benefit of this technology is reduced maintenance and more reliable scripts. Additionally, this flexibility is completely under tester’s control. Tester can determine what level of closeness is sufficient enough for the project.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Renu Bala
Script maintenance is a great challenge faced by automation testers. As the course of development proceeds, applications undergo changes, which cause automation test scripts to break. For example, Developers change underlying attributes (like object name) that the test script rely upon to identify the object. So testers need to rework on scripts.
Script maintenance at some level is a fact of automation but too much maintenance can be a drain on team’s time, resulting in decreasing value of automation. Automation testing tool that build scripts that are resistant to breaking are extremely valuable.
Testers must constantly update scripts to handle minor application changes but testers may make mistakes when they update scripts.
One solution to these changes is to update the object map so that all scripts can reference updated object map and identify objects.
Second solution to these changes is Script Assure Technology introduced by Rational Functional Tester. This technology makes test scripts more resilient to changes in applications. With script assure technology, RFT evaluates the closeness of objects that it finds and attempts to match something that is closest. If objects are close enough, test continues with no intervention from tester and will log a warning so that tester is made aware of a possible discrepancy. So more tests can execute with less intervention, even with significant changes being made to objects in application. In this way RFT automatically finds changed target objects in application without object remapping. Benefit of this technology is reduced maintenance and more reliable scripts. Additionally, this flexibility is completely under tester’s control. Tester can determine what level of closeness is sufficient enough for the project.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
How to Access Command prompt from QTP
How to Access Command prompt from QTP
By Parul Wahi
We can even access Microsoft Windows command prompt also known as MS-DOS from QTP interface.cmd.exe is a 32-bit command prompt used in Windows NT, 2000 and XP and offers disk and file maintenance functions as well as network functions. It can be found under System32 folder.
To launch cmd.exe from QTP write :
SystemUtil.Run “cmd.exe”, “”, “c:\WINDOWS\system32”,”open”
Once DOS window launches, this window can be leant and added to object repository
To write on command prompt window use the following code:
Window( “object class:=ConsoleWindowClass”).Type “Ping crestechsoftware.com”
Window( “object class:=ConsoleWindowClass”).Type micReturn
Using WshShell object
The WshShell object gives your scripts the ability to work with Windows shell .Your scripts can use the WshShell object to perform a number of system administration tasks, including running programs, reading from and writing to the registry, and creating shortcuts.
Following are the list of few methods used with wcript object:
1)The Environment property helps in getting environment variables
2)The Exec method returns a WshScriptExec object, which provides status and error information about a script run with Exec along with access to the StdIn, StdOut, and StdErr channels. The Exec method allows the execution of command line applications only.
3)Pop Up Method Displays text in a pop-up message box.
4)RegRead Method helps in reading from registry
Example
The following example demonstrates the basics of the Exec method.
Dim WshShell, oExec
Set WshShell = CreateObject(”WScript.Shell”)
Set oExec = WshShell.Exec(”calc”)
Do While oExec.Status = 0
WScript.Sleep 100
Loop
WScript.Echo oExec.Status
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Parul Wahi
We can even access Microsoft Windows command prompt also known as MS-DOS from QTP interface.cmd.exe is a 32-bit command prompt used in Windows NT, 2000 and XP and offers disk and file maintenance functions as well as network functions. It can be found under System32 folder.
To launch cmd.exe from QTP write :
SystemUtil.Run “cmd.exe”, “”, “c:\WINDOWS\system32”,”open”
Once DOS window launches, this window can be leant and added to object repository
To write on command prompt window use the following code:
Window( “object class:=ConsoleWindowClass”).Type “Ping crestechsoftware.com”
Window( “object class:=ConsoleWindowClass”).Type micReturn
Using WshShell object
The WshShell object gives your scripts the ability to work with Windows shell .Your scripts can use the WshShell object to perform a number of system administration tasks, including running programs, reading from and writing to the registry, and creating shortcuts.
Following are the list of few methods used with wcript object:
1)The Environment property helps in getting environment variables
2)The Exec method returns a WshScriptExec object, which provides status and error information about a script run with Exec along with access to the StdIn, StdOut, and StdErr channels. The Exec method allows the execution of command line applications only.
3)Pop Up Method Displays text in a pop-up message box.
4)RegRead Method helps in reading from registry
Example
The following example demonstrates the basics of the Exec method.
Dim WshShell, oExec
Set WshShell = CreateObject(”WScript.Shell”)
Set oExec = WshShell.Exec(”calc”)
Do While oExec.Status = 0
WScript.Sleep 100
Loop
WScript.Echo oExec.Status
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
How to Execute QTP script from Command Prompt using Automation Object Model
How to Execute QTP script from Command Prompt using Automation Object Model
By Parul Wahi
In order to run QTP scripts on schedule, we can run them directly from command line.
In order to do so we can make use of QTP Automation Object Model which can help us in automating QuickTest operations. Using the objects, methods, and properties exposed by the QuickTest automation object model, we can write scripts that configure QuickTest options and run tests instead of performing these operations manually using the QuickTest interface.
In the following code we are trying to execute a QTP script called “Google_search” from command line. Let’s create a script in QTP and save it as Google_search.Write the following code in a vbs (VB Script) file as save it as demo.vbs:
Dim qtApp ‘ Declare the Application object variable
Dim qtTest ‘ Declare a Test object variable
Dim qtResultsOpt ‘Declare a Run Results Options object variable
Set qtApp = CreateObject(”QuickTest.Application”) ‘ Create the Application object
qtApp.Launch ‘ Start QuickTest
qtApp.Visible = True ‘ Make the QuickTest application visible
qtApp.Open “C:\Documents and Settings\pwahi\Desktop\Google search“, True ‘ Open the test in read-only mode
‘ set run settings for the test
Set qtTest = qtApp.Test
qtTest.Run’ Run the test
WScript.StdOut.Write “Status is:” & qtTest.LastRunResults.Status ‘ Check the results of the test run
qtTest.Close ‘ Close the test
Set qtTest = Nothing ‘ Release the Test object
Set qtApp = Nothing ‘ Release the Application object
Now in order to execute QTP script from command line we have to execute the above created vbs file from command prompt which will in turn launch QTP, open the script, run it and will display the result in command prompt only. Open command prompt and write following code:
C:\Documents and Settings\pwahi\Desktop>cscript //nologo demo.vbs
And press enter
This command will execute the demo.vbs file which in turn launch QTP, open the script Google search, execute it and will display the result in QTP result file. We can also see the results in command prompt as shown below.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Parul Wahi
In order to run QTP scripts on schedule, we can run them directly from command line.
In order to do so we can make use of QTP Automation Object Model which can help us in automating QuickTest operations. Using the objects, methods, and properties exposed by the QuickTest automation object model, we can write scripts that configure QuickTest options and run tests instead of performing these operations manually using the QuickTest interface.
In the following code we are trying to execute a QTP script called “Google_search” from command line. Let’s create a script in QTP and save it as Google_search.Write the following code in a vbs (VB Script) file as save it as demo.vbs:
Dim qtApp ‘ Declare the Application object variable
Dim qtTest ‘ Declare a Test object variable
Dim qtResultsOpt ‘Declare a Run Results Options object variable
Set qtApp = CreateObject(”QuickTest.Application”) ‘ Create the Application object
qtApp.Launch ‘ Start QuickTest
qtApp.Visible = True ‘ Make the QuickTest application visible
qtApp.Open “C:\Documents and Settings\pwahi\Desktop\Google search“, True ‘ Open the test in read-only mode
‘ set run settings for the test
Set qtTest = qtApp.Test
qtTest.Run’ Run the test
WScript.StdOut.Write “Status is:” & qtTest.LastRunResults.Status ‘ Check the results of the test run
qtTest.Close ‘ Close the test
Set qtTest = Nothing ‘ Release the Test object
Set qtApp = Nothing ‘ Release the Application object
Now in order to execute QTP script from command line we have to execute the above created vbs file from command prompt which will in turn launch QTP, open the script, run it and will display the result in command prompt only. Open command prompt and write following code:
C:\Documents and Settings\pwahi\Desktop>cscript //nologo demo.vbs
And press enter
This command will execute the demo.vbs file which in turn launch QTP, open the script Google search, execute it and will display the result in QTP result file. We can also see the results in command prompt as shown below.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Script Services
Script Services
By Renu Bala
Script Support Functions enables you to insert code into Functional Tester Script to perform variety of tasks. These tasks include:
• Calling a script from a Functional Test Script
• Inserting Log Messages into Functional Test Script
• Using timers with Functional Test Script
• Setting delays and sleep states for Functional Test Script Playback
• Inserting comments into Functional Test Script
The Script Support Functions dialog box has following tabs:
1. Call Script for Calling a script from a Functional Test Script
2. Log Entry for Inserting Log Messages into Functional Test Script
3. Timer for Using timers with Functional Test Script
4. Sleep for Setting delays and sleep states for Functional Test Script Playback
5. Comment for Inserting comments into Functional Test Script
To use script support commands Click on Insert Script Support Commands button on Recording Monitor Toolbar.
Call Script
While recording or editing a functional test script, you can insert a call to a previously recorded script. This lets you avoid repeatedly recording similar actions on the AUT by taking advantage of scripts that already exist.
CallScript inserts following code in the script at the cursor location:
callScript (“scriptname”)
Where scriptname is the name you selected in the script name field.
Log Entry
You can insert a log message into a functional test script and indicate whether it is a message, a warning or an error. During playback, RFT inserts this information into the log.
LogEntry inserts the following code into the script based on the option you selected (message, warning, error):
logInfo(“Message”)
logWarning(“Message”)
logError(“Message”)
Where Message is the text you entered
Timer
You can insert timers with different names into the same script to measure time it takes to perform a variety of separate tasks. You have to explicitly stop the timer to calculate the time taken by the set of events.
The code generated is:
timerStart(“name”)
timerStop(“name”)
Where name is the variable name you want to use for the timer.
Sleep
You can insert sleep command into Functional test script to delay the script for specified time.
The code generated is:
Sleep(seconds)
Where seconds is the time entered in seconds fields.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Renu Bala
Script Support Functions enables you to insert code into Functional Tester Script to perform variety of tasks. These tasks include:
• Calling a script from a Functional Test Script
• Inserting Log Messages into Functional Test Script
• Using timers with Functional Test Script
• Setting delays and sleep states for Functional Test Script Playback
• Inserting comments into Functional Test Script
The Script Support Functions dialog box has following tabs:
1. Call Script for Calling a script from a Functional Test Script
2. Log Entry for Inserting Log Messages into Functional Test Script
3. Timer for Using timers with Functional Test Script
4. Sleep for Setting delays and sleep states for Functional Test Script Playback
5. Comment for Inserting comments into Functional Test Script
To use script support commands Click on Insert Script Support Commands button on Recording Monitor Toolbar.
Call Script
While recording or editing a functional test script, you can insert a call to a previously recorded script. This lets you avoid repeatedly recording similar actions on the AUT by taking advantage of scripts that already exist.
CallScript inserts following code in the script at the cursor location:
callScript (“scriptname”)
Where scriptname is the name you selected in the script name field.
Log Entry
You can insert a log message into a functional test script and indicate whether it is a message, a warning or an error. During playback, RFT inserts this information into the log.
LogEntry inserts the following code into the script based on the option you selected (message, warning, error):
logInfo(“Message”)
logWarning(“Message”)
logError(“Message”)
Where Message is the text you entered
Timer
You can insert timers with different names into the same script to measure time it takes to perform a variety of separate tasks. You have to explicitly stop the timer to calculate the time taken by the set of events.
The code generated is:
timerStart(“name”)
timerStop(“name”)
Where name is the variable name you want to use for the timer.
Sleep
You can insert sleep command into Functional test script to delay the script for specified time.
The code generated is:
Sleep(seconds)
Where seconds is the time entered in seconds fields.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
SOA Testing Simplified (Series-III)
SOA Testing Simplified (Series-III)
By Pallavi Sharma
So far, we have undertaken the difficult voyage of web services, SOA-Architecture and have come out of it empowered with the knowledge of what this new buzz SOA is all about. In this series of blog we will delve deeper into SOA and understand how do, we go about testing SOA. We will also see what all tools both open source and commercial are available in the market to help us achieve it. We will also take each tool one by one and understand how to best utilize it to test SOA.
Let’s first understand what all issues needs to be considered when we test any web service: [Ref 1]
• Web Services are intrinsically distributed and are platform and language agnostic.
• Web Services can be chained with dependencies on other 3rd party Web Services that can change without notice.
• Web Services ownership is shared across various stakeholders.
• Web Services client developers typically only have access to interfaces (WSDLs) and lack access to code.
• High level of reuse of web services.
As we know web services are based upon loosely coupled architecture. They are platform and language independent which increases the complexity of testing them. A web service usually calls another web service which might be a third party service. Oftenly 3rd party web service changes without prior information resulting in your web service failure. Also, if you are using a 3rd party web service all you have access to is a WSDL document of the web service and no code is available. A 3rd party web service can be used by a large number of users raising performance and security concerns which needs to be taken care of also.
Keeping all this in mind we need to also judge a test tool which takes the following issues into consideration:
• No User Interface to easily play a test
• High level of reuse of the services
• Testing at the service and end-to-end levels
• Interoperability, conformance, security penetration…
• Support of SOA standards and specific implementations WSDL, SOAP, UDDI, HTTP, WS-Security, …
A test tool to test any web service should support the various SOA standards like WSDL, SOAP, XML. Usually there is no UI available to test a web service. So the test tool should provide a user friendly interface to test the GUI less service. It should also assist in testing the interoperability, conformance issues which do arises in web service testing.
The commercial tools which are available in the market to test web services are:
1. IBM : Rational SOA Tester
2. HP: LR and QTP
3. Crosschecknet
4. Parasoft
The open source tools for SOA testing are as follows: [Ref 2]
1. Eviware SoapUI 1.6
2. PushToTest TestMaker
3. WebInject
In the coming series we will take each tool one by one and understand how do, we test the web service using it.
References:
1. http://www.crosschecknet.com/soa_testing_black_white_gray_box.php
2. http://www.infoworld.com/article/07/05/11/19TCwebservicetest_1.html
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Pallavi Sharma
So far, we have undertaken the difficult voyage of web services, SOA-Architecture and have come out of it empowered with the knowledge of what this new buzz SOA is all about. In this series of blog we will delve deeper into SOA and understand how do, we go about testing SOA. We will also see what all tools both open source and commercial are available in the market to help us achieve it. We will also take each tool one by one and understand how to best utilize it to test SOA.
Let’s first understand what all issues needs to be considered when we test any web service: [Ref 1]
• Web Services are intrinsically distributed and are platform and language agnostic.
• Web Services can be chained with dependencies on other 3rd party Web Services that can change without notice.
• Web Services ownership is shared across various stakeholders.
• Web Services client developers typically only have access to interfaces (WSDLs) and lack access to code.
• High level of reuse of web services.
As we know web services are based upon loosely coupled architecture. They are platform and language independent which increases the complexity of testing them. A web service usually calls another web service which might be a third party service. Oftenly 3rd party web service changes without prior information resulting in your web service failure. Also, if you are using a 3rd party web service all you have access to is a WSDL document of the web service and no code is available. A 3rd party web service can be used by a large number of users raising performance and security concerns which needs to be taken care of also.
Keeping all this in mind we need to also judge a test tool which takes the following issues into consideration:
• No User Interface to easily play a test
• High level of reuse of the services
• Testing at the service and end-to-end levels
• Interoperability, conformance, security penetration…
• Support of SOA standards and specific implementations WSDL, SOAP, UDDI, HTTP, WS-Security, …
A test tool to test any web service should support the various SOA standards like WSDL, SOAP, XML. Usually there is no UI available to test a web service. So the test tool should provide a user friendly interface to test the GUI less service. It should also assist in testing the interoperability, conformance issues which do arises in web service testing.
The commercial tools which are available in the market to test web services are:
1. IBM : Rational SOA Tester
2. HP: LR and QTP
3. Crosschecknet
4. Parasoft
The open source tools for SOA testing are as follows: [Ref 2]
1. Eviware SoapUI 1.6
2. PushToTest TestMaker
3. WebInject
In the coming series we will take each tool one by one and understand how do, we test the web service using it.
References:
1. http://www.crosschecknet.com/soa_testing_black_white_gray_box.php
2. http://www.infoworld.com/article/07/05/11/19TCwebservicetest_1.html
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Performance Testing: Handling maximum database user connection
Performance Testing: Handling maximum database user connection
By Pankaj Goel
While working on performance testing assignments, many a times, I came across situation where following error was reported while applying load on the system
“The Maximum Connection Limit Has Been Reached”
On further analysis, I found that the error was being returned by the database (MS SQL Server in this case). Here is in this post, I have tried to detail what all to do when you get this error
So for MS SQL Server (2000 or 2005), if you have identified that the number of user connections is high, you can control the number of user connections by doing one of the following:
• Enable Microsoft SQL Server to automatically add user connections as needed. Do this through the Microsoft SQL Server SQL Server Properties window by setting the user connections configuration option to 0. If you specify a value other than 0, Microsoft SQL Server allocates memory for those connections at startup, which burns up portions of the memory pool.
• Specify a maximum number of user connections. Set this amount to the expected maximum number of concurrent users. Microsoft SQL Server rejects new login requests after reaching the maximum number of user connections when this value is set. After changing the maximum number of user connections, you must restart Microsoft SQL Server.
To re-configure the maximum number of user connection, In SQL Server 2000, you can use the sp_configure stored procedure. When you install SQL Server, the default value for user connections is 0 (32767 concurrent connections).
a) Start SQL server from command prompt
sqlservr.exe -c -f
b) Issue the following command
sp_configure ‘user connections’, 0
go
reconfigure with override
This code sets user connections back to the default setting.
c) Restart SQL server normally
For further details about the optimum SQL server settings, resources @ the following link contain some good information
http://support.microsoft.com/kb/319942/EN-US/
http://support.microsoft.com/kb/224587/
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Pankaj Goel
While working on performance testing assignments, many a times, I came across situation where following error was reported while applying load on the system
“The Maximum Connection Limit Has Been Reached”
On further analysis, I found that the error was being returned by the database (MS SQL Server in this case). Here is in this post, I have tried to detail what all to do when you get this error
So for MS SQL Server (2000 or 2005), if you have identified that the number of user connections is high, you can control the number of user connections by doing one of the following:
• Enable Microsoft SQL Server to automatically add user connections as needed. Do this through the Microsoft SQL Server SQL Server Properties window by setting the user connections configuration option to 0. If you specify a value other than 0, Microsoft SQL Server allocates memory for those connections at startup, which burns up portions of the memory pool.
• Specify a maximum number of user connections. Set this amount to the expected maximum number of concurrent users. Microsoft SQL Server rejects new login requests after reaching the maximum number of user connections when this value is set. After changing the maximum number of user connections, you must restart Microsoft SQL Server.
To re-configure the maximum number of user connection, In SQL Server 2000, you can use the sp_configure stored procedure. When you install SQL Server, the default value for user connections is 0 (32767 concurrent connections).
a) Start SQL server from command prompt
sqlservr.exe -c -f
b) Issue the following command
sp_configure ‘user connections’, 0
go
reconfigure with override
This code sets user connections back to the default setting.
c) Restart SQL server normally
For further details about the optimum SQL server settings, resources @ the following link contain some good information
http://support.microsoft.com/kb/319942/EN-US/
http://support.microsoft.com/kb/224587/
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Descriptive Programming in QTP
Descriptive Programming in QTP
By Parul Wahi
What is Descriptive Programming?
QTP can perform some action on objects at run time only when it is able to uniquely identify the object. In order to identify the object at run time (play back), QTP learns some physical properties of the object at the time of recording and stores them in object Repository (OR). When QTP runs the script, it compares these properties and values to the actual objects appearing in the application, and performs the action on the object if it finds it.
Thus, it is not possible for QTP to perform action on objects during run time if the objects are not there in OR. But descriptive programming provides a way to perform action on objects which are not in Object repository. We can instruct QTP to perform methods on the objects that are not there in object repository with the help of programmatic description or descriptive programming.
When and Why to use Descriptive programming?
When using Descriptive Programming (DP), we’re bypassing the native object repository (OR) mechanism which may have many advantages. Let’s examine the situations in which the OR’s advantages are outweighed by the DP.
Suppose we are testing the site that displays the list of users whose details matches with the search criteria that is entered in search text field. With the names, the application also displays checkboxes against each name. Now, we want to test the scenario where application sends mail to all the users whose names are displayed in the list. But we are not sure how many check boxes will be displayed on the page as the search criteria can differ . In this situation, you can use a programmatic description to instruct QuickTest to perform a Set “ON” method for all objects that fit the description: HTML TAG = input, TYPE = check box
The other usage of DP can be as follows:
1) Programmatic descriptions can be used to perform the same operation on several objects with certain identical properties, or to perform an operation on an object whose properties match a description that is determined dynamically during the run session.
2) One place where DP can be of significant importance is when you are creating functions in an external file. You can use these function in various actions directly, eliminating the need of adding object(s) in object repository for each action [If you are using local object repository]
3) The objects in the application are dynamic in nature and need special handling to identify the object. The best example would be of clicking a link which changes according to the user of the application, Ex. “Logout”.
4) When object repository is getting huge due to the no. of objects being added. If the size of Object repository increases too much then it decreases the performance of QTP while recognizing a object.
5) When you don’t want to use object repository at all. Consider the following scenario which would help understand why not Object repository
Scenario 1: Suppose we have a web application that has not been developed yet.Now QTP for recording the script and adding the objects to repository needs the application to be up, that would mean waiting for the application to be deployed before we can start of with making QTP scripts. But if we know the descriptions of the objects that will be created then we can still start off with the script writing for testing
Scenario 2: Suppose an application has 3 navigation buttons on each and every page. Let the buttons be “Cancel”, “Back” and “Next”. Now recording action on these buttons would add 3 objects per page in the repository. For a 10 page flow this would mean 30 objects which could have been represented just by using 3 objects. So instead of adding these 30 objects to the repository we can just write 3 descriptions for the object and use it on any page.
6) When you want to take action on similar type of object i.e. suppose we have 20 textboxes on the page and there names are in the form txt_1, txt_2, txt_3 and so on. Now adding all 20 the Object repository would not be a good programming approach.
How to use Descriptive programming?
There are two ways in which descriptive programming can be used
• Static. You list the set of properties and values that describe the object directly in a VBScript statement.
• Dynamic. You add a collection of properties and values to a Description object, and then enter the Description object name in the statement.
Static method
In Static method , we can write down the physical description of the object in the script itself rather than using it’s logical name. The syntax for this is :
TestObject(”PropertyName1:=PropertyValue1?, “PropertyName2:= PropertyValue2?)
Where, TestObject is . The test object class. Eg WinButton , WebEdit , WinCheckBox etc
PropertyName:=PropertyValue. The test object property and the value identification string. Each property:=value pair should be separated by commas and quotation marks
Eg.1 DP code for login into the FLIGHT RESERVATION (sample Application of QTP) is :
Dialog(”text:=Login”).WinEdit(”nativeclass:=Edit”,”attachedtext:=Agent Name:”). Set “fgfdgfdgf”
Dialog(”text:=Login”).WinEdit(”nativeclass:=Edit”,”attachedtext:=Password:”).SetSecure “48a1881a08961df276749334f4511d5a7d35e922?
Dialog(”text:=Login”).WinButton(”text:=OK”,”nativeclass:=Button”).Click
Window(”title:=Flight Reservation”).Close
Dynamic Method
QTP provides another method which provides more efficiency, power and flexibility known as Dynamic method.
Under Dynamic method you can use the Description object to return a Properties collection object containing a set of Property objects. A Property object consists of a property name and value. You can then specify the returned Properties collection in place of an object name in a statement.
Eg2. The first example mentioned above for Flight Reservation application can be written as follows using Dynamic method:
Set desc=description.Create()
desc(”text”).value=”Login”
desc(”Class Name”).value=”Dialog”
Set agent=description.Create()
agent(”nativeclass”).value=”Edit”
agent(”attachedtext”).value=”Agent Name:”
Set password=description.Create()
password(”nativeclass”).value=”Edit”
password(”attachedtext”).value=”Password:”
Set button=description.Create()
button(”nativeclass”).value=”Button”
button(”text”).value=”OK”
Dialog(desc).WinEdit(agent). Set “fgfdgfdgf”
Dialog(desc).WinEdit(password).SetSecure “48a1881a08961df276749334f4511d5a7d35e922?
Dialog(desc).WinButton(button).Click
Window(”title:=Flight Reservation”).Close
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Parul Wahi
What is Descriptive Programming?
QTP can perform some action on objects at run time only when it is able to uniquely identify the object. In order to identify the object at run time (play back), QTP learns some physical properties of the object at the time of recording and stores them in object Repository (OR). When QTP runs the script, it compares these properties and values to the actual objects appearing in the application, and performs the action on the object if it finds it.
Thus, it is not possible for QTP to perform action on objects during run time if the objects are not there in OR. But descriptive programming provides a way to perform action on objects which are not in Object repository. We can instruct QTP to perform methods on the objects that are not there in object repository with the help of programmatic description or descriptive programming.
When and Why to use Descriptive programming?
When using Descriptive Programming (DP), we’re bypassing the native object repository (OR) mechanism which may have many advantages. Let’s examine the situations in which the OR’s advantages are outweighed by the DP.
Suppose we are testing the site that displays the list of users whose details matches with the search criteria that is entered in search text field. With the names, the application also displays checkboxes against each name. Now, we want to test the scenario where application sends mail to all the users whose names are displayed in the list. But we are not sure how many check boxes will be displayed on the page as the search criteria can differ . In this situation, you can use a programmatic description to instruct QuickTest to perform a Set “ON” method for all objects that fit the description: HTML TAG = input, TYPE = check box
The other usage of DP can be as follows:
1) Programmatic descriptions can be used to perform the same operation on several objects with certain identical properties, or to perform an operation on an object whose properties match a description that is determined dynamically during the run session.
2) One place where DP can be of significant importance is when you are creating functions in an external file. You can use these function in various actions directly, eliminating the need of adding object(s) in object repository for each action [If you are using local object repository]
3) The objects in the application are dynamic in nature and need special handling to identify the object. The best example would be of clicking a link which changes according to the user of the application, Ex. “Logout
4) When object repository is getting huge due to the no. of objects being added. If the size of Object repository increases too much then it decreases the performance of QTP while recognizing a object.
5) When you don’t want to use object repository at all. Consider the following scenario which would help understand why not Object repository
Scenario 1: Suppose we have a web application that has not been developed yet.Now QTP for recording the script and adding the objects to repository needs the application to be up, that would mean waiting for the application to be deployed before we can start of with making QTP scripts. But if we know the descriptions of the objects that will be created then we can still start off with the script writing for testing
Scenario 2: Suppose an application has 3 navigation buttons on each and every page. Let the buttons be “Cancel”, “Back” and “Next”. Now recording action on these buttons would add 3 objects per page in the repository. For a 10 page flow this would mean 30 objects which could have been represented just by using 3 objects. So instead of adding these 30 objects to the repository we can just write 3 descriptions for the object and use it on any page.
6) When you want to take action on similar type of object i.e. suppose we have 20 textboxes on the page and there names are in the form txt_1, txt_2, txt_3 and so on. Now adding all 20 the Object repository would not be a good programming approach.
How to use Descriptive programming?
There are two ways in which descriptive programming can be used
• Static. You list the set of properties and values that describe the object directly in a VBScript statement.
• Dynamic. You add a collection of properties and values to a Description object, and then enter the Description object name in the statement.
Static method
In Static method , we can write down the physical description of the object in the script itself rather than using it’s logical name. The syntax for this is :
TestObject(”PropertyName1:=PropertyValue1?, “PropertyName2:= PropertyValue2?)
Where, TestObject is . The test object class. Eg WinButton , WebEdit , WinCheckBox etc
PropertyName:=PropertyValue. The test object property and the value identification string. Each property:=value pair should be separated by commas and quotation marks
Eg.1 DP code for login into the FLIGHT RESERVATION (sample Application of QTP) is :
Dialog(”text:=Login”).WinEdit(”nativeclass:=Edit”,”attachedtext:=Agent Name:”). Set “fgfdgfdgf”
Dialog(”text:=Login”).WinEdit(”nativeclass:=Edit”,”attachedtext:=Password:”).SetSecure “48a1881a08961df276749334f4511d5a7d35e922?
Dialog(”text:=Login”).WinButton(”text:=OK”,”nativeclass:=Button”).Click
Window(”title:=Flight Reservation”).Close
Dynamic Method
QTP provides another method which provides more efficiency, power and flexibility known as Dynamic method.
Under Dynamic method you can use the Description object to return a Properties collection object containing a set of Property objects. A Property object consists of a property name and value. You can then specify the returned Properties collection in place of an object name in a statement.
Eg2. The first example mentioned above for Flight Reservation application can be written as follows using Dynamic method:
Set desc=description.Create()
desc(”text”).value=”Login”
desc(”Class Name”).value=”Dialog”
Set agent=description.Create()
agent(”nativeclass”).value=”Edit”
agent(”attachedtext”).value=”Agent Name:”
Set password=description.Create()
password(”nativeclass”).value=”Edit”
password(”attachedtext”).value=”Password:”
Set button=description.Create()
button(”nativeclass”).value=”Button”
button(”text”).value=”OK”
Dialog(desc).WinEdit(agent). Set “fgfdgfdgf”
Dialog(desc).WinEdit(password).SetSecure “48a1881a08961df276749334f4511d5a7d35e922?
Dialog(desc).WinButton(button).Click
Window(”title:=Flight Reservation”).Close
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
SOA Testing Simplified (Series-IV)
SOA Testing Simplified (Series-IV)
By Pallavi Sharma
In the last series we saw what are the various challenges which a tool should overcome to test a SOA based application. We saw a list of commercial and open source tools which can assist us in testing our web services.
From this series we will take each tool one by one and understand what all it has to offer us. The first solution to web service testing we will consider is the one provided by Rational. Rational offers the following solutions:
a. Rational Tester for SOA Quality
b. Rational Performance Tester Extension for SOA Quality.
Following are the list of features which they offer:
• Both built on Rational Performance Tester technology
• Support for Web Services standards UDDI, WSDL, SOAP, HTTP, HTTPS, WS-Security
• Integrated with Rational Test Management tools (Test Manager with ClearQuest)
• Monitoring tools (Tivoli) can be easily integrated with it.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Pallavi Sharma
In the last series we saw what are the various challenges which a tool should overcome to test a SOA based application. We saw a list of commercial and open source tools which can assist us in testing our web services.
From this series we will take each tool one by one and understand what all it has to offer us. The first solution to web service testing we will consider is the one provided by Rational. Rational offers the following solutions:
a. Rational Tester for SOA Quality
b. Rational Performance Tester Extension for SOA Quality.
Following are the list of features which they offer:
• Both built on Rational Performance Tester technology
• Support for Web Services standards UDDI, WSDL, SOAP, HTTP, HTTPS, WS-Security
• Integrated with Rational Test Management tools (Test Manager with ClearQuest)
• Monitoring tools (Tivoli) can be easily integrated with it.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
SOA Testing Simplified (Series-V)
SOA Testing Simplified (Series-V)
By Pallavi Sharma
In this blog post we will understand how we use Rational SOA Tester tool to test our web services.
Pre Requisites:
1. Rational Performance Tester to be installed on the system.
2. Rational SOA Tester plug-in to be installed on it.
3. The WSDL files of the web services you wish to test.
Once you have all these inputs in place you can start testing your web service right away. First of all you will create a Performance Test Project in RPT. We create a performance test project as RPT uses the same framework to test web service as it uses for performance testing. Once we are done with that we need to import our WSDL file from the file system to the project folder.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Pallavi Sharma
In this blog post we will understand how we use Rational SOA Tester tool to test our web services.
Pre Requisites:
1. Rational Performance Tester to be installed on the system.
2. Rational SOA Tester plug-in to be installed on it.
3. The WSDL files of the web services you wish to test.
Once you have all these inputs in place you can start testing your web service right away. First of all you will create a Performance Test Project in RPT. We create a performance test project as RPT uses the same framework to test web service as it uses for performance testing. Once we are done with that we need to import our WSDL file from the file system to the project folder.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Monday, May 25, 2009
SOA Testing Simplified (Series-II)
SOA Testing Simplified (Series-II)
By Pallavi Sharma
In the last article ‘Series-I’ we got familiar with SOA architecture, and its some components. We saw how a web service ‘wsdl’ file looks like and learnt how we decipher the complex information present in the file, so that we understand the web service better. In this series we will dig deeper into SOA architecture and try to figure out how exactly the various components of SOA architecture communicate with each other to solve the complex business need.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Pallavi Sharma
In the last article ‘Series-I’ we got familiar with SOA architecture, and its some components. We saw how a web service ‘wsdl’ file looks like and learnt how we decipher the complex information present in the file, so that we understand the web service better. In this series we will dig deeper into SOA architecture and try to figure out how exactly the various components of SOA architecture communicate with each other to solve the complex business need.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Sending Mail from QTP using OutLook
Sending Mail from QTP using OutLook
By Navneesh Garg
As a generic Automation requirement most of the projects look at automatic emails being sent after QTP script executes or ends in a failure. Generally, outlook is configured on the systems on whissing Outlook from QTP.
‘*******************************************************************************
‘ Function: Outlook_SendEmail
‘
‘ Sends an email using Outlook.
‘
‘ Input Parameters:
‘
‘ strTo - The email address or Outlook contact to whom the email should be sent.
‘ strSubject - The email’s subject.
‘ strBody - The email’s body (this may of course include newline characters).
‘
‘ Output Parameters:
‘
‘ None.
‘
‘ Returns:
‘
‘ Not applicable. This is a sub, not a function.
‘
Sub Outlook_SendEmail(strTo, strSubject, strBody)
‘TODO: maybe add support for CC, BCC, etc?
‘Create an Outlook object
Dim Outlook ‘As New Outlook.Application
Set Outlook = CreateObject(”Outlook.Application”)
‘Create a new message
Dim Message ‘As Outlook.MailItem
Set Message = Outlook.CreateItem(0)
With Message
‘You can display the message To debug And see state
‘.Display
.Subject = Subject
.Body = TextBody
‘Set destination email address
.Recipients.Add (strTo)
‘Set sender address If specified.
‘Const olOriginator = 0
‘If Len(aFrom) > 0 Then .Recipients.Add(aFrom).Type = olOriginator
‘Send the message
.Send
End With
End Sub
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Navneesh Garg
As a generic Automation requirement most of the projects look at automatic emails being sent after QTP script executes or ends in a failure. Generally, outlook is configured on the systems on whissing Outlook from QTP.
‘*******************************************************************************
‘ Function: Outlook_SendEmail
‘
‘ Sends an email using Outlook.
‘
‘ Input Parameters:
‘
‘ strTo - The email address or Outlook contact to whom the email should be sent.
‘ strSubject - The email’s subject.
‘ strBody - The email’s body (this may of course include newline characters).
‘
‘ Output Parameters:
‘
‘ None.
‘
‘ Returns:
‘
‘ Not applicable. This is a sub, not a function.
‘
Sub Outlook_SendEmail(strTo, strSubject, strBody)
‘TODO: maybe add support for CC, BCC, etc?
‘Create an Outlook object
Dim Outlook ‘As New Outlook.Application
Set Outlook = CreateObject(”Outlook.Application”)
‘Create a new message
Dim Message ‘As Outlook.MailItem
Set Message = Outlook.CreateItem(0)
With Message
‘You can display the message To debug And see state
‘.Display
.Subject = Subject
.Body = TextBody
‘Set destination email address
.Recipients.Add (strTo)
‘Set sender address If specified.
‘Const olOriginator = 0
‘If Len(aFrom) > 0 Then .Recipients.Add(aFrom).Type = olOriginator
‘Send the message
.Send
End With
End Sub
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Application Security: OWASP top 10
Application Security: OWASP top 10
By: Avinash K Tiwari
The Open Web Application Security Project (OWASP) is a worldwide free and open community focused on improving the security of application software. The OWASP community includes corporations, educational organizations, and individuals from around the world. This community works to create freely-available articles, methodologies, documentation, tools, and technologies. Purpose of OWASP is working for finding and fighting the causes of insecure software.
Official web site: www.owasp.org
OWASP’s most successful projects include the book-length OWASP Guide and the widely adopted OWASP Top 10 awareness document.
In this post, I am going to focus on “What OWASP Top Ten” is all about.
The Open Web Application Security Project (OWASP) Top Ten Project provides a minimum standard for web application security. It lists the top ten most critical web application security vulnerabilities, representing a broad concensus. Project members include a variety of security experts from around the world who have shared their expertise to produce this list. You should consider adopting security standards and begin assessing that your web applications do not contain these security flaws. Addressing the OWASP Top Ten is an effective first step towards changing your software development culture into one that produces secure code for your web applications.
Following are the OWASP top 10 vulnerabilities with a brief description
Cross-site scripting (XSS) flaws:
Hackers can impersonate legitimate users, and control their accounts.
Impact : Identity Theft, Sensitive Information Leakage, …
Injection flaws:
Hackers can access backend database information, alter it or steal it.
Impact: Attacker can manipulate queries to the DB / LDAP / Other system
Malicious File Execution
Execute shell commands on server, up to full control
Impact: Site modified to transfer all interactions to the hacker.
Broken authentication and session management:
Session tokens not guarded or invalidated properly
Impact : Hacker can “force” session token on victim; session tokens can be stolen after logout
Cross-Site Request Forgery
Attacker can invoke “blind” actions on web applications, impersonating as a trusted user
Impact : Blind requests to bank account transfer money to hacker
Information Leakage and Improper Error Handling
Attackers can gain detailed system information
Malicious system inFORMATION may assist in developing further attacks
Insecure storage
Weak encryption techniques may lead to broken encryption
Impact: Confidential information (SSN, Credit Cards) can be decrypted by malicious users
Insecure Communication:
Sensitive info sent unencrypted over insecure channel
Impact: Unencrypted credentials “sniffed” and used by hacker to impersonate user
Failure to Restrict URL Access
Hacker can forcefully browse and access a page past the login page
Impact : Hacker can access unauthorized resources
Insecure Direct Object Reference
Web application returns contents of sensitive file (instead of harmless one)
Impact: Attacker can access sensitive files and resources
We will be discussing each one the vulnaribilities in detail in the coming posts.
Moreover, more information about the following critical web application security vulnerabilities is on the OWASP website: http://www.owasp.org/index.php/OWASP_Top_Ten_Project
(Copyrighted by CresTech Software Systems Pvt. Ltd.)
Your Testing Partner
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By: Avinash K Tiwari
The Open Web Application Security Project (OWASP) is a worldwide free and open community focused on improving the security of application software. The OWASP community includes corporations, educational organizations, and individuals from around the world. This community works to create freely-available articles, methodologies, documentation, tools, and technologies. Purpose of OWASP is working for finding and fighting the causes of insecure software.
Official web site: www.owasp.org
OWASP’s most successful projects include the book-length OWASP Guide and the widely adopted OWASP Top 10 awareness document.
In this post, I am going to focus on “What OWASP Top Ten” is all about.
The Open Web Application Security Project (OWASP) Top Ten Project provides a minimum standard for web application security. It lists the top ten most critical web application security vulnerabilities, representing a broad concensus. Project members include a variety of security experts from around the world who have shared their expertise to produce this list. You should consider adopting security standards and begin assessing that your web applications do not contain these security flaws. Addressing the OWASP Top Ten is an effective first step towards changing your software development culture into one that produces secure code for your web applications.
Following are the OWASP top 10 vulnerabilities with a brief description
Cross-site scripting (XSS) flaws:
Hackers can impersonate legitimate users, and control their accounts.
Impact : Identity Theft, Sensitive Information Leakage, …
Injection flaws:
Hackers can access backend database information, alter it or steal it.
Impact: Attacker can manipulate queries to the DB / LDAP / Other system
Malicious File Execution
Execute shell commands on server, up to full control
Impact: Site modified to transfer all interactions to the hacker.
Broken authentication and session management:
Session tokens not guarded or invalidated properly
Impact : Hacker can “force” session token on victim; session tokens can be stolen after logout
Cross-Site Request Forgery
Attacker can invoke “blind” actions on web applications, impersonating as a trusted user
Impact : Blind requests to bank account transfer money to hacker
Information Leakage and Improper Error Handling
Attackers can gain detailed system information
Malicious system inFORMATION may assist in developing further attacks
Insecure storage
Weak encryption techniques may lead to broken encryption
Impact: Confidential information (SSN, Credit Cards) can be decrypted by malicious users
Insecure Communication:
Sensitive info sent unencrypted over insecure channel
Impact: Unencrypted credentials “sniffed” and used by hacker to impersonate user
Failure to Restrict URL Access
Hacker can forcefully browse and access a page past the login page
Impact : Hacker can access unauthorized resources
Insecure Direct Object Reference
Web application returns contents of sensitive file (instead of harmless one)
Impact: Attacker can access sensitive files and resources
We will be discussing each one the vulnaribilities in detail in the coming posts.
Moreover, more information about the following critical web application security vulnerabilities is on the OWASP website: http://www.owasp.org/index.php/OWASP_Top_Ten_Project
(Copyrighted by CresTech Software Systems Pvt. Ltd.)
Your Testing Partner
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Sample code to click on dynamic link using Browser DOM
Sample code to click on dynamic link using Browser DOM
By Navneesh Garg
Let us try to understand a practical scenario. You have webpage. On this web-page the total number of links changes dynamically. Also the links on this webpage are not static links and are created dynamically based on inputs on the previous page. User needs to click on a link with a particular title on this page.
There can be multiple solutions to this problem. Please find below the solution which uses Document Object Model of Browser to browse through the links and click on the specified link.
Solution:
1. User uses DOM of Browser to get reference to the webpage
2. User get reference to collection of links on the webpage
3. Use for Loop to get to each link and based on the required property match click on the required link
Sample Code
************************************************************************
Function (Expected_Title)
Set obj = Browser(”Simple Validation”).Page(”Simple Validation”).Object.body.document
set Linkcollections= obj.Links
msgbox “No. of Links is” & Linkcollections.Length
dim counter
counter=0
For each Element in Linkcollections
StrTitle = Element.GetROProperty (“title”)
If StrTitle = Expected_Title then
Element.Click
Exit For
Else
Counter = Counter + 1
End If
Next
End Function
************************************************************************
Another Possible solution could be to use Description Object to get reference to all objects in the page.
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Navneesh Garg
Let us try to understand a practical scenario. You have webpage. On this web-page the total number of links changes dynamically. Also the links on this webpage are not static links and are created dynamically based on inputs on the previous page. User needs to click on a link with a particular title on this page.
There can be multiple solutions to this problem. Please find below the solution which uses Document Object Model of Browser to browse through the links and click on the specified link.
Solution:
1. User uses DOM of Browser to get reference to the webpage
2. User get reference to collection of links on the webpage
3. Use for Loop to get to each link and based on the required property match click on the required link
Sample Code
************************************************************************
Function (Expected_Title)
Set obj = Browser(”Simple Validation”).Page(”Simple Validation”).Object.body.document
set Linkcollections= obj.Links
msgbox “No. of Links is” & Linkcollections.Length
dim counter
counter=0
For each Element in Linkcollections
StrTitle = Element.GetROProperty (“title”)
If StrTitle = Expected_Title then
Element.Click
Exit For
Else
Counter = Counter + 1
End If
Next
End Function
************************************************************************
Another Possible solution could be to use Description Object to get reference to all objects in the page.
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
HTTP (’A Beginner’s Blog to Performance testing’ continued…..)
HTTP (’A Beginner’s Blog to Performance testing’ continued…..)
By Happy Himanshu Gupta
As I read more on Performance testing, I thought of going on a practical application to test my college website. The search results on Google presented the name of an open-source performance testing tool named OpenSTA. It was not difficult to get familiar with the interface of the tool and I began with what is called as script recording of the application.
After the recording was complete, I opened the script to see how it actually looks like. You know guys, something more horrible than any general software code appeared on the screen, and I had never read such kind of a text before in any of my course books. It was then I realized that something more important needs to be learned, before I play around with performance measuring tools. The concept I missed out reading was HTTP, the global language of web.
Most of us open our mailbox daily and go through a number of other websites. But do we ever think, what helps us in accessing our mails and the unlimited information around the globe. Well, I never thought of it, before this question actually struck me a few days ago. Is my dumb machine intelligent enough to obey my orders every time I ask it to do so? Well friends lets now understand the way the computer listens to our request and returns back the response.
HTTP which stands for “Hypertext Transfer Protocol” is a common language which lays the path of communication for all the web clients, servers and the related web applications. HTTP Clients and HTTP Servers together make the basic component of the World Wide Web (www).
The browser that we use every day is the one that plays the role of a web client. When we wish to access a page, say, www.google.com, the browser sends an HTTP request to the server (web server) www.google.com sitting at the backend. On accepting the request, the server, makes a search for the desired object/page. On a successful search it returns back the object to the waiting browser in the form of an HTTP response.
The content that transfers over the web is composed of various Resources. The web content can be as simple as a static file. These files are composed of images, html content, video contents, movies, word files etc. The web content also has the dynamic resources which are generated on demand.
Now, the question that comes to my mind is how to locate these resources on the World Wide Web. The Uniform Resource Locator (URL) is the most common form for resource identification on www. The descriptive format of the URLs, tell us the way to fetch a resource from some particular location on the server.
Now let’s take a look at the concepts of HTTP request and response messages. The messages which are sent from web clients to web servers are called request messages. The response which the web client receives from the server is called response message. The structure of response and request messages is almost similar. HTTP messages are composed of three parts primarily: Start Line, Header Fields and Body.
Start Line:
All HTTP messages begin with a Start Line. The Start line for the request messages contains information which asks the server to do something to the resource. It contains a method which describes the function that the server needs to perform on the resource described by the URL. Similarly in a response message, the start line conveys back the status information and any resulting data to the client, thus completing the operation.
Header Fields:
HTTP headers just add more info to the request and response messages, appending after the start line. They are basically the name-value pairs that give additional info about the message being transferred. A simple HTTP header has the following syntax: a name, followed by a colon (:), followed with whitespace (optional), followed by the field value, followed by a CRLF.
Body:
The HTTP messages were actually designed to transfer this part of the message, which carry varied kinds of digital data. Images, videos, html documents, software applications, e-business applications, e-mail applications and so on, all form a part of the arbitrary binary data contained in the HTTP body. Of course, the body can also contain text.
Friends, I would recommend you all to read more on HTTP, and explore the terms better. I personally find it interesting and a rich source to understand the areas of World Wide Web which are difficult to comprehend. HTTP also forms the core for performance testing of any web application.
I will continue with a few left over headings covered under HTTP, in my next blog. Till then, happy reading… :)
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Happy Himanshu Gupta
As I read more on Performance testing, I thought of going on a practical application to test my college website. The search results on Google presented the name of an open-source performance testing tool named OpenSTA. It was not difficult to get familiar with the interface of the tool and I began with what is called as script recording of the application.
After the recording was complete, I opened the script to see how it actually looks like. You know guys, something more horrible than any general software code appeared on the screen, and I had never read such kind of a text before in any of my course books. It was then I realized that something more important needs to be learned, before I play around with performance measuring tools. The concept I missed out reading was HTTP, the global language of web.
Most of us open our mailbox daily and go through a number of other websites. But do we ever think, what helps us in accessing our mails and the unlimited information around the globe. Well, I never thought of it, before this question actually struck me a few days ago. Is my dumb machine intelligent enough to obey my orders every time I ask it to do so? Well friends lets now understand the way the computer listens to our request and returns back the response.
HTTP which stands for “Hypertext Transfer Protocol” is a common language which lays the path of communication for all the web clients, servers and the related web applications. HTTP Clients and HTTP Servers together make the basic component of the World Wide Web (www).
The browser that we use every day is the one that plays the role of a web client. When we wish to access a page, say, www.google.com, the browser sends an HTTP request to the server (web server) www.google.com sitting at the backend. On accepting the request, the server, makes a search for the desired object/page. On a successful search it returns back the object to the waiting browser in the form of an HTTP response.
The content that transfers over the web is composed of various Resources. The web content can be as simple as a static file. These files are composed of images, html content, video contents, movies, word files etc. The web content also has the dynamic resources which are generated on demand.
Now, the question that comes to my mind is how to locate these resources on the World Wide Web. The Uniform Resource Locator (URL) is the most common form for resource identification on www. The descriptive format of the URLs, tell us the way to fetch a resource from some particular location on the server.
Now let’s take a look at the concepts of HTTP request and response messages. The messages which are sent from web clients to web servers are called request messages. The response which the web client receives from the server is called response message. The structure of response and request messages is almost similar. HTTP messages are composed of three parts primarily: Start Line, Header Fields and Body.
Start Line:
All HTTP messages begin with a Start Line. The Start line for the request messages contains information which asks the server to do something to the resource. It contains a method which describes the function that the server needs to perform on the resource described by the URL. Similarly in a response message, the start line conveys back the status information and any resulting data to the client, thus completing the operation.
Header Fields:
HTTP headers just add more info to the request and response messages, appending after the start line. They are basically the name-value pairs that give additional info about the message being transferred. A simple HTTP header has the following syntax: a name, followed by a colon (:), followed with whitespace (optional), followed by the field value, followed by a CRLF.
Body:
The HTTP messages were actually designed to transfer this part of the message, which carry varied kinds of digital data. Images, videos, html documents, software applications, e-business applications, e-mail applications and so on, all form a part of the arbitrary binary data contained in the HTTP body. Of course, the body can also contain text.
Friends, I would recommend you all to read more on HTTP, and explore the terms better. I personally find it interesting and a rich source to understand the areas of World Wide Web which are difficult to comprehend. HTTP also forms the core for performance testing of any web application.
I will continue with a few left over headings covered under HTTP, in my next blog. Till then, happy reading… :)
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Siebel: Testing Challenges & Siebel Test Automation Tool
Siebel: Testing Challenges & Siebel Test Automation Tool
By Pratham Kailash
Customer relationship management (CRM) is a term applied to processes implemented by a company to handle their contact with their customers. CRM software is used to support these processes, storing information on customers and prospective customers. Information in the system can be accessed and entered by employees in different departments, such as sales, marketing, customer service, training, professional development, performance management, human resource development, and compensation. Details on any customer contacts can also be stored in the system. The rationale behind this approach is to improve services provided directly to customers and to use the information in the system for targeted marketing and sales purposes.
Oracle’s Siebel CRM product suite of applications is market leader in CRM software domain, which enables organizations to transform the customer experience. With solutions tailored to more than 20 industries, Siebel CRM delivers:
• Comprehensive CRM capabilities
• Tailored industry solutions
• Role-based customer intelligence and pre-built integration
It helps organizations in successfully managing their important needs like:
• Sales
• Marketing
• Contact Center Infrastructure and Service
• Customer Data Integration
• Quote, Order and Billing
• Partner Relationship Management
• Business Intelligence Applications
• Price Management
Oracle’s Siebel CRM technology provides the server framework to support Siebel applications. It delivers solutions for:
• Development
• Deployment
• Diagnostic
• Integration
• Productivity
• Mobile services
Quality Assurance challenges and testing tool for Siebel CRM applications
Any organization that relies on CRM application(s) to serve the needs of internal clients or customers recognizes that application quality is a prerequisite for success, not an option. A crucial ingredient for this success is an efficient, disciplined testing process to verify that applications have achieved a level of fitness that either meets or exceeds project expectations. Slipping schedules, frequently changing application user interfaces, and recurrent feature regression introduce variables that ad-hoc testing practices are unable to handle.
IBM Rational Functional Tester Extension for Siebel Test Automation is one of the tools built to address these issues. Rational Functional Tester Extension for Siebel Test Automation records user interactions with Siebel 7.7 applications, creating a test script that - when executed - reproduces those actions. During recording, the user can insert verification points that extract specified data or properties from the application under test. During playback, these verification points are used to compare recorded information with live information to ensure consistency. Following any test recording activity, testers have the option of adding custom code to the test script to perform an unlimited array of tasks, including the data manipulation and environment configuration activities that are often necessary to ensure the test lab is properly constituted for the test run. Following test execution, Rational Functional Tester Extension for Siebel Test Automation generates a report listing the results of the verification point comparisons. With Rational Functional Tester Extension for Siebel Test Automation, teams are able to more reliably and efficiently expose problems in Siebel 7.7 applications, increasing the opportunity for defect capture and repair before product deployment.
Features and benefits of IBM Rational Functional Tester Extension for Siebel Test Automation:
• Supports Siebel controls for GUI automated testing
Siebel 7.7 delivers a rich UI comprised of standard and complex controls. Rational Functional Tester Extension for Siebel integrates with Siebel Test Automation interfaces to provide robust automation support for this rich environment. By supporting standard web controls in addition to Siebel Standard-Interactivity and High-Interactivity controls Functional Tester Extension for Siebel generates scripts consisting of advanced UI control recognition and readability.
• Support for testing of Java, Web and Visual Studio .NET WinForm-based applications
Test teams are often required to assess applications built upon more than one technology base. IBM Rational Functional Tester provides equally robust automation support for applications constructed using Java, HTML/DHTML and Visual Studio .NET WinForm technologies.
• Choice of language - Java or Visual Basic .NET - for test script customization
Test script customization is mandatory in order to perform anything but the most basic tests Functional Tester for Siebel gives you a choice of powerful, mainstream scripting languages to make this possible. Choose between either Java or Visual Basic .NET - both options can be used with all the supported user interface technologies. By working with Functional Tester for Siebel, testers quickly learn to work with basic language constructs and acquire programming skills that facilitate more productive communication with developers.
• Native Java and Visual Basic .NET editor and debugger for advanced testers
Test script editing is important, but it can be difficult without a good editor and debugger. Functional Tester for Siebel delivers industrial-strength options to address this concern. Testers using Java can work in the Eclipse Java Development Toolkit (JDT), and those using Visual Basic .NET can work in Visual Studio .NET. Both integrated development environments offer a host of options to simplify test enhancement, including a helpful code-complete feature that suggests code to accelerate editing. GUI developers will find this feature particularly useful, as they can access it within the IDE they use to build the user interface.
• ScriptAssure technology to accommodate frequent UI modifications
Frequent changes to an application’s user interface can break tests, which embody assumptions about how to identify the interface’s objects during playback. Functional Tester for Siebel introduces an advanced ScriptAssure™ technology to accommodate these changes and avoid increases in maintenance overhead. ScriptAssure uses configurable algorithms to locate objects during test execution, even if the objects have changed since test creation.
• Automated data correlation and data-driven testing eliminate need for manual coding
Functional tests typically need to vary data during playback to properly simulate true users. Functional Tester for Siebel can automatically detect data entered during test recording and prepare the test for data-driven testing. Using a spreadsheet-like data editor, you can then create customized data sets to be inserted into the script during playback. In this way, you can produce highly personalized tests without manual coding.
• Multiple verification points with regular expression pattern matching support
Verification points help to ensure there is no regression from one build of the application under test to the next. Functional Tester for Siebel provides a wide range of verification points to test various aspects of your application, and it includes pattern matching support for tests in which you cannot predict the exact data response.
• Advanced object map maintenance capabilities
Functional Tester for Siebel uses an object map to store information used during test execution to locate user interface objects. It also provides maintenance capabilities to update this object map automatically whenever changes are made to the application’s user interface.
• Ships with IBM Rational Manual Tester
For teams not yet prepared to automate all of their testing efforts; IBM Rational Manual Tester is included in the Functional Tester for Siebel product box. Rational Manual Tester brings control and organization to manual testing efforts, introducing a novel test step reuse technology to improve the resiliency of manual tests despite changes made to the applications under test.
• Ships with IBM Rational ClearCase LT for automated version control
Typically, more than one version of an application is deployed within an organization, and testers must therefore maintain groups of tests for each version. Without the help of automated version control, this can be extremely difficult. Functional Tester for Siebel is designed to support automated version control, which not only provides a mechanism to maintain multiple test sets, but also enables parallel development and supports geographically dispersed teams, To help teams take advantage of this support, a full version of IBM Rational ClearCase LT, an entry-level version control tool designed for small project workgroups, is included in the product box. Rational Functional Tester users also have the option of upgrading to the standard version of IBM Rational ClearCase.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Pratham Kailash
Customer relationship management (CRM) is a term applied to processes implemented by a company to handle their contact with their customers. CRM software is used to support these processes, storing information on customers and prospective customers. Information in the system can be accessed and entered by employees in different departments, such as sales, marketing, customer service, training, professional development, performance management, human resource development, and compensation. Details on any customer contacts can also be stored in the system. The rationale behind this approach is to improve services provided directly to customers and to use the information in the system for targeted marketing and sales purposes.
Oracle’s Siebel CRM product suite of applications is market leader in CRM software domain, which enables organizations to transform the customer experience. With solutions tailored to more than 20 industries, Siebel CRM delivers:
• Comprehensive CRM capabilities
• Tailored industry solutions
• Role-based customer intelligence and pre-built integration
It helps organizations in successfully managing their important needs like:
• Sales
• Marketing
• Contact Center Infrastructure and Service
• Customer Data Integration
• Quote, Order and Billing
• Partner Relationship Management
• Business Intelligence Applications
• Price Management
Oracle’s Siebel CRM technology provides the server framework to support Siebel applications. It delivers solutions for:
• Development
• Deployment
• Diagnostic
• Integration
• Productivity
• Mobile services
Quality Assurance challenges and testing tool for Siebel CRM applications
Any organization that relies on CRM application(s) to serve the needs of internal clients or customers recognizes that application quality is a prerequisite for success, not an option. A crucial ingredient for this success is an efficient, disciplined testing process to verify that applications have achieved a level of fitness that either meets or exceeds project expectations. Slipping schedules, frequently changing application user interfaces, and recurrent feature regression introduce variables that ad-hoc testing practices are unable to handle.
IBM Rational Functional Tester Extension for Siebel Test Automation is one of the tools built to address these issues. Rational Functional Tester Extension for Siebel Test Automation records user interactions with Siebel 7.7 applications, creating a test script that - when executed - reproduces those actions. During recording, the user can insert verification points that extract specified data or properties from the application under test. During playback, these verification points are used to compare recorded information with live information to ensure consistency. Following any test recording activity, testers have the option of adding custom code to the test script to perform an unlimited array of tasks, including the data manipulation and environment configuration activities that are often necessary to ensure the test lab is properly constituted for the test run. Following test execution, Rational Functional Tester Extension for Siebel Test Automation generates a report listing the results of the verification point comparisons. With Rational Functional Tester Extension for Siebel Test Automation, teams are able to more reliably and efficiently expose problems in Siebel 7.7 applications, increasing the opportunity for defect capture and repair before product deployment.
Features and benefits of IBM Rational Functional Tester Extension for Siebel Test Automation:
• Supports Siebel controls for GUI automated testing
Siebel 7.7 delivers a rich UI comprised of standard and complex controls. Rational Functional Tester Extension for Siebel integrates with Siebel Test Automation interfaces to provide robust automation support for this rich environment. By supporting standard web controls in addition to Siebel Standard-Interactivity and High-Interactivity controls Functional Tester Extension for Siebel generates scripts consisting of advanced UI control recognition and readability.
• Support for testing of Java, Web and Visual Studio .NET WinForm-based applications
Test teams are often required to assess applications built upon more than one technology base. IBM Rational Functional Tester provides equally robust automation support for applications constructed using Java, HTML/DHTML and Visual Studio .NET WinForm technologies.
• Choice of language - Java or Visual Basic .NET - for test script customization
Test script customization is mandatory in order to perform anything but the most basic tests Functional Tester for Siebel gives you a choice of powerful, mainstream scripting languages to make this possible. Choose between either Java or Visual Basic .NET - both options can be used with all the supported user interface technologies. By working with Functional Tester for Siebel, testers quickly learn to work with basic language constructs and acquire programming skills that facilitate more productive communication with developers.
• Native Java and Visual Basic .NET editor and debugger for advanced testers
Test script editing is important, but it can be difficult without a good editor and debugger. Functional Tester for Siebel delivers industrial-strength options to address this concern. Testers using Java can work in the Eclipse Java Development Toolkit (JDT), and those using Visual Basic .NET can work in Visual Studio .NET. Both integrated development environments offer a host of options to simplify test enhancement, including a helpful code-complete feature that suggests code to accelerate editing. GUI developers will find this feature particularly useful, as they can access it within the IDE they use to build the user interface.
• ScriptAssure technology to accommodate frequent UI modifications
Frequent changes to an application’s user interface can break tests, which embody assumptions about how to identify the interface’s objects during playback. Functional Tester for Siebel introduces an advanced ScriptAssure™ technology to accommodate these changes and avoid increases in maintenance overhead. ScriptAssure uses configurable algorithms to locate objects during test execution, even if the objects have changed since test creation.
• Automated data correlation and data-driven testing eliminate need for manual coding
Functional tests typically need to vary data during playback to properly simulate true users. Functional Tester for Siebel can automatically detect data entered during test recording and prepare the test for data-driven testing. Using a spreadsheet-like data editor, you can then create customized data sets to be inserted into the script during playback. In this way, you can produce highly personalized tests without manual coding.
• Multiple verification points with regular expression pattern matching support
Verification points help to ensure there is no regression from one build of the application under test to the next. Functional Tester for Siebel provides a wide range of verification points to test various aspects of your application, and it includes pattern matching support for tests in which you cannot predict the exact data response.
• Advanced object map maintenance capabilities
Functional Tester for Siebel uses an object map to store information used during test execution to locate user interface objects. It also provides maintenance capabilities to update this object map automatically whenever changes are made to the application’s user interface.
• Ships with IBM Rational Manual Tester
For teams not yet prepared to automate all of their testing efforts; IBM Rational Manual Tester is included in the Functional Tester for Siebel product box. Rational Manual Tester brings control and organization to manual testing efforts, introducing a novel test step reuse technology to improve the resiliency of manual tests despite changes made to the applications under test.
• Ships with IBM Rational ClearCase LT for automated version control
Typically, more than one version of an application is deployed within an organization, and testers must therefore maintain groups of tests for each version. Without the help of automated version control, this can be extremely difficult. Functional Tester for Siebel is designed to support automated version control, which not only provides a mechanism to maintain multiple test sets, but also enables parallel development and supports geographically dispersed teams, To help teams take advantage of this support, a full version of IBM Rational ClearCase LT, an entry-level version control tool designed for small project workgroups, is included in the product box. Rational Functional Tester users also have the option of upgrading to the standard version of IBM Rational ClearCase.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
IIS Performance Settings
IIS Performance Settings
Blog Home »
*
Calender
May 2009 M T W T F S S
« Apr
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
*
Recent Posts
o Updates about QTP 10 (I)
o Agent Controller Issue on Starting RAServer Process
o Oracle Tunning
o Bridging the Gap between Open Source & Commercial Tools
o Necessity- the Mother of all Invention (Part II)
*
Archives
o May 2009
o April 2009
o March 2009
o February 2009
o January 2009
o October 2008
o September 2008
o August 2008
o July 2008
*
Tags
Agile Mode CRM | Database Document Object Model | Functional Automation Functional Testing | General General Concepts human resource Human Resources | Open Source Tools Oracle Performance Testing | QTP SRS Telecom Testing
Search Blog
*
Categories
o Catch The Latest
o CRM |
o Functional Automation
o Functional Testing |
o General
o General Concepts
o Human Resources |
o Open Source tools
o Open Source tools
o Other Commercial Tools
o Performance Testing |
o Quick Test Professional
o Rational Functional Tester
o Security Testing
o Telecom Testing
o Testing SOA
o Uncategorized
*
Recent Comments
o Abhay on Sample code to click on dynamic link using Browser DOM
o parul wahi on Testing Ajax Application using QTP
o Pankaj Goel on Testing Ajax Application using QTP
o Pankaj Goel on Oracle Tunning
o Pankaj Goel on Bridging the Gap between Open Source & Commercial Tools
*
Blogger
o Roshi Malhotra
o Kuldeep Singh
o Vaibhav Agarwal
o Rajat Singhal
o Avinash K. Tiwari
o Ravinder Singroha
o Vivek Goyal
o Sudha Sharma
o Betsy Joy
o Shalini Rawal
IIS Performance Settings
July 28th, 2008 admin Posted in Performance Testing | |
By Pankaj Goel
Performance tuning tips for IIS 6.0
The IIS server tuning is slightly involved in terms of understanding the performance critical parameters and tuning them to meet the performance specifications. Some of the ways to improve performance hosted on dot net platform are
a) Recycling Worker process
b) Reducing thread contention
c) Kernel Mode caching
a) Recycling Worker Processes
If a Web application contains code that causes problems, and you cannot easily rewrite the code, it might be useful to limit the extent of the problems by periodically recycling the worker process that services the application. You can accomplish this by using what is known as Worker Process Recycling. Worker process recycling is the replacing of the instance of the application in memory. IIS 6.0 can automatically recycle worker processes by restarting the worker process, or worker processes, that are assigned to an application pool. This helps keep problematic applications running smoothly, and minimizes problems such as memory leaks. You can trigger the recycling of the worker processes assigned to an application pool by using worker process recycling methods that are based on elapsed time, the number of Hypertext Transfer Protocol (HTTP) requests, a set time of day, and two kinds of memory consumption, in addition to recycling on demand.
To configure all the above settings, go to the Properties window of the application pool in which your Web application is running using the IIS manager. Using the Recycling, Performance, and Heal
You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.
AddThis Social Bookmark Button
Leave a Reply
Name (required)
Mail (will not be published) (required)
Website
(Required)
Type the two words:Type what you hear:Incorrect. Try again.
Get a new challenge
Get an audio challengeGet a visual challenge
Help
« SOA Testing Simplified (Series-I)
Telecom Testing »
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Blog Home »
*
Calender
May 2009 M T W T F S S
« Apr
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
*
Recent Posts
o Updates about QTP 10 (I)
o Agent Controller Issue on Starting RAServer Process
o Oracle Tunning
o Bridging the Gap between Open Source & Commercial Tools
o Necessity- the Mother of all Invention (Part II)
*
Archives
o May 2009
o April 2009
o March 2009
o February 2009
o January 2009
o October 2008
o September 2008
o August 2008
o July 2008
*
Tags
Agile Mode CRM | Database Document Object Model | Functional Automation Functional Testing | General General Concepts human resource Human Resources | Open Source Tools Oracle Performance Testing | QTP SRS Telecom Testing
Search Blog
*
Categories
o Catch The Latest
o CRM |
o Functional Automation
o Functional Testing |
o General
o General Concepts
o Human Resources |
o Open Source tools
o Open Source tools
o Other Commercial Tools
o Performance Testing |
o Quick Test Professional
o Rational Functional Tester
o Security Testing
o Telecom Testing
o Testing SOA
o Uncategorized
*
Recent Comments
o Abhay on Sample code to click on dynamic link using Browser DOM
o parul wahi on Testing Ajax Application using QTP
o Pankaj Goel on Testing Ajax Application using QTP
o Pankaj Goel on Oracle Tunning
o Pankaj Goel on Bridging the Gap between Open Source & Commercial Tools
*
Blogger
o Roshi Malhotra
o Kuldeep Singh
o Vaibhav Agarwal
o Rajat Singhal
o Avinash K. Tiwari
o Ravinder Singroha
o Vivek Goyal
o Sudha Sharma
o Betsy Joy
o Shalini Rawal
IIS Performance Settings
July 28th, 2008 admin Posted in Performance Testing | |
By Pankaj Goel
Performance tuning tips for IIS 6.0
The IIS server tuning is slightly involved in terms of understanding the performance critical parameters and tuning them to meet the performance specifications. Some of the ways to improve performance hosted on dot net platform are
a) Recycling Worker process
b) Reducing thread contention
c) Kernel Mode caching
a) Recycling Worker Processes
If a Web application contains code that causes problems, and you cannot easily rewrite the code, it might be useful to limit the extent of the problems by periodically recycling the worker process that services the application. You can accomplish this by using what is known as Worker Process Recycling. Worker process recycling is the replacing of the instance of the application in memory. IIS 6.0 can automatically recycle worker processes by restarting the worker process, or worker processes, that are assigned to an application pool. This helps keep problematic applications running smoothly, and minimizes problems such as memory leaks. You can trigger the recycling of the worker processes assigned to an application pool by using worker process recycling methods that are based on elapsed time, the number of Hypertext Transfer Protocol (HTTP) requests, a set time of day, and two kinds of memory consumption, in addition to recycling on demand.
To configure all the above settings, go to the Properties window of the application pool in which your Web application is running using the IIS manager. Using the Recycling, Performance, and Heal
You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.
AddThis Social Bookmark Button
Leave a Reply
Name (required)
Mail (will not be published) (required)
Website
(Required)
Type the two words:Type what you hear:Incorrect. Try again.
Get a new challenge
Get an audio challengeGet a visual challenge
Help
« SOA Testing Simplified (Series-I)
Telecom Testing »
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Telecom Testing
Telecom Testing
By Rohit Aggarwal
Testing in telecom world is as vast a subject as the domain itself. This blog talks about the readiness to become a telecom tester. The intent is to address the apprehensions and misconceptions; the actual tools and methodologies involved form the next level of discussion.
Kick-start
Do not jump to the System Under Test (SUT). Start from the bigger picture.
For instance, understand the technological domain/network, then the network nodes, then the SUT as a black box.
W5H of the System Under Test
There is a lot of food for thought. It is important to answer a few questions to be able to prepare the use cases and test details.
i. What does it do: functionality
ii. Where is it placed: network positioning
iii. Why is it needed: network architecture, business drivers
iv. Who will use it: end user – could be human being or another network node
v. When is it used: time, service, peak usage etc.
vi. How does it work: protocol, language, interfaces
Knowledge of deployment zone is a value-add. Test criteria needs to consider regional policies, infrastructure and usage patterns.
Documentation
A lot of information about the SUT is available through
? Technical specifications sheet
? Release bulletin
? User Manual
? Requirement Specifications
and other technical documents.
Types of Testing
There are multiple behavioral elements of the SUT that need to be tested.
? Functional
? Compliance
? Performance
? Load
? Soak
One of the key facets is that most of the telecom equipment is real-time.
Test Environment
Test tools can be
? Purchased: cost-driven
? Produced: time-driven
? Procured: contract-driven
Investment
? Ramp up
? Time: large amount of time needed to understand the technical specifications
? Cost: almost entire knowledge base freely available on web
? Test bed
? Time: to code test stubs
? Cost: to buy test stubs e.g., OS, compiler, network software, equipment
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Rohit Aggarwal
Testing in telecom world is as vast a subject as the domain itself. This blog talks about the readiness to become a telecom tester. The intent is to address the apprehensions and misconceptions; the actual tools and methodologies involved form the next level of discussion.
Kick-start
Do not jump to the System Under Test (SUT). Start from the bigger picture.
For instance, understand the technological domain/network, then the network nodes, then the SUT as a black box.
W5H of the System Under Test
There is a lot of food for thought. It is important to answer a few questions to be able to prepare the use cases and test details.
i. What does it do: functionality
ii. Where is it placed: network positioning
iii. Why is it needed: network architecture, business drivers
iv. Who will use it: end user – could be human being or another network node
v. When is it used: time, service, peak usage etc.
vi. How does it work: protocol, language, interfaces
Knowledge of deployment zone is a value-add. Test criteria needs to consider regional policies, infrastructure and usage patterns.
Documentation
A lot of information about the SUT is available through
? Technical specifications sheet
? Release bulletin
? User Manual
? Requirement Specifications
and other technical documents.
Types of Testing
There are multiple behavioral elements of the SUT that need to be tested.
? Functional
? Compliance
? Performance
? Load
? Soak
One of the key facets is that most of the telecom equipment is real-time.
Test Environment
Test tools can be
? Purchased: cost-driven
? Produced: time-driven
? Procured: contract-driven
Investment
? Ramp up
? Time: large amount of time needed to understand the technical specifications
? Cost: almost entire knowledge base freely available on web
? Test bed
? Time: to code test stubs
? Cost: to buy test stubs e.g., OS, compiler, network software, equipment
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
A Beginner’s Blog to Performance Testing
A Beginner’s Blog to Performance Testing
Blog Home »
*
Calender
May 2009 M T W T F S S
« Apr
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
*
Recent Posts
o Updates about QTP 10 (I)
o Agent Controller Issue on Starting RAServer Process
o Oracle Tunning
o Bridging the Gap between Open Source & Commercial Tools
o Necessity- the Mother of all Invention (Part II)
*
Archives
o May 2009
o April 2009
o March 2009
o February 2009
o January 2009
o October 2008
o September 2008
o August 2008
o July 2008
*
Tags
Agile Mode CRM | Database Document Object Model | Functional Automation Functional Testing | General General Concepts human resource Human Resources | Open Source Tools Oracle Performance Testing | QTP SRS Telecom Testing
Search Blog
*
Categories
o Catch The Latest
o CRM |
o Functional Automation
o Functional Testing |
o General
o General Concepts
o Human Resources |
o Open Source tools
o Open Source tools
o Other Commercial Tools
o Performance Testing |
o Quick Test Professional
o Rational Functional Tester
o Security Testing
o Telecom Testing
o Testing SOA
o Uncategorized
*
Recent Comments
o Abhay on Sample code to click on dynamic link using Browser DOM
o parul wahi on Testing Ajax Application using QTP
o Pankaj Goel on Testing Ajax Application using QTP
o Pankaj Goel on Oracle Tunning
o Pankaj Goel on Bridging the Gap between Open Source & Commercial Tools
*
Blogger
o Roshi Malhotra
o Kuldeep Singh
o Vaibhav Agarwal
o Rajat Singhal
o Avinash K. Tiwari
o Ravinder Singroha
o Vivek Goyal
o Sudha Sharma
o Betsy Joy
o Shalini Rawal
A Beginner’s Blog to Performance Testing
July 29th, 2008 admin Posted in General Concepts |
By Happy Himanshu Gupta
Class 12th Board results were out and I ran to my PC to check the result. The anxiety level was rising every moment as it was taking time for the result page to open. Why is this page taking so long to open…?? Have I scored less…or perhaps I have failed in Chemistry..?? Oh god……!!!! What is going to happen… :( ?? Finally after 7 minutes and a few seconds, I rested in peace when the internet page opened and highlighted PASS on the screen. I just kicked my PC for taking the life out of me in those 7 minutes.
It’s just been a few days that I have stopped cursing my poor machine for those worst 7 minutes of my life when I came across a term called “Performance Testing”. I felt like sharing the definition of this term with you people and got up to writing this starting blog. :)
Performance testing is an emerging science in the field of Software testing. When we talk about effective development of an application that makes life easy, we cannot neglect its high performance as one of the major factors contributing to its quality. Performance testing is done to test a specific behavior of the application. But is there any specific criterion to define performance?
To define the concepts of performance of any system software or any general application (web/system), we can define a phrase “meeting of requirements with the timeliness” of the application. A well running application will always meet its requirements under the benchmark indicators. We map these benchmarks to the actual performance counters, which help us to judge, how the application is performing under the current environment.
These performance counters can broadly be categorized into two major dimensions, namely, Responsiveness and Scalability.
Response time of an application is the time required to process any instruction and return back the result. It is the waiting time, the measure of which is directly proportional to the number of concurrent users working on the application.
Throughput of the system is the number of events which an application can process within some interval of time. More the throughput better is the performance of the application.
Scalability of an application can be defined by its ability to meet the throughput and the response time objectives, even as the load on the application continue to increase with the increasing functionaries. Better performance is achieved by high scalability of the application.
Though Performance testing is done in conjunction with stress testing, but performance testing is not only stress testing. It covers the other aspects such as load testing and endurance testing along with the stress testing.
There are a number of tools, both commercial and open-source, to facilitate performance testing of any application. Commercial tools like Load Runner (LR) and Rational Performance Tester (RPT) are well equipped to support a number of different protocols for performance testing. Open-source tools such as OpenSTA, JMeter, Grinder, Webload etc. have made it easy for the small scale IT industries to test the performance of their applications without spending a substantial sum on gaining the licenses of their commercial counterparts.
Performance testing allows the user to identify the bottleneck in the application, which is the cause of the poor performance. The relational graphs and the statistical values of the performance counters help in analyzing the behavior of the application with the increasing load (number of users).
Well friends, the heavy rush on the Result website was the actual reason for the delay in the result that night and not my poor PC. I believe such websites should go for the performance testing of their applications before giving nightmares to the innocent children…. :)
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
AddThis Social Bookmark Button
2 Responses to “A Beginner’s Blog to Performance Testing”
1.
Aaisha Ghosh Says:
July 30th, 2008 at 10:47 pm
:-) A Nice Read Himanshu. I am a functional tester and have been curious to Know how to get started in Performance Testing. Since you have already taken this first step, can u guide me in what all to read.
Is there some good training institute where i can get performance testing training
2.
Happy Himanshu Gupta Says:
August 4th, 2008 at 3:22 am
Thanks for your comments Aaisha. I will keep updating the blog adding more to this particular domain of testing , to help all the learners gain the primary knowledge of Performance Testing.
“QACampus”, is a one stop testing portal, which is maintained by the Learning and Training Devision of our organization. Just check out the ‘Contact Us’ section on this website, to reach out to us for any query. I believe QACampus is the best place to learn any aspect of testing.
Leave a Reply
Name (required)
Mail (will not be published) (required)
Website
(Required)
Type the two words:Type what you hear:Incorrect. Try again.
Get a new challenge
Get an audio challengeGet a visual challenge
Help
« Telecom Testing
Introduction To HR Payroll »
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Blog Home »
*
Calender
May 2009 M T W T F S S
« Apr
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
*
Recent Posts
o Updates about QTP 10 (I)
o Agent Controller Issue on Starting RAServer Process
o Oracle Tunning
o Bridging the Gap between Open Source & Commercial Tools
o Necessity- the Mother of all Invention (Part II)
*
Archives
o May 2009
o April 2009
o March 2009
o February 2009
o January 2009
o October 2008
o September 2008
o August 2008
o July 2008
*
Tags
Agile Mode CRM | Database Document Object Model | Functional Automation Functional Testing | General General Concepts human resource Human Resources | Open Source Tools Oracle Performance Testing | QTP SRS Telecom Testing
Search Blog
*
Categories
o Catch The Latest
o CRM |
o Functional Automation
o Functional Testing |
o General
o General Concepts
o Human Resources |
o Open Source tools
o Open Source tools
o Other Commercial Tools
o Performance Testing |
o Quick Test Professional
o Rational Functional Tester
o Security Testing
o Telecom Testing
o Testing SOA
o Uncategorized
*
Recent Comments
o Abhay on Sample code to click on dynamic link using Browser DOM
o parul wahi on Testing Ajax Application using QTP
o Pankaj Goel on Testing Ajax Application using QTP
o Pankaj Goel on Oracle Tunning
o Pankaj Goel on Bridging the Gap between Open Source & Commercial Tools
*
Blogger
o Roshi Malhotra
o Kuldeep Singh
o Vaibhav Agarwal
o Rajat Singhal
o Avinash K. Tiwari
o Ravinder Singroha
o Vivek Goyal
o Sudha Sharma
o Betsy Joy
o Shalini Rawal
A Beginner’s Blog to Performance Testing
July 29th, 2008 admin Posted in General Concepts |
By Happy Himanshu Gupta
Class 12th Board results were out and I ran to my PC to check the result. The anxiety level was rising every moment as it was taking time for the result page to open. Why is this page taking so long to open…?? Have I scored less…or perhaps I have failed in Chemistry..?? Oh god……!!!! What is going to happen… :( ?? Finally after 7 minutes and a few seconds, I rested in peace when the internet page opened and highlighted PASS on the screen. I just kicked my PC for taking the life out of me in those 7 minutes.
It’s just been a few days that I have stopped cursing my poor machine for those worst 7 minutes of my life when I came across a term called “Performance Testing”. I felt like sharing the definition of this term with you people and got up to writing this starting blog. :)
Performance testing is an emerging science in the field of Software testing. When we talk about effective development of an application that makes life easy, we cannot neglect its high performance as one of the major factors contributing to its quality. Performance testing is done to test a specific behavior of the application. But is there any specific criterion to define performance?
To define the concepts of performance of any system software or any general application (web/system), we can define a phrase “meeting of requirements with the timeliness” of the application. A well running application will always meet its requirements under the benchmark indicators. We map these benchmarks to the actual performance counters, which help us to judge, how the application is performing under the current environment.
These performance counters can broadly be categorized into two major dimensions, namely, Responsiveness and Scalability.
Response time of an application is the time required to process any instruction and return back the result. It is the waiting time, the measure of which is directly proportional to the number of concurrent users working on the application.
Throughput of the system is the number of events which an application can process within some interval of time. More the throughput better is the performance of the application.
Scalability of an application can be defined by its ability to meet the throughput and the response time objectives, even as the load on the application continue to increase with the increasing functionaries. Better performance is achieved by high scalability of the application.
Though Performance testing is done in conjunction with stress testing, but performance testing is not only stress testing. It covers the other aspects such as load testing and endurance testing along with the stress testing.
There are a number of tools, both commercial and open-source, to facilitate performance testing of any application. Commercial tools like Load Runner (LR) and Rational Performance Tester (RPT) are well equipped to support a number of different protocols for performance testing. Open-source tools such as OpenSTA, JMeter, Grinder, Webload etc. have made it easy for the small scale IT industries to test the performance of their applications without spending a substantial sum on gaining the licenses of their commercial counterparts.
Performance testing allows the user to identify the bottleneck in the application, which is the cause of the poor performance. The relational graphs and the statistical values of the performance counters help in analyzing the behavior of the application with the increasing load (number of users).
Well friends, the heavy rush on the Result website was the actual reason for the delay in the result that night and not my poor PC. I believe such websites should go for the performance testing of their applications before giving nightmares to the innocent children…. :)
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
AddThis Social Bookmark Button
2 Responses to “A Beginner’s Blog to Performance Testing”
1.
Aaisha Ghosh Says:
July 30th, 2008 at 10:47 pm
:-) A Nice Read Himanshu. I am a functional tester and have been curious to Know how to get started in Performance Testing. Since you have already taken this first step, can u guide me in what all to read.
Is there some good training institute where i can get performance testing training
2.
Happy Himanshu Gupta Says:
August 4th, 2008 at 3:22 am
Thanks for your comments Aaisha. I will keep updating the blog adding more to this particular domain of testing , to help all the learners gain the primary knowledge of Performance Testing.
“QACampus”, is a one stop testing portal, which is maintained by the Learning and Training Devision of our organization. Just check out the ‘Contact Us’ section on this website, to reach out to us for any query. I believe QACampus is the best place to learn any aspect of testing.
Leave a Reply
Name (required)
Mail (will not be published) (required)
Website
(Required)
Type the two words:Type what you hear:Incorrect. Try again.
Get a new challenge
Get an audio challengeGet a visual challenge
Help
« Telecom Testing
Introduction To HR Payroll »
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Introduction To HR Payroll
By Anurag Vasisht
Introduction
Payroll is one business area that is of relevance to all of us. We all work to get paid (or most us, anyway). In good old days, this payment used to be a straight affair of a fixed salary OR a simple multiplication of number of hours with hourly rate. Not any more. Nowadays, it’s a much more complicated process with concepts like deductions, contributions, exemptions, taxation laws, union contracts, commissions, loans, bonus payments and other special payments/deductions. HR Payroll also provides input to downstream systems like Finance Accounting, General Ledger etc.
For the purpose of understanding the nuts and bolts of HR Payroll, let us define employees under the following broad categories. This distinction is required because the Payroll processing is vastly different for these categories. Most employers, big or small, follow this segregation at the topmost level, drilling down to different levels of complexity based on size and diversification of their businesses.
1. Non-Exempt
These employees are required to accurately record the time that they spend on work. If different types of work have different payment rates, then they are expected to record time against different “attendance/work codes”. If time is not recorded for work done, then no payments are made for that work.
Such employees are setup with an expected daily/weekly hours and basic rate of pay instead of a fixed/basic salary. If these employees work more than their schedule, then they are paid overtime at a normal or premium rate as defined.
In some cases, such employees are contracted through Labor Unions and are paid as per the terms and conditions as defined in the respective contracts.
2. Exempt
These employees are exempt from recording their time on work. Such employees are setup with a schedule (such as Mon-Fri 9-6) and are expected to report time only if some exception happens from their normal schedule (such as vacation or jury call or military duty). Unless they report an exception it is understood that they followed their schedule. Though employers do set up in/out devices for monitoring purpose and deviations are questioned, but these typically do not impact the payments unless there is a drastic variation.
Typically, management employees fall under this category while non-management employees are under Non-Exempt category.
2. Stages of Payroll processing
1. Employee setup
This is the static information which is typically set up for an employee at Hire time and updated typically at the start of a financial year. This is expected to remain the same till there is change in status of the employee, caused by events such as promotion, termination, demotion, change of job profile or location etc. Setup information includes data such as type of employee, job profile, work location, work schedule, leave entitlements, payroll cycle (weekly, semi-monthly, monthly etc), basic pay (or rate of pay), compensation and benefits, medical and insurance plans etc. This setup pretty much defines the way actual processing happens at the end of every payroll cycle.
2. Attendance/Absence Records
Non exempt employees record each hour and minute of work against relevant attendance code. This time is compared against the work schedule and determined if any premium is to be paid against overtime, holiday worked etc.
In case of absence in scheduled work hours, time is coded against the relevant absence codes. This is applicable for both exempt and non-exempt employees. Absences are compared against the leave entitlements, and determined if they need to be paid out or any deductions need to be made.
3. Calculation of Gross Pay
It is typically the summation of all earnings. For non-exempt employees, the figure arrived from number of hours X hourly rate can start as the basis while for exempt employees, the basic salary can for the basis. In this figure, various garnishments are added to arrive at the Gross Pay. These include overtime/holiday worked premiums, commissions, bonus payments, arrears from previous salaries, misc benefits etc.
4. Calculation of Net Pay
This calculated by subtracting the various deductions and taxes from the Gross Pay. Deductions may include loan payments, union dues, overpayments of previous salaries, contributions to misc health/benefit/insurance plans. Taxes are generally applied after deductions and include federal, state and local taxes. Net Pay is what an employee gets in his account.
3. Key Considerations in Testing
1. Setup & Locale: Payroll processing is different for each country, and sometimes there are major differences with in states in a country. Even though generic rules are good to have an overview, a thorough understanding of the local (financial, labor and taxation) laws is essential. Similarly, HR policies of a company that govern all the Payroll processing are important to learn and comprehend before jumping headlong into IT solution that implements those policies. Finally, knowledge of IT solution (implementation) is recommended as each vendor differs vastly from the other, and even in case of black box system testing, it does no harm to know the vital aspects.
2. Movements: Any kind of movement brings complexity to the system. Whether it was a Hire, Rehire, Termination, Transfer from one location to another, Promotion, Demotion: all of these visibly impact the payroll processing. Much of the complexity can be removed if a company prohibits movements in the mid of a pay period. Then, there is a clear demarcation, and the process can be easily developed and tested to take notice of such a movement. However, if there is no such restriction, then it is a nightmare…requiring much more analysis in understanding, implementing and testing the solution.
3. “Worked/Earned” vs. “Paid”: This concept is critical in case of reports which run out of Payroll. Consider this example: An employee works for the period 12/16/07 to 12/31/07. His Payroll processing happens on 1/3/08 and gets paid on 1/5/08. Now, assuming there is monthly report which displays employee wages. In this case, should the amount for the work done between 12/16/07 to 12/31/07 appear in Dec 07 report or Jan 08 report? There is no default answer to this question, and depends from case to case – determined by the business that uses the report. So, this question must definitely be asked for any Payroll report testing.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Anurag Vasisht
Introduction
Payroll is one business area that is of relevance to all of us. We all work to get paid (or most us, anyway). In good old days, this payment used to be a straight affair of a fixed salary OR a simple multiplication of number of hours with hourly rate. Not any more. Nowadays, it’s a much more complicated process with concepts like deductions, contributions, exemptions, taxation laws, union contracts, commissions, loans, bonus payments and other special payments/deductions. HR Payroll also provides input to downstream systems like Finance Accounting, General Ledger etc.
For the purpose of understanding the nuts and bolts of HR Payroll, let us define employees under the following broad categories. This distinction is required because the Payroll processing is vastly different for these categories. Most employers, big or small, follow this segregation at the topmost level, drilling down to different levels of complexity based on size and diversification of their businesses.
1. Non-Exempt
These employees are required to accurately record the time that they spend on work. If different types of work have different payment rates, then they are expected to record time against different “attendance/work codes”. If time is not recorded for work done, then no payments are made for that work.
Such employees are setup with an expected daily/weekly hours and basic rate of pay instead of a fixed/basic salary. If these employees work more than their schedule, then they are paid overtime at a normal or premium rate as defined.
In some cases, such employees are contracted through Labor Unions and are paid as per the terms and conditions as defined in the respective contracts.
2. Exempt
These employees are exempt from recording their time on work. Such employees are setup with a schedule (such as Mon-Fri 9-6) and are expected to report time only if some exception happens from their normal schedule (such as vacation or jury call or military duty). Unless they report an exception it is understood that they followed their schedule. Though employers do set up in/out devices for monitoring purpose and deviations are questioned, but these typically do not impact the payments unless there is a drastic variation.
Typically, management employees fall under this category while non-management employees are under Non-Exempt category.
2. Stages of Payroll processing
1. Employee setup
This is the static information which is typically set up for an employee at Hire time and updated typically at the start of a financial year. This is expected to remain the same till there is change in status of the employee, caused by events such as promotion, termination, demotion, change of job profile or location etc. Setup information includes data such as type of employee, job profile, work location, work schedule, leave entitlements, payroll cycle (weekly, semi-monthly, monthly etc), basic pay (or rate of pay), compensation and benefits, medical and insurance plans etc. This setup pretty much defines the way actual processing happens at the end of every payroll cycle.
2. Attendance/Absence Records
Non exempt employees record each hour and minute of work against relevant attendance code. This time is compared against the work schedule and determined if any premium is to be paid against overtime, holiday worked etc.
In case of absence in scheduled work hours, time is coded against the relevant absence codes. This is applicable for both exempt and non-exempt employees. Absences are compared against the leave entitlements, and determined if they need to be paid out or any deductions need to be made.
3. Calculation of Gross Pay
It is typically the summation of all earnings. For non-exempt employees, the figure arrived from number of hours X hourly rate can start as the basis while for exempt employees, the basic salary can for the basis. In this figure, various garnishments are added to arrive at the Gross Pay. These include overtime/holiday worked premiums, commissions, bonus payments, arrears from previous salaries, misc benefits etc.
4. Calculation of Net Pay
This calculated by subtracting the various deductions and taxes from the Gross Pay. Deductions may include loan payments, union dues, overpayments of previous salaries, contributions to misc health/benefit/insurance plans. Taxes are generally applied after deductions and include federal, state and local taxes. Net Pay is what an employee gets in his account.
3. Key Considerations in Testing
1. Setup & Locale: Payroll processing is different for each country, and sometimes there are major differences with in states in a country. Even though generic rules are good to have an overview, a thorough understanding of the local (financial, labor and taxation) laws is essential. Similarly, HR policies of a company that govern all the Payroll processing are important to learn and comprehend before jumping headlong into IT solution that implements those policies. Finally, knowledge of IT solution (implementation) is recommended as each vendor differs vastly from the other, and even in case of black box system testing, it does no harm to know the vital aspects.
2. Movements: Any kind of movement brings complexity to the system. Whether it was a Hire, Rehire, Termination, Transfer from one location to another, Promotion, Demotion: all of these visibly impact the payroll processing. Much of the complexity can be removed if a company prohibits movements in the mid of a pay period. Then, there is a clear demarcation, and the process can be easily developed and tested to take notice of such a movement. However, if there is no such restriction, then it is a nightmare…requiring much more analysis in understanding, implementing and testing the solution.
3. “Worked/Earned” vs. “Paid”: This concept is critical in case of reports which run out of Payroll. Consider this example: An employee works for the period 12/16/07 to 12/31/07. His Payroll processing happens on 1/3/08 and gets paid on 1/5/08. Now, assuming there is monthly report which displays employee wages. In this case, should the amount for the work done between 12/16/07 to 12/31/07 appear in Dec 07 report or Jan 08 report? There is no default answer to this question, and depends from case to case – determined by the business that uses the report. So, this question must definitely be asked for any Payroll report testing.
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Monday, May 18, 2009
IBM Rational Functional Testing
IBM Rational Functional Testing
By Vaibhav Agarwal
Now a days most of us (in IT industry) know/have heard about Automated testing tools.
Rational Functional Tester (RFT), as the name says, is an automated functional testing tool from Rational. This tool tests your application automatically without human intervention.
IBM Rational Functional Tester is an object-oriented automated testing tool that lets you test a variety of applications. You can quickly generate scripts by recording tests against an application, and you can test any object in the application, including the object’s properties and data. Rational Functional Tester offers you a choice of scripting language and development environment — Java in the Eclipse framework or Microsoft Visual Basic .NET in the Microsoft Visual Studio .NET Development Environment. That means that regardless of the language or platform your development staff has chosen, you should be able to integrate with them and leverage some of their expertise as you develop your automated tests.
Rational Functional Tester offers these powerful capabilities
• Play back scripts against an updated application
• Update recognition properties for an object
• Merge multiple test object maps
• Display associated scripts
• Use pattern-based object recognition
• Integrate with UCM
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
By Vaibhav Agarwal
Now a days most of us (in IT industry) know/have heard about Automated testing tools.
Rational Functional Tester (RFT), as the name says, is an automated functional testing tool from Rational. This tool tests your application automatically without human intervention.
IBM Rational Functional Tester is an object-oriented automated testing tool that lets you test a variety of applications. You can quickly generate scripts by recording tests against an application, and you can test any object in the application, including the object’s properties and data. Rational Functional Tester offers you a choice of scripting language and development environment — Java in the Eclipse framework or Microsoft Visual Basic .NET in the Microsoft Visual Studio .NET Development Environment. That means that regardless of the language or platform your development staff has chosen, you should be able to integrate with them and leverage some of their expertise as you develop your automated tests.
Rational Functional Tester offers these powerful capabilities
• Play back scripts against an updated application
• Update recognition properties for an object
• Merge multiple test object maps
• Display associated scripts
• Use pattern-based object recognition
• Integrate with UCM
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Working with Excel objects in QTP
Working with Excel objects in QTP
We create framework for automating the application. For this we need the independent structure for reporting and data. Excel plays a very important role in this approach.
QTP has its own test result displaying mechanism in the predefined format. Once the test is run, the result sheet is generated which gives you the insight of the script – stating the point of failures, warnings and passes.
We create customized checkpoint in the script and it is possible to customize the result file also depending upon the checkpoint created will be passed or failed.
In most of the cases we want to create summarized or detailed report of the entire test in excels. The reason to create customized report is that one is able to keep the file in central location and to create the report in our own format.
In this article we are going to learn the interaction of Excel with VBScript.
The whole mechanism goes in the following steps:
1. Understanding the hierarchy of Excel Application.
2. Creating the Excel Object
3. Opening an existing workbook or creating the new one
4. Setting the objects for various sheets in workbook.
5. Writing and fetching the data values in the cells.
6. Saving and closing the workbook
7. Closing the application and releasing the memory
We will go through each of the above stated steps with a suitable example to understand the approach properly.
Understanding the hierarchy of Excel Application
We will not go into the details of the complete hierarchy of the Excel application but to the extend what is required.
Excel Application
Workbooks
Sheets
Cells
Creating the Excel Object
The first step towards the process of reporting via excel is to create object of Excel. Reporting in Excel can either be done in backend, without making the application visible or u can make it appear to user once the process of writing or fetching the data is going. In either way creating of the Excel Application object is required.
It goes as:
Dim xl
Set xl = CreateObject(“Excel.Application”)
Opening an existing workbook or creating the new one
Once the excel object has been created, it means that excel application has been invoked but is not visible. So either one can perform the operations like that or make the application visible and then perform the operations.
To make the application visible:
xl.visible = true
To open a new Workbook:
xl.workbooks.Add
To open an existing Workbook:
xl.workbooks.Open(“File Name with complete path”)
Setting and accessing the objects of sheets in workbook.
Once the workbook has been opened, either existing or new one, we need to write some data in various cells in various sheets of that workbook.
By default there are 3 sheets in a workbook and various operations can be performed on. So one need create the object to reference these sheets as it becomes easy to access them and you don’t have to mention the complete hierarchy over and over again.
Say one has to create a reference for sheet with index i, which starts from 1
Set sht1 = xl.activeworkbook.sheets(i)
One can add or delete n number of sheets from the activeworkbook
To add a sheet in workbook –
xl.activeworkbook.sheets.add
To delete a particular sheet where i represent the index which starts from 1 –
xl.activeworkbook.sheets(i).delete
To change the name of the sheets –
xl.activeworkbook.sheeets(i).name = “Name of your choice”
To count the total number of sheets in the workbook
Cnt = xl.activeworkbook.sheets.count
Writing and fetching the data values in the cells
To write the data in Excel sheet, one should know the cell address in which the data has to be written. Same thing goes for accessing the data from the cells
To write the data in sheet2 cell address as D8, we write the following command. Cell address here is represented by row number followed by column number –
xl.activeworkbook.sheets(2).cells(8,4) = “hello”
To fetch the data from sheet3 cell address A7 –
Val = xl.activeworkbook.sheets(3).cells(7,1)
If one has already created the object of the particular sheet, you don’t have to write the complete hierarchy but simply –
Object.cells(row,col) = value
Saving and closing the workbook
Once the work completed you can save the newly created workbook to a specified location or save the changes made to already existing opened workbook.
To save as in case of new workbook
xl.activeworkbook.saveas “path_with_file_name.xls”
To save in case of existing workbook
xl.activeworkbook.save
To close the workbook
xl.activeworkbook.close
Closing the application and releasing the memory
To close the application
xl.quit
To release the memory of all the objects
Set xl = nothing
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
We create framework for automating the application. For this we need the independent structure for reporting and data. Excel plays a very important role in this approach.
QTP has its own test result displaying mechanism in the predefined format. Once the test is run, the result sheet is generated which gives you the insight of the script – stating the point of failures, warnings and passes.
We create customized checkpoint in the script and it is possible to customize the result file also depending upon the checkpoint created will be passed or failed.
In most of the cases we want to create summarized or detailed report of the entire test in excels. The reason to create customized report is that one is able to keep the file in central location and to create the report in our own format.
In this article we are going to learn the interaction of Excel with VBScript.
The whole mechanism goes in the following steps:
1. Understanding the hierarchy of Excel Application.
2. Creating the Excel Object
3. Opening an existing workbook or creating the new one
4. Setting the objects for various sheets in workbook.
5. Writing and fetching the data values in the cells.
6. Saving and closing the workbook
7. Closing the application and releasing the memory
We will go through each of the above stated steps with a suitable example to understand the approach properly.
Understanding the hierarchy of Excel Application
We will not go into the details of the complete hierarchy of the Excel application but to the extend what is required.
Excel Application
Workbooks
Sheets
Cells
Creating the Excel Object
The first step towards the process of reporting via excel is to create object of Excel. Reporting in Excel can either be done in backend, without making the application visible or u can make it appear to user once the process of writing or fetching the data is going. In either way creating of the Excel Application object is required.
It goes as:
Dim xl
Set xl = CreateObject(“Excel.Application”)
Opening an existing workbook or creating the new one
Once the excel object has been created, it means that excel application has been invoked but is not visible. So either one can perform the operations like that or make the application visible and then perform the operations.
To make the application visible:
xl.visible = true
To open a new Workbook:
xl.workbooks.Add
To open an existing Workbook:
xl.workbooks.Open(“File Name with complete path”)
Setting and accessing the objects of sheets in workbook.
Once the workbook has been opened, either existing or new one, we need to write some data in various cells in various sheets of that workbook.
By default there are 3 sheets in a workbook and various operations can be performed on. So one need create the object to reference these sheets as it becomes easy to access them and you don’t have to mention the complete hierarchy over and over again.
Say one has to create a reference for sheet with index i, which starts from 1
Set sht1 = xl.activeworkbook.sheets(i)
One can add or delete n number of sheets from the activeworkbook
To add a sheet in workbook –
xl.activeworkbook.sheets.add
To delete a particular sheet where i represent the index which starts from 1 –
xl.activeworkbook.sheets(i).delete
To change the name of the sheets –
xl.activeworkbook.sheeets(i).name = “Name of your choice”
To count the total number of sheets in the workbook
Cnt = xl.activeworkbook.sheets.count
Writing and fetching the data values in the cells
To write the data in Excel sheet, one should know the cell address in which the data has to be written. Same thing goes for accessing the data from the cells
To write the data in sheet2 cell address as D8, we write the following command. Cell address here is represented by row number followed by column number –
xl.activeworkbook.sheets(2).cells(8,4) = “hello”
To fetch the data from sheet3 cell address A7 –
Val = xl.activeworkbook.sheets(3).cells(7,1)
If one has already created the object of the particular sheet, you don’t have to write the complete hierarchy but simply –
Object.cells(row,col) = value
Saving and closing the workbook
Once the work completed you can save the newly created workbook to a specified location or save the changes made to already existing opened workbook.
To save as in case of new workbook
xl.activeworkbook.saveas “path_with_file_name.xls”
To save in case of existing workbook
xl.activeworkbook.save
To close the workbook
xl.activeworkbook.close
Closing the application and releasing the memory
To close the application
xl.quit
To release the memory of all the objects
Set xl = nothing
http://www.qacampus.com
http://www.crestech.in
http://www.crestechsoftware.com.au
Subscribe to:
Posts (Atom)