The Software Testing Automation Framework (STAF) is an open source, multi-platform, multi-language framework designed around the idea of reusable components, called services (such as process invocation, resource management, logging, and monitoring).
STAF removes the tedium of building an automation infrastructure, thus enabling you to focus on building your automation solution. The STAF framework provides the foundation upon which to build higher level solutions, and provides a pluggable approach supported across a large variety of platforms and languages.
Visit More details: STAF
Thursday, November 19, 2009
Testing Cookies in Web Applications
A "cookie" is a small piece of information sent by a web server to store on a web browser so it can later be read back from that browser. This is useful for having the browser remember some specific information. These are small data files which act as unique identifiers and allow our site to remember a particular user. Cookies do not harm computer. Certain areas of our web site, such as our forums use cookies. Some times user’s personal information is stored in cookies and if someone hacks the cookie then hacker can get access to your personal information. Even corrupted cookies can be read by different domains and lead to security issues. This is why testing of website cookies is very important.
In this white paper, we will focus on basics of cookies world and also how to test the website cookies.
INTRODUCTION
In today’s world we use websites for numerous activities, like shopping, travel ticket booking. And here comes an important word “cookie” in the picture. Almost, everywhere cookies are used to store the information sent by web servers.
So, we will first focus on what exactly cookies are and how they work. What are cookies?
Cookie is small information stored in text file on user’s hard drive by web server. This information is later used by web browser to retrieve information from that machine. Generally cookie contains personalized user data or information that is used to communicate between different web pages. An example is when a browser stores your passwords and user ID's. They are also used to store preferences of start pages, both Microsoft and Netscape use cookies to create personal start pages.
Cookies are nothing but the user’s identity and used to track where the user navigated throughout the web site pages.Why Cookie?
The communication between web browser and web server is stateless. For example if you are accessing domain http://www.example.com/1.html then web browser will simply query to example.com web server for the page 1.html. Next time if you type page as http://www.example.com/2.html then new request is send to example.com web server for sending 2.html page and web server don’t know anything about to whom the previous page 1.html served.
What if you want the previous history of this user communication with the web server? You need to maintain the user state and interaction between web browser and web server somewhere. This is where cookie comes into picture. Cookies serve the purpose of maintaining the user interactions with web server.
How cookies work?
To exchange information files on the web, the HTTP protocol is used. There are two types of HTTP protocol: Stateless HTTP and Stateful HTTP protocol.
Stateless system
A stateless system has no record of previous interactions and each interaction request has to be handled based entirely on the information comes with it. For eg, if we enter http://www.example.com/sample.html into our web browser’s address bar and press Enter, then conversation between the browser and the example.com web server goes like this : Web browser will simply query to example.com web server for the page sample.html.
Once the browser receives the last byte of information using HTTP, the example.com web server essentially forgets about the request data. If now, we send some other request to the web server, it will execute upon the request, without memory of the earlier request. It does not need to remember the earlier request for the response of the new request. This isn’t bad for example.com website; no harm, no foul.
Stateful system
Are there are cases where state does matter for a web based system? The answer is YES, and here comes the Stateful system. Stateful HTTP protocols do keep some history of previous web browser and web server interactions and this protocol is used by cookies to maintain the user interactions.
Whenever user visits the site or page that is using cookie, small code inside that HTML page writes a text file on users machine called cookie. When user visits the same page or domain later time this cookie is read from disk and used to identify the second visit of the same user on that domain. Expiration time is set while writing the cookie. This time is decided by the application that is going to use the cookie.
Applications where cookies are used
* Online Ordering Systems: An online ordering system could be developed using cookies that would remember what a person wants to buy, this way if a person spends three hours ordering CDs at your site and suddenly has to get off the net they could quit the browser and return weeks or even years later and still have those items in their shopping basket.
* Website Tracking: Site tracking can show you places in your website that people go to and then wander off because they don't have any more interesting links to hit. It can also give you more accurate counts of how many people have been to pages on your site.
* Shopping: Cookies are used for maintaining online ordering system. Cookies remember what user wants to buy. What if user adds some products in their shopping cart and closes the browser window? When next time same user visits the purchase page he can see all the products he added in shopping cart in his last visit.
* Marketing: Some companies use cookies to display advertisements on user machines. Cookies control these advertisements.
* UserIds: Cookies can track user sessions to particular domain using user ID and password.
Death of a cookie!
When a web server sets a cookie into the system, it was optionally give it a “death” expiration date. When the date reaches, then the cookie gets deleted from the system.
If the web server does not give an expiration date to a cookie, then the cookie is a per-session cookie. Per-session cookies are deleted as soon as you close the current session of the browser. So, if the cookie is not having any death date, then as soon as the browser is closed, the cookie is no longer into your system.
Browser Cookie Settings
Listed below are examples of the steps taken to view your browser's cookies settings:
Changing cookie settings for Mozilla Firefox 1.5 (Adapted from the Firefox 1.5 integrated help system)
By default Firefox 1.5 accepts all cookies, including cookies which would allow a site to recognize you effectively forever. If you want to grant sites you trust the ability to store cookies permanently
Click Exceptions
Enter the site address (In this case it would be americanadoptions.com)
Click Allow.
Changing cookie settings for Internet Explorer 7
Click on the Tools menu and then click Internet Options
Click the Privacy tab, and then click Sites.
Type americanadoptions.com in the Address of Web site field.
Click Allow to always allow cookies from americanadoptions.com
Changing cookie settings for Internet Explorer 6
Click on the Tools menu and then click Internet Options
Click the Privacy tab, and then click Sites.
Type americanadoptions.com in the Address of Web site field.
Click Allow to always allow cookies from americanadoptions.com
Changing cookie settings for Netscape 6
Click Edit Menu
Click Preferences
Select Privacy & Security
Select Cookies
To view your cookie settings on a browser not listed above, refer to your browser's documentation.
Drawbacks of cookies
* Loss of site traffic: Site containing cookie will be completely disabled and can not perform any operation, if user has set browser options to warn before writing any cookie or disabled the cookies completely. And this results in loss of site traffic.
* Loads of cookies: If too many cookies are present on every page navigation and user has turned on option to warn before writing cookie, in that case this could turn away user from the web site and this could result in loss of site traffic and eventually loss of business.
* Valuable hard drive space: Cookies take up valuable hard drive space, so it may be to your advantage to delete a few on occasion, especially third-party cookies. Third-party cookies are placed on your computer by sites you haven’t visited. They usually come from companies who place ads on sites you have visited. Luckily, most browsers give you the option of rejecting only third-party cookies.
* Security: Some times user’s personal information is stored in cookies and if someone hacks the cookie then hacker can get access to your personal information. Even corrupted cookies can be read by different domains and lead to security issues. Some sites may write and store your sensitive information in cookies, which should not be allowed due to privacy concerns.
Cookie Testing
Now when we know the basics of cookie world, let’s address how to test sites that use cookies.
Disabling Cookies
This is probably the easiest way of cookie testing. What happens when all cookies are disabled? Start like this: Close all browsers delete all cookies from PC.
Now, open the website which uses cookies for actions. Now, perform the major functions in the website. Most of the time, these will not work because cookies are disabled. This isn’t a bug: disabling cookies on a site that requires cookies, disables the site’s functionality.
Is it obvious to the website user that he must have the cookies enables? Web servers are recognizing that attempts are made with disabled cookies, so, does it send a page with a normal message that cookies needs to be enabled before working?
There should not be any page crash due to disabling the cookies.
Selectively rejecting cookies
What happens when some of the cookies are accepted and some are rejected? If there are 10 cookies in web application then randomly accept some cookies say accept 5 and reject 5 cookies. For executing this test case you can set browser options to prompt whenever cookie is being written to disk, delete all previously saved cookies, close all open browsers and then start the test. Try to access major functionality of web site. On the prompt window you can either accept or reject cookie. What’s happening: pages are getting crashed or data is getting corrupted?
Corrupting cookies
This is the test which will test the site! For this, we need to know the cookies the web site is saving and the information that is stored in the text files. Manually edit the cookie in notepad and change the parameters to some vague values. For eg, change the content of the cookie, change the name of the cookie, and then perform actions in the website. In some cases corrupted cookies allow to read the data inside it for any other domain. This should not happen in case of your web site cookies. Note that the cookies written by one domain say rediff.com can’t be accessed by other domain say yahoo.com.
Cookie Encryption
There are websites, where we have no option other than saving sensitive data in cookie. Here it needs to be tested that the data stored in cookie is also getting stored in encrypted format.
Deletion of cookies
Access a website and allow it to write cookie. Now close all the browsers and manually delete the cookies. Again open the same website and try to work on it. Is it crashing?
Some times cookie written by domain say ABC.com may be deleted by same domain but by different page under that domain. This is the common case if you are testing some ‘action tracking’ web portal. Action tracking or purchase tracking is placed on the action web page and when any action or purchase occurs by user the cookie written on disk get deleted to avoid multiple action logging from same cookie. Check if reaching to your action or purchase page deletes the cookie properly and no more invalid actions or purchase get logged from same user.
Multi Browser testing
This is an important case to check if web application page is writing the cookies properly on different browsers and also the web site works properly using these stored cookies.
CONCLUSION
Cookies shouldn’t be put in the same category as the viruses, spam, or spyware that are often created to wreak havoc and chaos on computers. They are mostly benign tools to help you manage your time more efficiently on the Web. Plus, you have totally control over them if you think your secrecy is being violated. Therefore, accept or reject cookies as you want. And the testing should be done properly to check that website is working with different cookie setting. For demo Amazon.com is a very good website for good quality cookie usage.
Author:This article is written by Anamika Chowdhury from HCL.
In this white paper, we will focus on basics of cookies world and also how to test the website cookies.
INTRODUCTION
In today’s world we use websites for numerous activities, like shopping, travel ticket booking. And here comes an important word “cookie” in the picture. Almost, everywhere cookies are used to store the information sent by web servers.
So, we will first focus on what exactly cookies are and how they work. What are cookies?
Cookie is small information stored in text file on user’s hard drive by web server. This information is later used by web browser to retrieve information from that machine. Generally cookie contains personalized user data or information that is used to communicate between different web pages. An example is when a browser stores your passwords and user ID's. They are also used to store preferences of start pages, both Microsoft and Netscape use cookies to create personal start pages.
Cookies are nothing but the user’s identity and used to track where the user navigated throughout the web site pages.Why Cookie?
The communication between web browser and web server is stateless. For example if you are accessing domain http://www.example.com/1.html then web browser will simply query to example.com web server for the page 1.html. Next time if you type page as http://www.example.com/2.html then new request is send to example.com web server for sending 2.html page and web server don’t know anything about to whom the previous page 1.html served.
What if you want the previous history of this user communication with the web server? You need to maintain the user state and interaction between web browser and web server somewhere. This is where cookie comes into picture. Cookies serve the purpose of maintaining the user interactions with web server.
How cookies work?
To exchange information files on the web, the HTTP protocol is used. There are two types of HTTP protocol: Stateless HTTP and Stateful HTTP protocol.
Stateless system
A stateless system has no record of previous interactions and each interaction request has to be handled based entirely on the information comes with it. For eg, if we enter http://www.example.com/sample.html into our web browser’s address bar and press Enter, then conversation between the browser and the example.com web server goes like this : Web browser will simply query to example.com web server for the page sample.html.
Once the browser receives the last byte of information using HTTP, the example.com web server essentially forgets about the request data. If now, we send some other request to the web server, it will execute upon the request, without memory of the earlier request. It does not need to remember the earlier request for the response of the new request. This isn’t bad for example.com website; no harm, no foul.
Stateful system
Are there are cases where state does matter for a web based system? The answer is YES, and here comes the Stateful system. Stateful HTTP protocols do keep some history of previous web browser and web server interactions and this protocol is used by cookies to maintain the user interactions.
Whenever user visits the site or page that is using cookie, small code inside that HTML page writes a text file on users machine called cookie. When user visits the same page or domain later time this cookie is read from disk and used to identify the second visit of the same user on that domain. Expiration time is set while writing the cookie. This time is decided by the application that is going to use the cookie.
Applications where cookies are used
* Online Ordering Systems: An online ordering system could be developed using cookies that would remember what a person wants to buy, this way if a person spends three hours ordering CDs at your site and suddenly has to get off the net they could quit the browser and return weeks or even years later and still have those items in their shopping basket.
* Website Tracking: Site tracking can show you places in your website that people go to and then wander off because they don't have any more interesting links to hit. It can also give you more accurate counts of how many people have been to pages on your site.
* Shopping: Cookies are used for maintaining online ordering system. Cookies remember what user wants to buy. What if user adds some products in their shopping cart and closes the browser window? When next time same user visits the purchase page he can see all the products he added in shopping cart in his last visit.
* Marketing: Some companies use cookies to display advertisements on user machines. Cookies control these advertisements.
* UserIds: Cookies can track user sessions to particular domain using user ID and password.
Death of a cookie!
When a web server sets a cookie into the system, it was optionally give it a “death” expiration date. When the date reaches, then the cookie gets deleted from the system.
If the web server does not give an expiration date to a cookie, then the cookie is a per-session cookie. Per-session cookies are deleted as soon as you close the current session of the browser. So, if the cookie is not having any death date, then as soon as the browser is closed, the cookie is no longer into your system.
Browser Cookie Settings
Listed below are examples of the steps taken to view your browser's cookies settings:
Changing cookie settings for Mozilla Firefox 1.5 (Adapted from the Firefox 1.5 integrated help system)
By default Firefox 1.5 accepts all cookies, including cookies which would allow a site to recognize you effectively forever. If you want to grant sites you trust the ability to store cookies permanently
Click Exceptions
Enter the site address (In this case it would be americanadoptions.com)
Click Allow.
Changing cookie settings for Internet Explorer 7
Click on the Tools menu and then click Internet Options
Click the Privacy tab, and then click Sites.
Type americanadoptions.com in the Address of Web site field.
Click Allow to always allow cookies from americanadoptions.com
Changing cookie settings for Internet Explorer 6
Click on the Tools menu and then click Internet Options
Click the Privacy tab, and then click Sites.
Type americanadoptions.com in the Address of Web site field.
Click Allow to always allow cookies from americanadoptions.com
Changing cookie settings for Netscape 6
Click Edit Menu
Click Preferences
Select Privacy & Security
Select Cookies
To view your cookie settings on a browser not listed above, refer to your browser's documentation.
Drawbacks of cookies
* Loss of site traffic: Site containing cookie will be completely disabled and can not perform any operation, if user has set browser options to warn before writing any cookie or disabled the cookies completely. And this results in loss of site traffic.
* Loads of cookies: If too many cookies are present on every page navigation and user has turned on option to warn before writing cookie, in that case this could turn away user from the web site and this could result in loss of site traffic and eventually loss of business.
* Valuable hard drive space: Cookies take up valuable hard drive space, so it may be to your advantage to delete a few on occasion, especially third-party cookies. Third-party cookies are placed on your computer by sites you haven’t visited. They usually come from companies who place ads on sites you have visited. Luckily, most browsers give you the option of rejecting only third-party cookies.
* Security: Some times user’s personal information is stored in cookies and if someone hacks the cookie then hacker can get access to your personal information. Even corrupted cookies can be read by different domains and lead to security issues. Some sites may write and store your sensitive information in cookies, which should not be allowed due to privacy concerns.
Cookie Testing
Now when we know the basics of cookie world, let’s address how to test sites that use cookies.
Disabling Cookies
This is probably the easiest way of cookie testing. What happens when all cookies are disabled? Start like this: Close all browsers delete all cookies from PC.
Now, open the website which uses cookies for actions. Now, perform the major functions in the website. Most of the time, these will not work because cookies are disabled. This isn’t a bug: disabling cookies on a site that requires cookies, disables the site’s functionality.
Is it obvious to the website user that he must have the cookies enables? Web servers are recognizing that attempts are made with disabled cookies, so, does it send a page with a normal message that cookies needs to be enabled before working?
There should not be any page crash due to disabling the cookies.
Selectively rejecting cookies
What happens when some of the cookies are accepted and some are rejected? If there are 10 cookies in web application then randomly accept some cookies say accept 5 and reject 5 cookies. For executing this test case you can set browser options to prompt whenever cookie is being written to disk, delete all previously saved cookies, close all open browsers and then start the test. Try to access major functionality of web site. On the prompt window you can either accept or reject cookie. What’s happening: pages are getting crashed or data is getting corrupted?
Corrupting cookies
This is the test which will test the site! For this, we need to know the cookies the web site is saving and the information that is stored in the text files. Manually edit the cookie in notepad and change the parameters to some vague values. For eg, change the content of the cookie, change the name of the cookie, and then perform actions in the website. In some cases corrupted cookies allow to read the data inside it for any other domain. This should not happen in case of your web site cookies. Note that the cookies written by one domain say rediff.com can’t be accessed by other domain say yahoo.com.
Cookie Encryption
There are websites, where we have no option other than saving sensitive data in cookie. Here it needs to be tested that the data stored in cookie is also getting stored in encrypted format.
Deletion of cookies
Access a website and allow it to write cookie. Now close all the browsers and manually delete the cookies. Again open the same website and try to work on it. Is it crashing?
Some times cookie written by domain say ABC.com may be deleted by same domain but by different page under that domain. This is the common case if you are testing some ‘action tracking’ web portal. Action tracking or purchase tracking is placed on the action web page and when any action or purchase occurs by user the cookie written on disk get deleted to avoid multiple action logging from same cookie. Check if reaching to your action or purchase page deletes the cookie properly and no more invalid actions or purchase get logged from same user.
Multi Browser testing
This is an important case to check if web application page is writing the cookies properly on different browsers and also the web site works properly using these stored cookies.
CONCLUSION
Cookies shouldn’t be put in the same category as the viruses, spam, or spyware that are often created to wreak havoc and chaos on computers. They are mostly benign tools to help you manage your time more efficiently on the Web. Plus, you have totally control over them if you think your secrecy is being violated. Therefore, accept or reject cookies as you want. And the testing should be done properly to check that website is working with different cookie setting. For demo Amazon.com is a very good website for good quality cookie usage.
Author:This article is written by Anamika Chowdhury from HCL.
Automated Open-Source Unit Testing Software
The most widely used Java unit testing software is JUnit(http://jakarta.apache.org), an open-source package from the Apache Jakarta project (http://jakarta.apache.org). Because of its simplicity and popularity, IDE's, such as Borland JBuilder, have integrated JUnit into their IDE. JUnit is a foundation for unit testing Java software. It provides a framework for common functions required for unit testing such as asserting results, gathering success and failures from multiple tests, and reporting mechanism. JUnit is designed to test individual pieces of code, i.e., specific methods, and assert their expected results.
One limitation of JUnit is that it cannot test server-side java code (backend components in a J2EE container, i.e. EJBs, Tag Libs, Filters, etc.). Jakarta Cactus (http://jakarta.apache.org/cactus/) was developed to solve this challenge. Cactus is built on top up JUnit, and provides functionality to test in-container objects.
HttpUnit (http://jakarta.apache.org/httpunit/) is another example of a package built on top of JUnit, which provides an API to handle web conversations (stateful information such as cookies).
Like Cactus and HttpUnit, there are many other unit testing packages which are built on top of JUnit, as it provides a fertile infrastructure to create and run automated unit testing for java software. Examples can be found in the Jakarta project, as well as http://opensource.sourceforge.net
visit:www.livrona.com
One limitation of JUnit is that it cannot test server-side java code (backend components in a J2EE container, i.e. EJBs, Tag Libs, Filters, etc.). Jakarta Cactus (http://jakarta.apache.org/cactus/) was developed to solve this challenge. Cactus is built on top up JUnit, and provides functionality to test in-container objects.
HttpUnit (http://jakarta.apache.org/httpunit/) is another example of a package built on top of JUnit, which provides an API to handle web conversations (stateful information such as cookies).
Like Cactus and HttpUnit, there are many other unit testing packages which are built on top of JUnit, as it provides a fertile infrastructure to create and run automated unit testing for java software. Examples can be found in the Jakarta project, as well as http://opensource.sourceforge.net
visit:www.livrona.com
Automated Unit Testing
Methods (public) are to be concise, decoupled working blocks for effective programming. As such, public methods can be tested to ensure that they process (and sometimes return) correctly. Unit tests ensure the behavior of these components are correct prior to system integration, both with correct and incorrect/invalid inputs. During the lifecycle of classes, methods are added, changed, renamed, and removed constantly.
At the end of the day, regardless of functional changes, new requirements, etc, these classes and methods should continue to function. Automated Unit Testing can ensure this component functionality without tedious/repetitive testing! Quite often, developer's changes to add new functionality causes errors to show up in previous code! With automated testing in place, if a specific development efforts missed the big picture, developers will know quickly, as the automated tests can run with nightly builds. Managing additions and changes now becomes much clearer and easier.
Visit:www.livrona.com
At the end of the day, regardless of functional changes, new requirements, etc, these classes and methods should continue to function. Automated Unit Testing can ensure this component functionality without tedious/repetitive testing! Quite often, developer's changes to add new functionality causes errors to show up in previous code! With automated testing in place, if a specific development efforts missed the big picture, developers will know quickly, as the automated tests can run with nightly builds. Managing additions and changes now becomes much clearer and easier.
Visit:www.livrona.com
Testing BEA Portal Applications: Open-Source Automated Unit and Functional Testing
Testing is often a last-thought, last-minute process at the end of a project life-cycle. However, designing tests first, and automating them will leave your code bug free, and your boss smiling.
I want this functionality done by Monday.Unfortunately, Monday (formerly PwC Consulting) was bought out by IBM Global Services. So, the Monday isn't who's doing it.. it's when the code is due! Faced with that deadline, the first thing a developer has in mind is getting code done as quickly as possible. What they might miss, however, is that the most effective task they could do first is creating a test plan. Even better, an automated one.
Often with a rapidly approaching deadline, developers are very focused on delivering specific pieces of functionality. As such, the greater picture is sometimes lost. Developing a test plan before coding helps lay out complete functionality needs and system responses to the designated requirements. Creating automated test plans offer an even greater pay back: they not only offer the benefit of helping a developer think through the design, but also ensure that each build has working code. With automated testing in place, developers can focus on developing individual components, ensuring they meet the test parameters, and ultimately integrate these classes to meet the functional requirements. As a developer thinks through application design via an upfront test plan design, the developer will have a head start on meeting the code deadline.
Automated testing offers a number of advantages to manual, repetitive testing. Not only do automated test plans help test new requirements, they also help ensure old ones continue to be met. Manual testing is tedious, and many mistakes are made as testers re-run the same scripts over and over. Automated testing frees up resources, allowing testers to ensure new functionality matches its specifications, while allowing developers the freedom to continue product enhancements. As new releases bring new functionality and new developers, previous code implementation design may have been forgotten/lost. Automated testing ensures that previous functionality continues to work, despite code changes, allowing for a robust, rapid response environment.
Many developers are unsure of the test phases and their purposes, as there several stages of testing. Listed below are typical stages that many software development firms follow:
Test Stage Name What does it Mean
Unit - Testing individual methods/classes.
* System - Testing group of classes which interface with a particular system (usually with the system stubbed out).
* Integration (End-To-End) - Testing system integration, ensuring data integrity and expected responses between systems.
* Functional - Testing that an application meets all functional specifications given, including positive and negative cases.
* Load - Testing systems to ensure they can handle expected volumes while still meeting response times.
* Stress - Testing systems to see where their limits are and identify bottlenecks.
* User Acceptance Testing (UAT) - Final testing by the business user community.
The foundation of each stage is based on two components, performing an action or actions and assertion of the result. With this simplistic approach, automated tests can be used to run an action and evaluate the systems response.
for more details visit:www.livrona.com
I want this functionality done by Monday.Unfortunately, Monday (formerly PwC Consulting) was bought out by IBM Global Services. So, the Monday isn't who's doing it.. it's when the code is due! Faced with that deadline, the first thing a developer has in mind is getting code done as quickly as possible. What they might miss, however, is that the most effective task they could do first is creating a test plan. Even better, an automated one.
Often with a rapidly approaching deadline, developers are very focused on delivering specific pieces of functionality. As such, the greater picture is sometimes lost. Developing a test plan before coding helps lay out complete functionality needs and system responses to the designated requirements. Creating automated test plans offer an even greater pay back: they not only offer the benefit of helping a developer think through the design, but also ensure that each build has working code. With automated testing in place, developers can focus on developing individual components, ensuring they meet the test parameters, and ultimately integrate these classes to meet the functional requirements. As a developer thinks through application design via an upfront test plan design, the developer will have a head start on meeting the code deadline.
Automated testing offers a number of advantages to manual, repetitive testing. Not only do automated test plans help test new requirements, they also help ensure old ones continue to be met. Manual testing is tedious, and many mistakes are made as testers re-run the same scripts over and over. Automated testing frees up resources, allowing testers to ensure new functionality matches its specifications, while allowing developers the freedom to continue product enhancements. As new releases bring new functionality and new developers, previous code implementation design may have been forgotten/lost. Automated testing ensures that previous functionality continues to work, despite code changes, allowing for a robust, rapid response environment.
Many developers are unsure of the test phases and their purposes, as there several stages of testing. Listed below are typical stages that many software development firms follow:
Test Stage Name What does it Mean
Unit - Testing individual methods/classes.
* System - Testing group of classes which interface with a particular system (usually with the system stubbed out).
* Integration (End-To-End) - Testing system integration, ensuring data integrity and expected responses between systems.
* Functional - Testing that an application meets all functional specifications given, including positive and negative cases.
* Load - Testing systems to ensure they can handle expected volumes while still meeting response times.
* Stress - Testing systems to see where their limits are and identify bottlenecks.
* User Acceptance Testing (UAT) - Final testing by the business user community.
The foundation of each stage is based on two components, performing an action or actions and assertion of the result. With this simplistic approach, automated tests can be used to run an action and evaluate the systems response.
for more details visit:www.livrona.com
CodeProject: White Box Testing Technique. Free source code and programming help
Software is tested from two different perspectives:
(1) Internal program logic is exercised using “white box” test case design techniques.
(2) Software requirements are exercised using “black box” test case design techniques.
In both cases, the intent is to find the maximum number of errors with the minimum amount of effort and time.
White-box testing of software is predicated on close examination of procedural detail. Logical paths through the software are tested by providing test cases that exercise specific sets of conditions and/or loops. The "status of the program" may be examined at various points to determine if the expected or asserted status corresponds to the actual status.
Visit More details:White Box Testing Technique
(1) Internal program logic is exercised using “white box” test case design techniques.
(2) Software requirements are exercised using “black box” test case design techniques.
In both cases, the intent is to find the maximum number of errors with the minimum amount of effort and time.
White-box testing of software is predicated on close examination of procedural detail. Logical paths through the software are tested by providing test cases that exercise specific sets of conditions and/or loops. The "status of the program" may be examined at various points to determine if the expected or asserted status corresponds to the actual status.
Visit More details:White Box Testing Technique
Monday, October 5, 2009
Acceptance Test Plan
The client at their place performs the acceptance testing. It will be very similar to the system test performed by the Software Development Unit. Since the client is the one who decides the format and testing methods and testing methods as part of acceptance testing,there is no specific clue on the way they will carry out the testing.
But it will not differ much from the system testing.Assume that all the rules,which are applicable to system test,can be implemented to acceptance also.
Since this is just one level of testing done by the client for the overall product,it may include test cases including the unit and integration test level details.
A sample Test Plan Outline along with their description is as shown below:
Test Plan Outline:
1. BACKGROUND: This item summarizes the functions of the application system and the tests to be performed.
2.INTRODUCTION:
3.ASSUMPTIONS:Indicates any anticipated assumptions which will be made while testing the application.
4.TEST ITEMS:List each of the items (programs) to be tested.
5.FEATURES TO BE TESTED: List each of the features (functions or requirements),which will be tested or demonstrated by the test.
6.FEATURES NOT TO BE TESTED:Explicitly lists each feature,function,or requirement which won't be tested and why not.
7.APPROACH:Describe the data flows and test philosophy.Simulation or Live execution,etc. This section also mentions all the approaches,which will be followed at the various stages of the test execution.
8.ITEM PASS/FAIL CRITERIA:Itemized list of expected output and tolerances.
9.SUSPENSION/RESUMPTION CRITERIA:Must the test run from start to completion? under what circumstances it may be resumed in the middle? Establish check-points in long tests.
10.TEST DELIVERABLES:What,besides software,will be delivered? We have to identify all possible deliverables to the customer and should be clearly documented,the typical deliverables could be
a)Test Requirement document
b)Test Strategy
c)Test Plan
d)Test case design docs and RTM's
e)Test execution Results and Reporting
f)Metrics Report
g)Test summary report
11.TESTING TASKS:Functional tasks(example.,equipment set up) Administrative tasks
12.ENVIRONMENTAL NEEDS:
a)Security clearance
b)Office space & equipment
c)Hardware/software requirements
13.RESPONSIBILITIES:
a)who does the tasks in section 10?
b)what does the user do?
14.STAFFING & TRAINING:
15.SCHEDULE:
16.RESOURCES:
17.RISKS & CONTINGENCIES:
18.APPROVALS:
The schedule details of the various test passes such as Unit tests,Integration tests,System Test should be clearly mentioned along with the estimated efforts.
But it will not differ much from the system testing.Assume that all the rules,which are applicable to system test,can be implemented to acceptance also.
Since this is just one level of testing done by the client for the overall product,it may include test cases including the unit and integration test level details.
A sample Test Plan Outline along with their description is as shown below:
Test Plan Outline:
1. BACKGROUND: This item summarizes the functions of the application system and the tests to be performed.
2.INTRODUCTION:
3.ASSUMPTIONS:Indicates any anticipated assumptions which will be made while testing the application.
4.TEST ITEMS:List each of the items (programs) to be tested.
5.FEATURES TO BE TESTED: List each of the features (functions or requirements),which will be tested or demonstrated by the test.
6.FEATURES NOT TO BE TESTED:Explicitly lists each feature,function,or requirement which won't be tested and why not.
7.APPROACH:Describe the data flows and test philosophy.Simulation or Live execution,etc. This section also mentions all the approaches,which will be followed at the various stages of the test execution.
8.ITEM PASS/FAIL CRITERIA:Itemized list of expected output and tolerances.
9.SUSPENSION/RESUMPTION CRITERIA:Must the test run from start to completion? under what circumstances it may be resumed in the middle? Establish check-points in long tests.
10.TEST DELIVERABLES:What,besides software,will be delivered? We have to identify all possible deliverables to the customer and should be clearly documented,the typical deliverables could be
a)Test Requirement document
b)Test Strategy
c)Test Plan
d)Test case design docs and RTM's
e)Test execution Results and Reporting
f)Metrics Report
g)Test summary report
11.TESTING TASKS:Functional tasks(example.,equipment set up) Administrative tasks
12.ENVIRONMENTAL NEEDS:
a)Security clearance
b)Office space & equipment
c)Hardware/software requirements
13.RESPONSIBILITIES:
a)who does the tasks in section 10?
b)what does the user do?
14.STAFFING & TRAINING:
15.SCHEDULE:
16.RESOURCES:
17.RISKS & CONTINGENCIES:
18.APPROVALS:
The schedule details of the various test passes such as Unit tests,Integration tests,System Test should be clearly mentioned along with the estimated efforts.
Special Testing Methods
This covers the different special tests like load/volume testing,stress testing,interoperability testing etc.These testing are to be done based on the nature of the product and it is not mandatory that every one of these special test must be performed for every product.
Apart from the above sections,the following sections are addressed,very specific to system testing.
1.System Testing Tools
2.Priority of functional groups
3.Naming convention for test cases
4.Status reporting mechanism
5.ETVX criteria
6.Build/Refresh criteria
Apart from the above sections,the following sections are addressed,very specific to system testing.
1.System Testing Tools
2.Priority of functional groups
3.Naming convention for test cases
4.Status reporting mechanism
5.ETVX criteria
6.Build/Refresh criteria
Functional Groups and the Sequence
The requirements can be grouped in terms of the functionality.Based on this,there may be prosperities also among the functional groups.
For Example:In a banking application,anything related to customer accounts can be grouped into one are,anything related to inter-branch transactions may be grouped into one area etc.
Same way for the product being tested,these areas are to be mentioned here and the suggested sequence of testing of these areas,based on the priorities are to be described.
For Example:In a banking application,anything related to customer accounts can be grouped into one are,anything related to inter-branch transactions may be grouped into one area etc.
Same way for the product being tested,these areas are to be mentioned here and the suggested sequence of testing of these areas,based on the priorities are to be described.
What is to be tested?
This section defines the scope of system testing,very specific to the project.Normally the system testing is based on the requirements.All requirements are to be verified in the scope of system testing.This covers the functionality of the product.A part from this what special testing is performed are also stated here.
Subscribe to:
Posts (Atom)



