JSystem
Encyclopedia
JSystem is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 framework for writing and running automated tests. The JSystem Automation Framework is written in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 and based on several open source java projects, using Eclipse as the development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

.

JSystem Automation Framework supports the full testing lifecycle, providing a solution for various types of users. JSystem enables the user to start with a small setup performing simple tests, and then enlarge the solution, providing a flexible solution for growing user needs.

The Four Layers of Automation

Automation projects written with JSystem are based on the four layers of automation architecture.
JSystem divides the testing development process and architecture into four layers that simplifies and streamlines the development process; these layers are defined as follows:


SystemObject Layer

The first layer of JSystem is the SystemObject (also called Driver) layer. For every managed object
Managed object
In telecommunication, the term managed object has the following meanings:1. In a network, an abstract representation of network resources that are managed. With "representation", we mean not the actual device that is managed, but also the device driver, that communicates with the device...

 in the system under test there is a SystemObject. The SystemObjects are written in Java and form the abstraction layer
Abstraction layer
An abstraction layer is a way of hiding the implementation details of a particular set of functionality...

 that controls the managed object.

SystemObject features and development guidelines

  • Hides Complexity - This layer acts as a mediator that exposes the SUT to the Tests layer applying a simple user friendly interface that “speaks” in the language of the QA engineer. All the connectivity issues are hidden from the person who writes the tests.
  • Reporting - Every SystemObject operation (method) leaves a remark, reporting its action. In some cases it collects information for analysis.
  • Error Handling - If a step fails the test framework receives an exception directly circumventing the tests themselves.
  • Analyzes Results - The SystemObject layer enables a “unite” mechanism to analyze results.

Tests Cases Layer

The Tests layer in JSystem is composed of tests and fixtures.

JSystem tests are based on http://www.junit.org/ tests. Once the SystemObjects have been written, preparing the tests is a simple process, usually performed by a QA engineer with a programming orientation.

Fixtures are used to configure the SUT. Fixtures are Java classes that are responsible for bringing the system to the state required by the test. By using fixtures, the tests author can reuse configuration code and separate it from testing code.

Guidelines for writing tests

  • Keep it simple - Do not complicate the test logic. Each test should be designed for a specific SUT. Do not design tests to run on a variety of SUT’s.
  • Keep it short - It is preferable to have a large number of shorter tests rather than a small number of longer, complicated tests.
  • Use fixtures - Use fixtures to configure your SUT, and share the fixtures between tests.
  • Use Reports and Documentation - If the tests are well documented, analyzing scenario execution results will be faster. It is crucial that you plan your project in such a way that it can scale to hundreds and thousands of tests.
  • Start with an Easy Test - Start with simple and stable tests. Do not start to automate the most complex part of your system first.

Test Scenarios Layer

Tests are grouped together in a hierarchical manner within a scenario. JSystem scenarios are written as Ant (http://ant.apache.org/) scripts. In addition to grouping the tests the user can parametrize a test, add flow control
Flow control
In data communications, flow control is the process of managing the pacing of data transmission between two nodes to prevent a fast sender from outrunning a slow receiver. It provides a mechanism for the receiver to control the transmission speed, so that the receiving node is not overwhelmed with...

 elements (if/else, for, switch/case), control the Java Virtual Machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...

 (JVM) on which the test are activated, manage scenarios, execute scenarios, and analyze scenario execution results.

Management Layer

The Management layer comprises applications and services which purpose is to support enterprise development and execution of automation projects.

JSystem Components



The JSystem framework is composed of the following components:

1. Services Java API - exposes JSystem services

2. JSystem Drivers (System Objects)- Java modules used to interfaces with devices and applications in the system under test.

3. JRunner - GUI application interface used for creating and running tests scenarios.

4. JSystem Agent - Execution engine used to run scenarios in a distributed setup.

5. JSystem Eclipse plug-in - accelerates the development environment setup and enforces JSystem conventions.

JSystem Framework Services

The JSystem Framework services refer to the set of API software applications
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 provided by the JSystem Automation Framework that enable the user to develop and provide improved and streamlined project automation.

  • SUT Independence - The SUT Independent Framework Service interacts directly with the system object. This service independence refers to the ability of the user to apply the same test to different DUT and SUT products and change parameters within the tests.
  • Reports–The Reports Framework Service interacts directly with the system object layer and the test/fixtures layer, providing transparent information access
    Information access
    Information access is a term used to describe an area of research at the intersection of informatics, Information Science, Information Security, Language Technology, Computer Science, and library science....

     to all other automation layers. When a scenario is run by JSystem the test case layer operates the system objects on the SUT or DUT the report framework service then extracts the results. These results are delivered to the reports framework service and are collated in the central management report mechanism called the JReporter application.
  • Analysis–The Analysis Framework Service extracts statistics from the Report Framework Service connecting directly to results produced by the Test/Fixture layer. The Test/Fixture layer sends a request to the System Object layer for an analysis of a specific function; the results are then collated via the Report Framework Service and sent to the user.
  • Monitor–The Monitor Framework Service runs a service that is performed in parallel to the test being performed. The Monitor Framework Services are written by the onsite Java programmer, according to the specification requirements of the product being tested.
  • Fixture–The Fixture Framework Service connects directly to the Test/Fixture and the Scenario layers, similar the tests the fixtures are written by the on site Java programmer. The objective of the fixture is to bring the SUT to a state that enables the JSystem to perform tests. A fixture can be assigned to either a scenario or a Test/Fixture layer.
  • System Object Lifecycle–The system object lifecycle
    Object lifetime
    In computer science, the object lifetime of an object in object-oriented programming is the time between an object's creation till the object is no longer used, and is destructed or freed.In object-oriented programming , the meaning of creating objects is far more subtle than simple...

     service controls the initiation, system object state during execution and termination of the system object, and helps the user to implement a system object that works well with the pause and graceful stop features de-allocating resources when the execution ends.
  • Multi User Support - The Multi User
    Multi-user
    Multi-user is a term that defines an operating system or application software that allows concurrent access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving the...

     Framework Service provides the test implementer a set of test variables that can be applied to a test or fixture via the scenario loaded the JSystem JRunner. This provides extended functionality and capabilities allowing the user to create and customize tests within the scenario by changing value options from within the “Test Info” tab. The user can construct variations to the test that sits inside the scenario. These selections are dynamic and intelligent, meaning that both the tasks and their content change dynamically according to the variable values chosen from the “Test Info” “Sub-Tab”.

JSystem Testing Approach

The JSystem approach to today’s testing requirements makes a clear distinction between the graphic user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

 (GUI) and the business logic, testing the business logic as a separate entity from the user interface.

The JSystem solution is built on a committed API. By focusing on the business logic JSystem enables the user to take full advantage of the automated testing environment, providing increased testing stability and simplifying the testing project for the end user
End-user
Economics and commerce define an end user as the person who uses a product. The end user or consumer may differ from the person who purchases the product...

.

When dealing with an automation project JSystem assumes that the automation is a software project. The JSystem testing framework is augmented with a dynamic methodology and a robust architecture
Systems architecture
A system architecture or systems architecture is the conceptual model that defines the structure, behavior, and more views of a system.An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structure of the system...

 solution. The JSystem drivers enable the user to connect to multiple devices commonly found in a typical lab environment.

JSystem Key Focus

The central issue the JSystem Automation Framework solves is the maintenance aspect of the automation project providing the user tools to keep project maintenance to a minimum.

JSystem does this by focusing on four key aspects:
  • Maintainability–JSystem enables the user to adjust the automation changes via a modulated system referred to as system objects (SystemObjects), These SystemObjects communicate directly to the business logic of the product. JSystem has the ability to connect directly to the application API enabling low maintenance migration.
  • Visibility–JSystem provides a tool set that enables all user profiles the ability to easily interact with each other by clearly aligning the level of information they require. This stream lines the testing process by displaying the relevant information to each user profile.
  • Scalability–The ability for a test project to grow in scale from ten’s of tests, to hundreds of tests to, thousands of tests. The JSystem application suite is built on an expandable code foundation that envisions project scaling and growth from the outset of the testing project.
  • Simplicity–By clearly defining the user profiles level of understanding the system divides the test project into layers. These layers offer simplified environments for each user profile.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK