Subscribe by Email


Showing posts with label FitNesse. Show all posts
Showing posts with label FitNesse. Show all posts

Wednesday, January 23, 2013

What kind of testing engines are supported by Fitnesse?


Fitnesse testing tool is typically a testing method designed for providing a highly usable interface around the frame work called FIT. Therefore, it is mostly intended to support the agile style of regression testing and acceptance testing. In this style of regression and acceptance testing, all the functional testers collaborate together with the developers in order to come up with a good testing suite. 

- Fitnesse testing revolves around the idea of the black – box testing. 
- The system under test is taken to be a black box. 
- Output generated in response to the already defined inputs is used to perform tests against the considered black box.
- The job assigned to the functional tester is to design the tests in function specific sense and use fitnesse testing tool to express them. 
- On the other side a software developer is assigned the job of making a connection between the SUT and the Fitnesse tool so that the execution of the tests can take place and the two outputs could be compared. 
- The basic idea behind this whole testing process is to develop a forced collaboration among the developers and the testers so that the mutual understanding of the system’s requirements can be improved.
- Four components constitute the testing process through fitnesse namely:
  1. A wiki page
  2. A testing engine
  3. A test fixture
  4. System under test

Types of Testing Engines supported by FitNesse

- A piece of java code is used to establish a link between the SUT and the generic testing engine.
- Testing engine is responsible for carrying out most of the mapping and invoking the fixture methods. 
- Two engines are majorly supported by the fitnesse testing tool:

FIT Testing Engine 
- This engine serves more than just a testing engine. 
- It is more like a testing frame work in itself that makes use of a combination of functionality for invoking tests; carry out an interpretation of the wiki pages and generation of the output pages. 
- This is the testing engine around which the testing engine was built originally to serve initially as a user interface.
- And this is the story behind the name of the tool ‘fitnesse’. 
- This testing engine combines a number of responsibilities in to one unlike others that divide one responsibility in to many smaller ones.
- But software developers need to pay price for this since in this an FIT engine requires an inheritance from the base classes of the FIT frame work.
- However, java counterpart can experience some sort of difficulty since one chance of class inheritance of a developer is claimed by the frame work. 
- This also coveys a fact that the test fixtures are actually heavy weight constructs in nature. 
- Because of these considerations only, it was decided to adopt an alternative to FIT testing engine called SLIM testing engine.

SLIM Testing Engine
- Simple list invocation method is abbreviated to SLIM and serves as the best alternative to FIT testing engine. 
- It does not focuses on the combination of the wiki – based testing elements rather it emphasizes up on the invocation of the testing fixtures. 
- Unlike the FIT testing engine, it is invoked under the remote control of the Fitnesse wiki engine and then runs as an individual server. 
- Interpreting a wiki page and generating its result is now considered to be a part of the wiki testing engine. 
- Further the light weighted fixtures are allowed in the SLIM testing engine, which are nothing but simple POJOs. 
- One does not need to extend the fixtures or put any other frame work classes in to use. 


Monday, January 21, 2013

How is test execution done by Fitnesse Testing Tool?


FitNesse testing tool based on the integration testing frame work is now widely used for acceptance testing more than unit testing since it has the ability to facilitate a description of the function in a detailed manner. 
In this article, we shall discuss about how the execution of the tests is carried out using the Fitnesse testing tool. 
The testing process using the fitnesse testing tool involves 4 major components for every test:
  1. Wiki page that is used to express the test in the form of a decision table.
  2. A testing engine for interpreting this wiki page.
  3. A test fixture that is invoked by the engine and itself invokes the SUT or system under test in turn.
  4. SUT(system under test) that is currently under test.
- Out of the above 4 mentioned components two are produced by the software development team namely the fixture and the wiki page. 
- The team produces the system under test but it is not considered from the point of view of the black box test.
- Decision tables which express a test are included in the wiki page.
- The test fixture is the link that is made between the SUT and the generic testing through a piece of code written in java. 
- Mapping that is done between the fixture and the wiki page is an example of simple convert – to – camel case mapping. 
- Such kind of mapping is applicable to almost all the headings and is used for the identification of the name of the class of the fixture and its methods as well. 
- Whenever a heading ending is encountered, its value is to be considered to be read from the fixture while values from the other headers are considered as input for the fixture.
- The column order of the table i.e., left to right order is followed for calling the methods of the fixtures. 
- Testing engine is the component that actually carries out the mapping process. 
- It also invokes majority of the fixture methods. 

What kind of engines are supported by Fitnesse Testing Tool?

Two types of engines are supported by the fitnesse testing tool:

The FIT Engine: 
- This is more like a frame work rather than just being an engine. 
- It carried out the following purposes:
a)   It combines the functionality for invoking the tests,
b)   Interpretation of the wiki pages,
c)   Generation of the output pages.
- This engine was named so because the tool originally developed around this. - This engine works by combining the responsibilities rather by separating them.

The SLIM Engine: 
- SLIM stands for simple list invocation method and is used as an alternative to the FIT engine. 
- This engine implements the slim protocol. 
- Like FIT, SLIM does not combine all of the elements of the wiki – based testing, rather its focus is on invocation of the fixture. 
- This engine works as a separate server that is invoked by the fitnesse wiki engine remotely. 
- Simple POJOs like light–weighted fixtures are allowed by this engine. 
- These fixtures neither use any frame work classes nor extend it. 
- This leads to a simplified design thus allowing the designer to focus up on the call of the SUT properly and in as simple way as possible.
- This also keeps the ways for inheritance open, thus allowing the fixtures to be developed whenever necessary. 
- Inputs and expected output are coupled together to form the tests described in Fitnesse. 
- These couplings are considered to be a kind of variation of the tables. 
- A number of such variations are supported by the Fitnesse testing tool.


Explain FitNesse testing tool? What are principles of Fitnesse?


- FitNesse is an automated testing tool that has been developed to serve as a wiki and a web server for the development of software systems and applications. 
- This testing tool is entirely based up on the frame work for integrated testing that has been developed by Ward Cunningham. 
- It has been designed to support acceptance testing more than unit testing. 
- It comes with the feature of facilitating the description of the system functions in detail.
- With FitNesse testing tool, the users using a developed system can enter the input when it has been specially formatted i.e., non – programmers are able to access this format. 
- FitNesse tool interprets this input and automatically creates all the tests. 
- The system then execute these tests and returns the output to the users. 
- The main advantage of following this approach is that a very fast feedback can be obtained from the users. 
- Support in the form of classes called ‘fixtures’ is provided by the developer of the SUT i.e., system under testing. 
- The credit of writing the code for the fitNesse tool goes to Robert C. Martin and his colleagues in java language. 
- Since the program was developed in java, therefore initially it supported only java but now over the time it has got versions in a number of languages such as Python, C++, Delphi, ruby, C# and so on. 

Principles of FitNesse Testing Tool

This software works on certain principles which we shall discuss now:

FitNesse as a testing method: 
- Originally, it was designed as an interface using the fit frame work and it proved to be highly usable. 
- As such it is known to support the regression tests and black box acceptance tests in an agile style.
- This style of testing involves all the functional testers working in collaboration with the software developers in a software development project in an effort of developing a testing suite. 
- FitNesse testing revolves around the notion of black box testing.
- This involves considering the system to be a black box and testing it in the terms of the output that is automatically generated by the tool in accordance with the given inputs. 
- The responsibility of the functional tester is to design tests in a sense of functionality and expressing the same in the fitNesse tool. 
- On the other hand, the responsibility of the software developer is to connect the tool to the SUT so that tests can be executed and the actual output can be compared to the expected one. 
- The idea that drives this tool is forcing the functional testers and software developers to come up with a common language for an improved collaboration which will eventually lead to an improved mutual understanding of the SUT.

Fitnesse as a testing tool:
- Fitnesse defines the tests as inputs and outputs coupled together. 
- These inputs and outputs coupled together are expressed as variations of a decision table. 
- It supports a number of variations that range from tables that execute queries to tables for literal decision and to tables that express the testing scripts. 
- A free form table is the most generic variation that the designers can interpret in any way they like. 
- However, some sort of table is always used to express the tests. 
- The primary focus of FitNesse is on the easy creation of the tests, thus allowing the testers to maintain a high quality for the tests rather focusing on how the tests are to be executed. 
- Three factors are involved in the creation of the tests through fitNesse:
a)   Easy creation of the tables.
b)   Easy translation of the tables in to calls to SUT.
c)   Maintaining flexibility in the documentation of the tests. 


Facebook activity