Recently i have worked on two open source testing tools , and i found selenium as one of the best open source web testing tool available .. here below i m listing down how we can use selenium IDE..
How to create a test plan in Selenium IDECreating a test plan in Selenium IDE is very easy, so we will use it to create few simple tests to begin with.
1. Install Selenium IDE 0.8.7, a Firefox plugin.
2. After installing Selenium please restart your Firefox browser for the plugin to be activated.
3. Now you should see a new added menu item named Selenium IDE under your Firefox Tools menu.
4. Open / browse the site for which you want to prepare a test case.
5. Start Selenium IDE from Firefox Tools->Selenium IDE.
6. Browse some pages.
7. Now click red button to stop recording.
At this point you will see Selenium automatically recording your actions. Carefully note the commands, target and value. You can create and insert your own commands/ modify or even delete them. We will show some examples below. In the next section we will see how we can modify the generated tests to suit our needs.
How to create / modify / delete Selenium commands
The default commands generated by Selenium when you are browsing the page as a normal user should be modified to make the test more robust and to add test cases to it.
1. Let's replace all click commands by clickAndWait. click simply clicks the specified link and goes on to execute the next command without waiting. On the other hand clickAndWait waits for the new page to loaded before executing the next command. clickAndWait should be used to make more robust test cases.
2. Insert assertTextNotPresent command after each clickAndWait command to confirm a text must not be present in the browsed page.
3. Use assertTextPresent command to confirm a text must be present in the browsed page.
4. Finally to test your test plan please click green arrow button to play from the begining or to play from start point.
5. Export the test plan as java file by Selenium IDE File->Export Test As->Java - Selenium RC (for example the file name is SeleniumSTSanityTest.java)
6. Then close your Firefox Selenium ID.
How to run above test plan (automatically generated java file from Selenium IDE) in command line?
1. Download Selenium RC.
2. Unzip it under the same directory where SeleniumSTSanityTest.java (exported test plan as java file from Selenium ID) was saved.
3. Install junit.
4. Go to directory where you unzip selenium-remote-control-1.0-beta-1-dist.zip file.
5. Open a terminal and do the steps below-
a. cd selenium-remote-control-1.0-beta-1/selenium-server-1.0-beta-1
b. java -jar selenium-server.jar (to run the server in interactive mode execute java -jar selenium-server.jar -interactive)
c. If you get an error like Error: com.thoughtworks.selenium.SeleniumException: ERROR Server Exception: sessionId should not be null; has this session been started yet? then ensure that the browser is in the PATH before running the server. For example, you want to run the test in Firefox. Then you should do next two steps.
d. locate firefox-bin (for example it returns /usr/lib/firefox-1.5.0.12/firefox-bin)
e. export PATH=$PATH:/usr/lib/firefox-1.5.0.12/firefox-bin;
Note: There is an alternative way to fix above error (browser is not in path). Simply replace chrome with browser PATH in SeleniumSTSanityTest.java file. For example:
line
setUp("http://floratec.blogspot.com", "*chrome");
becomes
setUp("http://floratec.blogspot.com", "*firefox /usr/lib/firefox-1.5.0.12/firefox-bin");
in SeleniumSTSanityTest.java.
To run the test in opera browser replace chrome with opera.
6. Now the selenium server is running and you have to run the Java client located in selenium-remote-control-1.0-beta-1/selenium-java-client-driver-1.0-beta-1.
7. Open another terminal.
a. export CLASSPATH=.:selenium-remote-control-1.0-beta-1/selenium-java-client-driver-1.0-beta-1/selenium-java-client-driver.jar:/usr/share/java/junit.jar
b. javac SeleniumSTSanityTest.java
c. java SeleniumSTSanityTest
8.The automatically generated java file SeleniumSTSanityTest.java is likely to have some defects. Fix it by comparing with the example below
:import com.thoughtworks.selenium.
*;import junit.framework.
*;import java.util.regex.Pattern;
public class SeleniumSTSanityTest extends SeleneseTestCase { public void
setUp()
throws Exception { setUp(http://floratec.blogspot.com, "*chrome"); // to run the test in opera replace chrome with opera }
public void testSimpleThoughts() throws Exception { selenium.open(""); assertFalse(selenium.isTextPresent("WordPress database error: [")); assertTrue(selenium.isTextPresent("2003-2008"));
selenium.open("/index.php/category/programming/java");
selenium.waitForPageToLoad("30000");
assertFalse(selenium.isTextPresent("WordPress database error: ["));
assertTrue(selenium.isTextPresent("2003-2008"));
selenium.click("//img[@alt='Übersetzen Sie zum Deutsch/German']"); selenium.waitForPageToLoad("30000"); assertFalse(selenium.isTextPresent("WordPress database error: [")); assertTrue(selenium.isTextPresent("2003-")); selenium.click("//img[@alt='Přeložit do Čech/Czech']"); selenium.waitForPageToLoad("60000"); assertFalse(selenium.isTextPresent("WordPress database error: [")); assertTrue(selenium.isTextPresent("2003")); } public static Test suite() { return new TestSuite(SeleniumSTSanityTest.class); } public static void main(String args[]) { junit.textui.TestRunner.run(suite()); }}
Friday, April 17, 2009
Wednesday, April 8, 2009
Software as a Service
Software as a Service
DefinitionSoftware as a Service (SaaS) is a model of software delivery where a company adopts specific activities that provide customers access to software, alleviating that customer from the maintenance and daily technical operation and support of business and/or consumer software. SaaS is a model of software delivery rather than a market segment; software can be delivered using this method to any market segment including home consumers, small business, medium and large business.
Objective
SaaS is built on the legacy of the ASP model, but modernized and enhanced by today’s robust web services integration capabilities, increased bandwidth and bandwidth availability, and more mature infrastructure.
Why SaaS
Software as Services provides clients access to business functionality remotely as a service. As organizations seek new and less costly methods to acquire and pay for business applications, business partners are increasingly being asked to deliver their software on demand with usage-based pricing. Software as Services offers customers lower costs that are aligned with usage, minimal up front expense, rapid implementation, and time to value, plus reduced risk. The SaaS market forecast is to reach US$10.7B by 2009. Software-as-services is on the cusp of going mainstream — both as an application delivery/pricing model and as an architectural model.
SaaS model
Software as a Service (SaaS), also known as software on demand, is a new model that is causing a profound shift in the way that applications are delivered and consumed. SaaS refers to software that is accessed via a web browser, typically on a subscription basis. Fundamentally different from the traditional model of application delivery, in which the customer acquires a perpetual license and assumes responsibility for the software's implementation and ongoing management, SaaS presents significant advantages to both customers and vendors
SaaS Strategic Offering
· Open new markets, revenue streams, and distribution channels
· Provide a stable, recurring revenue model
· Afford consolidation of development and support efforts around single versions of code
Key characteristics of software delivered by SaaS
The key characteristics of SaaS software include:
Network-based access to commercially available (e.g., not custom) software
Network-based management of commercially available software
Activities that are managed from central locations rather than at each customer's site, enabling customers to access applications remotely via the Web
Application delivery that typically is closer to a one-to-many model (single instance, multi-tenant architecture) than to a one-to-one model. This includes architecture, pricing, partnering, and management characteristics
Types of SaaS Providers
There are primarily two types of SaaS providers.
1. Application service provider (ASP) where a customer purchases and brings a copy of software to a hosting company, or the hosting company offers widely available software for use by customers (e.g. hosting Microsoft Office) and making that available across the web to customers who pay a fee per month for access to the software. There is a separation between a licensing fee and a monthly fee that is paid to the maker of the software and the “hoster” of the software as appropriate.
2. Software on-demand where a company offers software to customers specifically built for one-to-many hosting. This means that one copy of the software is installed for use by many companies who access the software across the web. There is no division between licensing and hosting fees, and where there is little to no customization of software for each customer.
ASP versus SaaS
Plenty of ASPs bloomed and wilted with the dot-com boom and bust, but what those vendors did provide applications on demand - is alive and well and poised for a rebound. Failure of ASPs was attributed to customers demanding extensive customization on the part of the service providers. That blew apart the ASPs business model, resulting in the subsequent marketplace carnage. The reason for moving away from the term ASP is that the ASP generation was merely traditional client-server applications with HTML front ends added as an afterthought. These applications were hosted by third-parties who ordinarily did not have application expertise, but were managed servers. Because the applications were not written as net-native applications, performance was poor and application updates were no better than self managed applications. In comparison, SaaS is more like business process outsourcing, and its vendors might be called business service providers. The current net-native SaaS applications or independent portions are updated regularly, many daily.
SaaS – Model Diagram
The above model diagram depicts how SaaS functions
How can SaaS model be achieved
Companies need to find the applications they use that are not core to their business and that can be utilized as a commodity service. Companies don't need to overspend on utility-type services. Vendors are creating utility offerings so that business services can be bought and have software as a service. They're creating capabilities and expecting that those can be bought in new ways. It can be achieved via 2 ways
1. Host: To become a host to all the software vendors by partnering with then and then provide quality services to the customer world
2. Vendor. To come up with commercially available software and then tie up with hosters so as to find a platform to have the software available as services.
The leader would be one who has expertise and infrastructure to host such a platform and even has capabilities to come up with commercial software.
Potential Advantages - SaaS
Ø Software as a Service (SaaS) delivery model presents significant new sales opportunities. The more established vendors can move downstream and capture revenue from the companies that could not afford the licensing and maintenance costs of software under the old perpetual license model, while smaller and emerging software vendors can now successfully compete with the larger players.
Ø The SaaS model lends itself to a variety of marketing techniques, many of which are extremely well suited to the small-to-midsize or emerging software company with limited marketing resources. In fact, one of the key advantages of the SaaS model from a vendor perspective is the ability to utilize effective low-cost marketing techniques to tell their story and convince potential buyers of the value of their solution.
Ø The techniques are typically easy to implement and are highly effective at producing, capturing, and capitalizing on inbound traffic in a very cost-effective manner
Ø SaaS model is inherently flexible. As technology is constantly evolving, many companies have found themselves burdened with expensive software solutions that no longer meet requirements. Over time, this accumulation of "shelf-ware" has heightened resistance toward new investments in enterprise applications. SaaS makes it easy for customers to select the applications that they need, and eliminate the ones that they don't.
Ø SaaS eliminates end-of-quarter discounting pressures and enables software companies to enjoy predictable streams of recurring revenue.
Ø the rapid evolution of the SaaS development cycle lends itself to improved vendor-customer relationships, as it pushes the software company to release fixes and enhancements much more quickly that in the perpetual license model.
Challenges - SaaS
Ø Complex issues involved with building the service delivery capabilities necessary to support SaaS offerings.
Ø To live up to the end users demand of 100% uptime, appropriate Service Level Agreements, and 24*7 call center support
Ø Meeting the above demand requires 24x7 application and systems management, hosting, networking and security infrastructures, disaster recovery capabilities, change management policies and procedures.
Ø Form and retain a team of experts in operations and engineering who have previously designed, built, and managed complex infrastructures.
Ø Because the application is essentially delivered as a service, the software company must be entirely focused on the customer experience, or risk losing business. In the pay-as-you-go model, vendors are being judged on a month-to-month basis, and there is added pressure to produce rapid improvements to the application.
Remarks & Conclusion
The numerous advantages of SaaS over the perpetual license-based model of software delivery have created a significant opportunity for software vendors. The time is right for business processes on demand and more than 50% of software business is envisaged to be relying on SaaS model in the next 5 years. It is therefore highly recommended to explore more in this field and to use this model as an additional mode of revenue generation given the wide expertise the organization has in software arena.
DefinitionSoftware as a Service (SaaS) is a model of software delivery where a company adopts specific activities that provide customers access to software, alleviating that customer from the maintenance and daily technical operation and support of business and/or consumer software. SaaS is a model of software delivery rather than a market segment; software can be delivered using this method to any market segment including home consumers, small business, medium and large business.
Objective
SaaS is built on the legacy of the ASP model, but modernized and enhanced by today’s robust web services integration capabilities, increased bandwidth and bandwidth availability, and more mature infrastructure.
Why SaaS
Software as Services provides clients access to business functionality remotely as a service. As organizations seek new and less costly methods to acquire and pay for business applications, business partners are increasingly being asked to deliver their software on demand with usage-based pricing. Software as Services offers customers lower costs that are aligned with usage, minimal up front expense, rapid implementation, and time to value, plus reduced risk. The SaaS market forecast is to reach US$10.7B by 2009. Software-as-services is on the cusp of going mainstream — both as an application delivery/pricing model and as an architectural model.
SaaS model
Software as a Service (SaaS), also known as software on demand, is a new model that is causing a profound shift in the way that applications are delivered and consumed. SaaS refers to software that is accessed via a web browser, typically on a subscription basis. Fundamentally different from the traditional model of application delivery, in which the customer acquires a perpetual license and assumes responsibility for the software's implementation and ongoing management, SaaS presents significant advantages to both customers and vendors
SaaS Strategic Offering
· Open new markets, revenue streams, and distribution channels
· Provide a stable, recurring revenue model
· Afford consolidation of development and support efforts around single versions of code
Key characteristics of software delivered by SaaS
The key characteristics of SaaS software include:
Network-based access to commercially available (e.g., not custom) software
Network-based management of commercially available software
Activities that are managed from central locations rather than at each customer's site, enabling customers to access applications remotely via the Web
Application delivery that typically is closer to a one-to-many model (single instance, multi-tenant architecture) than to a one-to-one model. This includes architecture, pricing, partnering, and management characteristics
Types of SaaS Providers
There are primarily two types of SaaS providers.
1. Application service provider (ASP) where a customer purchases and brings a copy of software to a hosting company, or the hosting company offers widely available software for use by customers (e.g. hosting Microsoft Office) and making that available across the web to customers who pay a fee per month for access to the software. There is a separation between a licensing fee and a monthly fee that is paid to the maker of the software and the “hoster” of the software as appropriate.
2. Software on-demand where a company offers software to customers specifically built for one-to-many hosting. This means that one copy of the software is installed for use by many companies who access the software across the web. There is no division between licensing and hosting fees, and where there is little to no customization of software for each customer.
ASP versus SaaS
Plenty of ASPs bloomed and wilted with the dot-com boom and bust, but what those vendors did provide applications on demand - is alive and well and poised for a rebound. Failure of ASPs was attributed to customers demanding extensive customization on the part of the service providers. That blew apart the ASPs business model, resulting in the subsequent marketplace carnage. The reason for moving away from the term ASP is that the ASP generation was merely traditional client-server applications with HTML front ends added as an afterthought. These applications were hosted by third-parties who ordinarily did not have application expertise, but were managed servers. Because the applications were not written as net-native applications, performance was poor and application updates were no better than self managed applications. In comparison, SaaS is more like business process outsourcing, and its vendors might be called business service providers. The current net-native SaaS applications or independent portions are updated regularly, many daily.
SaaS – Model Diagram
The above model diagram depicts how SaaS functions
How can SaaS model be achieved
Companies need to find the applications they use that are not core to their business and that can be utilized as a commodity service. Companies don't need to overspend on utility-type services. Vendors are creating utility offerings so that business services can be bought and have software as a service. They're creating capabilities and expecting that those can be bought in new ways. It can be achieved via 2 ways
1. Host: To become a host to all the software vendors by partnering with then and then provide quality services to the customer world
2. Vendor. To come up with commercially available software and then tie up with hosters so as to find a platform to have the software available as services.
The leader would be one who has expertise and infrastructure to host such a platform and even has capabilities to come up with commercial software.
Potential Advantages - SaaS
Ø Software as a Service (SaaS) delivery model presents significant new sales opportunities. The more established vendors can move downstream and capture revenue from the companies that could not afford the licensing and maintenance costs of software under the old perpetual license model, while smaller and emerging software vendors can now successfully compete with the larger players.
Ø The SaaS model lends itself to a variety of marketing techniques, many of which are extremely well suited to the small-to-midsize or emerging software company with limited marketing resources. In fact, one of the key advantages of the SaaS model from a vendor perspective is the ability to utilize effective low-cost marketing techniques to tell their story and convince potential buyers of the value of their solution.
Ø The techniques are typically easy to implement and are highly effective at producing, capturing, and capitalizing on inbound traffic in a very cost-effective manner
Ø SaaS model is inherently flexible. As technology is constantly evolving, many companies have found themselves burdened with expensive software solutions that no longer meet requirements. Over time, this accumulation of "shelf-ware" has heightened resistance toward new investments in enterprise applications. SaaS makes it easy for customers to select the applications that they need, and eliminate the ones that they don't.
Ø SaaS eliminates end-of-quarter discounting pressures and enables software companies to enjoy predictable streams of recurring revenue.
Ø the rapid evolution of the SaaS development cycle lends itself to improved vendor-customer relationships, as it pushes the software company to release fixes and enhancements much more quickly that in the perpetual license model.
Challenges - SaaS
Ø Complex issues involved with building the service delivery capabilities necessary to support SaaS offerings.
Ø To live up to the end users demand of 100% uptime, appropriate Service Level Agreements, and 24*7 call center support
Ø Meeting the above demand requires 24x7 application and systems management, hosting, networking and security infrastructures, disaster recovery capabilities, change management policies and procedures.
Ø Form and retain a team of experts in operations and engineering who have previously designed, built, and managed complex infrastructures.
Ø Because the application is essentially delivered as a service, the software company must be entirely focused on the customer experience, or risk losing business. In the pay-as-you-go model, vendors are being judged on a month-to-month basis, and there is added pressure to produce rapid improvements to the application.
Remarks & Conclusion
The numerous advantages of SaaS over the perpetual license-based model of software delivery have created a significant opportunity for software vendors. The time is right for business processes on demand and more than 50% of software business is envisaged to be relying on SaaS model in the next 5 years. It is therefore highly recommended to explore more in this field and to use this model as an additional mode of revenue generation given the wide expertise the organization has in software arena.
Subscribe to:
Posts (Atom)