This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Oracle Retail Merchandising System is an integrated merchandising solution for retailers. The solution enables retailers to better manage, control and perform crucial day-to-day merchandising activities from new product introduction to automated replenishment to financial inventory valuation. Oracle's solution facilitates the ability to expand into new channels and provides the foundation for cross channel management.
Manages key foundation data: hierarchies, suppliers, locations, and items
Easily handles multiple brands, countries, and/or channels
Enables cross-chain and cross-channel visibility of retail and wholesale transactions
Provides flexible, extendable fields for easy process extensions
Supports multiple financial books in a single instance
ORMS is a complex, multi-lingual form based web application with Oracle Forms forming the user interface, Oracle 10g/11g forming the core database and PL/SQL, Pro*C being used in programming the business process and interaction between the UI and database. Operations performed on the application range from interacting with several forms containing different variables to executing various batch processes that automate several background and maintenance tasks.
Limitations of Manual Testing
Manual testing of application is a complex and time consuming task due to following reasons
Large amounts of data are to be entered at each step of testing.
Data from several tables is required to be validated.
Some test cases require batch execution. In such cases, no other test cases can be executed till the batch execution for current test case is completed.
Objectives of UAP
UAP aims to supplement the manual testing by providing automation scripts for several common test scenarios for different versions of Oracle Retail Applications
To design a base test automation framework that automates the steps in test process like
Application Interaction like interaction with Menus, Buttons, Text Fields etc.
Validation of data entered and generated at each step
Completion of batch execution as required without affecting other functionalities
To develop version specific test framework for Application Under Test(AUT)
Provide an object repository that can be used among different test scripts for AUT.
To develop automation test scripts that in turn use version specific test framework to test different functionalities for AUT.
The salient features of the project are
Automated regression testing that covers the mandatory tests involved in each build
Batch execution of test scripts that combines the execution of several test scripts that are required to be executed sequentially
Parallel execution of batches across different machines
Integrated reporting and performance monitoring tools that provide the execution statistics of batches
Test cases can be reused with test tool that is different than the one for which they are designed.
Better support for test case maintenance to cover new functionalities
In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test pre-conditions, and other test control and test reporting functions.
Although manual tests may find many defects in a software application, it is a laborious and time consuming process. In addition, it may not be effective in finding certain classes of defects. Test automation is the process of writing a computer program to do testing that would otherwise need to be done manually. Once tests have been automated, they can be run quickly and repeatedly. This is often the most cost effective method for software products that have a long maintenance life, because even minor patches over the lifetime of the application can cause features to break which were working at an earlier point in time.
Different approaches in Automation Testing are
Data Driven Approach: In Data driven approach of automation testing, the test scripts are designed in such a way that the test scripts validate a particular test scenario on a set of data stored in a central location like a flat file or a database.
Key Word Driven Approach: In Keyword driven approach, the design of test cases involves two steps
Identification Phase: In identification the common operations among different operations i.e. key words are identified by the domain experts.
Implementation Phase: In implementation phase, key words are implemented using tool specific API.
The test scripts are set of keywords that represent the logical flow of the execution of test case.
Modular Driven Approach: In modular driven approach, common operations in AUT are designed as modules using Automation tool's API. The test scripts are programs that contain these modules arranged to represent the flow of test case execution.
Model Based Approach: In model based approach, test cases are designed and executed using standard Modeling Design Approach. These models represent common behavior of AUT or different environment in which AUT works or different software testing strategies. These test cases are derived from the AUT's design model.
Hybrid Approach: Hybrid Testing frameworks are results of evolution of Standard Test frameworks across various projects over a period of time. Most test frameworks evolve in to Data Driven and Modular Driven Hybrids. Hybrid approaches are more robust as they combine the advantages of different approaches while negating their limitations.
HP Quick Test Professional
HP Quick Test Professional (QTP) is test automation software that is used to automate functional testing and regression testing through GUI for major software applications and environments like desktop applications, .NET, J2EE web services and web based environments. QTP operates by uniquely identifying the objects of Graphical User Interface and performing desired operations like clicking an element, selecting a checkbox, entering certain fields etc.
The main operational features of QTP are
QTP supports the automation of test cases by using key word driven approach. QTP can is for programming key words and execution of test cases design using these keywords. Several basic key words that denote elementary operations for UI elements on applications like clicking an element, validating the properties of elements (element name, element status etc.), setting various properties (enabling elements, setting values etc.).
QTP provides a robust verification mechanism by providing checkpoint objects. Checkpoint objects can be used to verify certain properties of Application Under Test (AUT) like value of pa particular field, data within a table, text on application screen etc. These checkpoint objects can be extended as per requirements of AUT
Exception Handling is done by use of recovery scenarios. In case of an unexpected failure during execution of a test case, recovery scenarios work to set the AUT to a safe state such that the test execution is terminated properly. These recovery scenarios can be used among different tests.
QTP can be extended to develop tests for applications that are not supported out of box. New functionalities can be developed by using applications framework to perform more complex operations.
QTP generates the results of test execution in XML format, which are easy to export for further analysis. A default Result Viewer presents results in user friendly format and provides support for exporting to HTML.
Selenium is a set of software tools that are used in test automation of web applications of different types. Selenium provides a set of extensible functions that allows locating different User Interface elements and validating the expected and actual behaviours and values of these elements. Selenium supports execution of test cases on different browser platforms.
The core components of Selenium suite are
Selenium Client API: Selenium Client APIs are used as an alternative to scripting in Selenese. The default Selenium Client APIs support development of test cases in various programming languages like Java, C#, Ruby and Python.
Selenium Remote Control Server (Selenium RC): Selenium RC is a web server programmed in java. It communicates with web browser through set of HTTP commands and facilitates in writing automated test cases for a given web application using any supported programming language, through Client APIs. Selenium RC runs as a daemon thread between test case and the instance of web browser on which test case is to be executed.
Selenium Web Driver: Selenium Web Driver is successor of Selenium RC. Unlike Selenium RC, in which a server controls the web browser for automation, Web Driver directly interacts with instance client browser. Selenium Web Driver provides basic features for interacting with different web browsers, which can be further extended as per domain requirements. Compared to Selenium RC, Web Driver has fewer calls between test case and web browser instance.
Selenium Grid: Selenium grid is a server that is used to execute tests in remote machines. In grid, a central server called hub provides a list of servers that provide access to instances Web Driver nodes that are in turn used for remote execution of test cases.
Main features of Selenium suite are
Each test instance is run in a sand boxed manner. This facilitates in parallel execution of different test case instances in a safe manner.
Web Driver supports execution of test cases among different browser platforms like Firefox, Internet Explorer, Google Chrome, Apple Safari and stock Android browser.
Using client API, test cases can be developed in various popular programming languages like Java, C#, Ruby and Python.
Support for integration with Testing Frameworks JUnit and TestNG.
TestNG is a testing framework that is used to design a broad set of test cases ranging from Unit Testing to Integration Testing. TestNG is inspired by standard Java Unit Test Framework; JUnit. It includes the functionalities of JUnit along with several new functionalities that are required to develop test cases for different levels of functional testing.
Main features of Test NG are
Parallel and timed execution of a particular test
Support for parameterised testing
Selective execution of test cases by using test groups
Integration with popular IDEs like Eclipse, NetBeans and IntelliJ IDE.
For Automation of Test Cases, a hybrid Automation Technique involving Key Word Driven Testing and Modular Driven Testing approach is followed.
Keyword Driven Testing Approach
In Keyword driven approach, the test scripts are designed as a table of key words independent of automation tool. A keyword is used to denote an elementary action that can be performed on the application.
An Example Key Word Driven Test for Login test scenario for an application is
The above test is stored in a spread sheet. The sheet is interpreted and the key words are implemented using a driver script designed from Automation Tool Specific API. Using keyword driven approach, the test scripts can be designed without any prior knowledge of specific programming language but requires strong domain specific knowledge.
Modular Driven Testing Approach
In Modular Driven testing, common test scenarios are designed as modules. These modules are arranged in a hierarchical manner to form a particular functionality of the application.
An Example for Test Script using modular driven approach for above Login test scenario is
The above modules are realised using tool specific API. Several of such modules form test scripts can be further used in more complex test cases. Modular driven approach is the most suitable method for automation of large, stable applications. However, if the test cases are required to be executed in a different automation tool, the entire test scripts should be redesigned using the API of new test tool. Also this approach requires the domain knowledge of the application under test along with programming knowledge required for developing modules using tool specific API.
Hybrid Testing Approach
In hybrid approach, the scripts are designed as a table of keywords, similar to keyword driven testing. However, the keyword corresponds to a more complex functionality of the application rather than an elementary function. Each key word is then realised by corresponding module using the tool specific API.
An example test script for this hybrid approach is
The test script is stored in a spreadsheet. The driver script loads the keywords from the spreadsheet and calls the appropriate modules from the functional library. The above keywords are realized using appropriate modules as follows
This hybrid approach has following advantages
Test scripts can be developed by the domain experts without any requirement of programming knowledge.
Framework can be extended whenever a new keyword is required.
In case if the automation tool is changed, only the framework implementing the keywords is to be modified. Same test scripts can be used with the new automation tool.
In automation using HP QTP, the test cases are designed as keywords and stored in .XLS and .ODS spreadsheets and the functional libraries, modules and driver scripts are developed in VBScript.
In Automation using Selenium, test cases are designed as keywords and stored in.XLS and .ODS spread sheets and the functional libraries, modules and driver scripts are developed as Java classes using Eclipse IDE.
Phases in Project Development
The project development has following phases
Phases in Execution of Test Case
The phases in execution of test case areE:\UML\Umlet\test proces.png
The project features are summarized as follows
Test Execution Environment
Application Execution Environment
Windows/ Web Browser/JavaApplet
Custom XML Based Object Repositories
Custom XPath based Repositories
Inbuilt Recovery Scenarios
Recovery Scenarios based on Java Exception Handling
Inbuilt Checkpoint Objects
TestNG assert() methods
Generation of Results
XML format created by QTP
HTML Format using TestNG
Tools used for Development
Firefox with Firepath and Firebug Extensions
Application Under Test (AUT)
Application for which test cases are to be automated.
Tool used to develop and execute test cases.
A program that executes the test script on automation tool.
A collection of GUI Objects in AUT used in different test scripts.
A mechanism used to handle commonly occurring application issues which can halt the execution of test case.
A set of inputs, execution preconditions, and expected outcomes developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.
A document providing detailed instructions for the execution of a test step found in one or more test cases.
A file containing sequence of instructions that are executed in order by automation tool to automate a particular test case.
A collection of test cases that are grouped together according to the behavior of application that is being tested.