2. IntroductionThis section of the TestMaker User Guide provides you with an introduction into the goals, methodology, and techniques present in TestMaker. It also answers the question: What skills and background does it take for my team to be successful with PushToTest TestMaker? Introduction to PushToTest TestMakerPushToTest TestMaker is an Open Source Test (OST) technology. TestMaker repurposes a single test script as a functional test, load and performance test, and business service monitor. This section of the TestMaker User Guide provides you with an introduction into the goals, methodology, and techniques present in TestMaker. It also answers the question "What skills and background does it take for my team to be successful with PushToTest TestMaker?" OverviewThis section contains the following sections: Learn From The Tutorials Quickly Understand The Repurposing Methodology Overview of PushToTest TestMaker An Indepth Look at PushToTest TestMaker TestNodes For a Distributed Test Environment How To Succeed with PushToTest TestMaker Match The Tools and Methodology To Your Team's Skills PushToTest Professional Services Off-Shore Test Development Service Available Optimizing Your HP/Mercury Tools with PushToTest Pay-As-You-Go OnDemand Test Services Available
Learn From The Tutorials Quickly
![]() PushToTest TestMaker comes with tutorials to rapidly teach you how to develop tests of Web applications, Rich Internet Applications (RIA) using Ajax techniques, SOAP/WSDL-based Web services, Service Oriented Architecture, and Web applications. Building Tests of Web Applications Using TestGen4Web Building Tests of Rich Internet Applications Using Ajax and Selenium Building Tests of SOAP/WSDL Web Services Using soapUI Building Front-To-Back Tests Using Multiple Test Tools Additionally, PushToTest provides a set of tutorials, including the videos and screencasts, here.
Understand The PushToTest "Repurposing" Methodology
![]() PushToTest implements a unique Repurposing Methodology to reuse tests as functional tests, load and performance tests as well as business service monitors.
PushToTest is a single platform that enables unit tests to be reused as functional tests, integration tests, load and performance tests and business service monitors. The PushToTest methodology uses unit tests, protocol handlers and data production libraries (DPLs) to enable test reuse on a single integrated test platform. Testers build tests in a variety of provided ways: using browser-based record / playback utilities for web applications, using a graphical toolkit for SOAP-based web services using scripting languages (JAVA, Jython, JRuby, Groovy and others) for Message Queue (ESB) email and Service Oriented Architecture (SOA) tests. PushToTest runs tests in a TestNode, a distributed web service that operates the test in one or more concurrently running threads (each thread acts as a simulated user). PushToTest TestMaker operates web application and Ajax tests as load and performance tests by running the tests in a TestNode. The TestNode operates the test using HTMLUnit. HTMLUnit is an open-source framework that provides a programmatic simulation of a web browser. HTMLUnit uses Rhino, the Mozilla JAVAScript engine, to run JAVAScript and Ajax programs. This approach makes it easy to run hundreds to thousands of simulated users in a load and performance test. The alternative would be to run the test by instantiating a browser for each simulated user. The following charts illustrates the three types of testing that PushToTest provides for Web application tests specifically. ![]() Type 1 is for functional testing of a Web or Ajax application. PushToTest provides Selenium as a plug-in for Firefox. Selenium provides record / playback capability through the browser. Selenium drives the browser as a user would: clicking buttons, filling-in web forms and asserting incorrect responses from the server. This is a great, interactive mechanism showing issues with the test and web application immediately. PushToTest provides Selenium IDE as an add-on to the Firefox browser. Selenium IDE records tests, provides a test script editor, offers autocomplete for the Selenese command language, offers debugging features such as breakpoints, features logging functions and includes on-line help.
![]() Selenium IDE records user interaction with the Web application into a Selenese test file. Selenese is a domain specific language for testing. For instance, the first command in the test shown above opens the BrewBizWeb example application, loading the sign-in page. Once you create a test in Selenium IDE the test runs in the Selenium Grid and in the PushToTest TestMaker distributed test environment as a functional test, load and performance test and business service monitor. Selenium is a plug-in for Firefox. The tests you author in Firefox operate in Microsft Internet Explorer, Opera and Safari, or in the TestNode environment using HTMLUnit / Rhino. Type 2 is for functional testing across multiple browsers. This testing checks to see how Microsoft Internet Explorer (IE), Opera, Safari and other browsers operate the application. PushToTest operates the Selenese test in a grid of machines using the Selenium Grid system. PushToTest installs the Selenium Grid onto a machine and remotely operates the recorded test using the browser installed on the Grid machine. Type 3 is for functional testing from remote locations, load and performance testing and business service monitoring. The TestNode operates the Selenese test remotely using HTMLUnit / Rhino. A simple TestScenario document orchestrates which nodes will run the test and how many concurrently running simulated users operate the test. As a functional test, the TestNode operates the test once and reports the results.
![]()
PushToTest TestMaker shows the success / failure and duration for each step within the test for functional tests. For load and performance tests the TestNode operates the test in sets of concurrently running simulated users. PushToTest summarizes the results into a Scalability Index.
For service monitoring the TestNode operates the test periodically. PushToTest shows a dashboard for each monitor.
![]() The TestNode running a test in HTMLUnit and Rhino is a different environment from Firefox. HTMLUnit and Rhino emulate most of the browser functions but not all functions. For example, each browser implements its own JAVAScript engine, HTML DOM rendering engine, Security and browser features. Many times testers will need to use a DOM, HTML and JAVAScript debugging tool such as Firebug and a network protocol analyzer (such as the Network Monitor in TestMaker or Wireshark / Ethereal) to debug the Selenese test and configure the HTMLUnit to operate the test. Lastly, PushToTest provides the Data Production Library framework to provide tests with operational test data at test runtime. You will need an operational data strategy to identify the test data your test needs and how to identify and locate the data. By understanding the PushToTest reuse methodology your organization and your teams’ efforts will be understood, compelling and supported, as it progresses to success.
Appropriate Architectures for TestMaker
![]() Software developers, QA technicians, and IT managers have many architectural patterns to build software applications. PushToTest TestMaker provides testing and remediation against the following popular architectural patterns, plus many more. The Domain Model uses an application server, servlet engine, EJB / Plain Old JAVA Object, Model View Controller, Workflow and Object-Relational Mapping technology to coordinate data, stored in a relational database. The user interface is a Web browser using HTML / HTTP protocols. PushToTest drives Domain Model applications using HTTP protocols. ![]() The Enterprise Service Bus Model (ESB) uses a centralized service bus to transform and deliver messages between a set of installed and reusable services. Each service uses the most appropriate protocol (for instance, soap, POP / IMAP, HTTP and Ajax) for its application. PushToTest drives ESB applications using multiple native protocols and accessing services through standard bus adaptors.
![]() The Enterprise Web 2.0 Model uses enhanced Web browser functions to provide an enhanced user experience and new functions. For instance, a Web browser provides live maps using Ajax protocols between a browser, servlet interface, XML parser and POJO. PushToTest drives Web 2.0 applications using multiple native protocols, including the Ajax, RSS and HTTP protocols as shown below. ![]() The virtualization model uses shared virtual containers to operate multiple services. For instance, in one virtual container an application operates an instance of the Domain Model and in a second container an application operates an ESB Model. PushToTest provides a distributed set of TestNodes to drive applications and services deployed in a virtualized model. ![]() The PushToTest environment provides scalability, performance and service monitor tests for the Domain, ESB, Enterprise Web 2.0 and Virtualization Models. Software developers introduce extensions to the Domain, ESB and Enterprise Web 2.0 Models everyday, including new protocols, new user interfaces and new encoding styles to message between consumers and services. The PushToTest environment provides an open-source platform and test runtime to build tests for these models. The environment is fully extensible to support new protocols, interfaces, encoding styles and libraries. ![]() PushToTest TestMaker is a distributed test runtime. TestMaker operates tests developed in scripting languages (Java, Jython, JRuby, and many others) or tests recorded in Selenium, soapUI, and TestGen4Web. The following illustrates a typical use of the TestMaker platform: 1) Author a new test using Selenium in Firefox. Save the test to a Selenese file. 2) Write a TestScenario to give the PushToTest test runtime all the instructions it needs to operate the Selenium test. The TestScenario identifies the Selenium test file and the location of one or more TestNodes. 3) The PushToTest test runtime makes a SOAP request to the TestNode and passes the Selenium test file to the TestNode. 4) The Selenium test communicates over native Web and Ajax protocols to the Application or Service under test. The TestNode provides Protocol Handlers (PH) and Data Production Libraries (DPLs) to help the Selenium test use the needed operational test data and native communication protocols of the Application or Service under test. 5) As the test operates, the PushToTest Monitor (PTTMonitor) observes resources of the server running the Application or Service and the TestNodes operating the test. At the end of the test the TestMaker Results Analysis package correlates the monitor data to the operation of the test use cases for automatic root cause analysis and mitigation. 6) As the test operates the PushToTest test runtime takes snapshots of live test results data and begins to analyze the results. The TestMaker Results Analysis engine generates up to 350 different reports to understand the results and deliver actionable knowledge. 7) The whole of the PushToTest TestMaker platform may be run as a Software As A Service (SAAS) using the PushToTest As A Service (PAAS) and Governance Statistics Result Set (GSRS) SOA interface. This provides full integration with build environments, continuous integration environments, and registry/repository services. PushToTest TestMaker delivers a rich environment for developing tests including these resources and abilities:
TestNodes For a Distributed Test Environment
![]() PushToTest runtime is a distributed environment to operate tests. PushToTest TestMaker is built on the PushToTest TestNetwork foundation enabling tests to run on one or more TestNodes; which is the distributed TestMaker environment.
![]() PushToTest runtime provides a distributed test environment using TestNodes. A TestNode is the PushToTest runtime environment implemented in Java and runs anywhere Java runs including Windows, Linux, Solaris, Macintosh and more. The PushToTest console communicates with TestNodes over SOAP protocols using port 80, therefore, changes to firewall settings to distribute a set of TestNodes is not necessary.
![]() The TestNode environment works equally well for software developers, QA technicians and IT managers. For instance, TestMaker users install TestNodes on a set of remote machines to see, from many different vantage points, how well applications are serving the users. TestMaker users also install a set of TestNodes on a rack of servers within a QA lab to generate high level concurrent use of an application with high level scalability and performance testing. Lastly, TestMaker users install TestNodes on a series of different networks to identify service performance of network service providers. From Record/Playback to Test Object Scripting
![]() PushToTest built TestMaker for use by software developers, QA testers, and IT managers. These three groups often have a wide variety of skills, backgrounds, and skills. TestMaker delivers a set of record/playback utilities to graphically create test use cases quickly and easily. In modern Web applications, Service Oriented Architecture (SOA,) and complex information systems, record/playback may be a good way to start but often test authors need an object-oriented test scripting system to accomplish tests of modern applications and services.TestMaker provides native support and architectural patterns for all the popular scripting languages, including JAVA, Jython, Groovy, PHP, Ruby and many others for the tests that require srcipting for functional testing. TestMaker includes a Transformer to automatically transform recorded tests into Java or Jython test scripts and classes. See the Options drop-down menu -> Transformer command in TestMaker. Tests of Web applications, Rich Internet Applications, REST, and SOA applications require communication over the native protocols of the systems, including HTTP, HTTPS, SOAP, XML-RPC, Telnet and email protocols. TestMaker deliver an extensible protocol handler library (Test Object Oriented Library (TOOL)) that comes fully integrated to enable your test use case scripts to speak these native protocols to the application under test. TestMaker makes it easy to transform unit tests into data-driven functional tests. TestMaker delivers Data Production Libraries (DPLs) to provide tests with operational test data from comma separated value files, relational databases, and Web services. DPLs are used to provide tests with input data and validation data. DPLs also make it easy to reuse a test between development, staging, preproduction and production environments by simply changing the source of the DPL data at test time. The test runtime environment automatically turns these same functional unit tests into load tests, scalability and performance tests, regression and remediation tests and service monitors for QA technicians, IT operations managers and CIOs. These runtime load tests and service monitors integrate into Service Registry / Repository products, database and application performance optimization and root-cause analysis tools. For example, software developers introduce extensions to the Domain, ESB and Enterprise Web 2.0 Models, including new protocols, new user interfaces and new encoding styles to message between consumers and services. The PushToTest environment provides an open-source platform and test runtime to build tests for these models. The environment is fully extensible to support new protocols, interfaces, encoding styles and libraries.The PushToTest runtime uses a TestScenario XML document to define scalability, performance and service monitor tests. The Governance platform stores the TestScenario XML document, which is the key to turning unit tests into functional, regression and load tests and service monitors. PushToTest provides many options to build tests:
This unique approach from PushToTest provides a new way to leverage any enterprise's software development, QA and IT efforts resulting in major cost-savings to the company.
Advantages of TestMaker
![]() PushToTest TestMaker has several advantages for software developers, QA techicians and IT managers. These advantages are:
How To Succeed with PushToTest TestMaker
![]() PushToTest provides Open Source Test (OST) technology and services to help you and your organization succeed. We are often asked: Match The Tools and Methodology To Your Team's Skills
![]() The goal of most organizations is to predictably provide information services to customers, vendors, employees and partners. Many times this means developing test skills in your own team (internally or outsourced to an off-shore partner). Test With Your Internal TeamTrain your internal team to stand-up on their own feet to generate and operate tests and understand the results. Identify the key roles and the individuals that will fill those roles. To be successful with PushToTest your team will need to fill the following roles:
Sometimes your organization is missing the skills to be successful or they need the most rapid jumpstart available to success. PushToTest recommends:
Test With An Off-Shore Outsource PartnerMany organizations take advantage of off-shore engineering services to staff their development and test efforts. To utilize all the resources effectively, we recommend having a local internal team with an Application Domain Expert, Test Engineer, Engineering Support Technician and Manager. This group can then provide mentoring and technical support services to the test engineering resources of the off-shore partner. The internal team should develop the initial test use cases and unit tests, train the off-shore partner’s people to run the tests with the TestNodes provided (load test injector services) remotely. Train them to build their own unit tests with your test requirements. PushToTest TestMaker is a distributed test environment where a TestMaker console orchestrates test operation on a distributed network of TestNodes. This is ideal for outsourced development teams, which operate tests remotely on your network of TestNodes. PushToTest provides free mission-critical resources TestMaker open-source software, self-guided tutorials and community support for your organization to succeed. PushToTest recommends you budget 3 - 4 weeks for your team to develop the required skills on their own to succeed. Outsource Your Test ProjectsMany organizations apply the expert test resources of an outsource test services company. This is often the fastest way to build, operate and analyze your information systems for functionality, load and performance scalability and on-going service delivery SLA compliance through service monitoring. PushToTest recommends engaging PushToTest Global Services consulting. Use PushToTest’s test experts to solve your test needs. After the consulting engagement your organization keeps the PushToTest TestMaker platform for continued use. Several organizations have succeeded by outsourcing their test projects like:
Budget The Right Amount of Time
![]() PushToTest TestMaker is a platform for testing a wide variety of software applications. PushToTest recommends budgeting an appropriate amount of time for your team to learn the platform. The following table summarizes previous experiences PushToTest had in working with customers:
Off-Shore Test Development Service Available
![]() Did you know that PushToTest offers offshore test development and support at very competitive rates? Optimizing Your HP/Mercury Tools with PushToTest
![]() Enhance your HP/Mercury LoadRunner testing and QualityCenter processes across the full SOA life cycle with PushToTest TestMaker. Here are three key integration points for maximizing the value of HP testing tools for SOA with PushToTest TestMaker: 1) Provides a Virtual Services Environment for QTP and LoadRunner for Functional and Load testing. TestMaker repurposes unit tests and tests build with Selenium, soapUI, and TestGen4Web to simulate user behavior, including operation of ESB and BPM technology. Repurposing enables your developers, QA testers, and IT managers to have a common framework throughout the Software Development Life Cycle (SDLC.) TestMaker is ideal for agile environments where developers and architects build tests first. To learn more see: Pay-As-You-Go OnDemand Test Services Available
![]() Pay-as-you-go testing is now available from PushToTest. Have a test to run but you do not have the budget to buy an entire test package? PushToTest Test OnDemand is now available! QuickStart Packages Available
![]() PushToTest provides a complete suite of software and services to helpyou succeed in surfacing performance issues in your IT systems. PushToTest software provides an integrated solution for testing and monitoring your services, including Web applications, Web Services, With the Proof Of Concept (POC) QuickStart you get everything you need to immediate develop and operate tests: What If My Team Just Doesn't Get It To Work?If your team is not able to build and operate tests within 5-7 business days, then we recommend you give PushToTest a call. PushToTest offers expert services to get you up and running tests quickly and efficiently. We have been providing this kind of help to organizations for years. Sometimes your team just needs a little more training, othertimes your team needs a jump-start where PushToTest Services builds your first test as a model for future tests. PushToTest even offers a complete "TurnKey" option where PushToTest experts build, operate, and analyze your application and service performance and optimize the service for better performance and scalability. Please click here to tell us about your challenges and receive our free response.
|
















