Subscribe by Email


Showing posts with label Languages. Show all posts
Showing posts with label Languages. Show all posts

Friday, June 28, 2013

How to decide whether to add another language support to the software product

The time is long gone when you could have only English as the language in which you are planning to release your software. Over the past many decades, software products have seen an increasing amount of revenue coming in from releases made in different languages, to sell in different regions of the world. So, although sales in the United States may be still your highest source of revenue, an increasing amount of revenue comes in from sales in Japan, in Europe, in Latin and South America, and in the emerging regions of China and India (for the last 2, there is another challenge that you have to meet, namely about how to prevent piracy and have more legal sales of the product in these regions).
So, if you have an English only version of your product, what will happen is that you will sell it in the United States, Great Britain, Australia, (and other English speaking nations of the world), and to some extent, you will even sell the English language versions in some of the countries, selling it to those consumers who want the English language versions of the product. But, what about the Spanish speaking world, the Japanese speaking, the French speaking, and so on ? Well, in many of these regions, there will be also a reluctance to buy the product just because the company has not chosen to bring out a specific language release. So, it always makes more sense to release specific language versions of the product, and releasing with the same set of features as the English language version.
The process of creating multiple language versions of the software is much easier. What is basically required is to translate all the UI elements in the application (includes strings, error messages, text within images, and any other text that the user can see) The way that the software code is written makes it easy to extract all these UI elements, and send them off for translation. Once these are translated, these are then incorporated back into the software, and then tested to ensure that there is no functional issue, and no cases where the translation leads into text that is messy or otherwise not right.
If it is that easy, why not just translate the software into as many languages as required ? Well, the previous paragraph was an over-statement; the process is expensive both in terms of revenue and resources. The process is not so exact. It can happen (and this especially happens with Japanese, German and Russian) that the translated text is much larger than the English language version, and there needs to be effort spent to either increase the size where the text is to be fitted (and this would need to be done in all languages) or the text needs to be re-translated into something smaller. For large products, a complete translation, which also includes the thorough testing of the product, can run upto almost a million dollars.
So this why there needs to be thought about translation into a new language. Reasons for the same include:
- Marketing estimate of enhanced revenue
- Potential sales in that region over a period of time
- Negative image getting developed because of the lack of product in that language
- Need of a partner. In many cases, when doing deals with partners, the partner would want the product to be there in multiple languages, and if the language is not supported, the deal could be in danger


Friday, February 1, 2013

Explain Ranorex? What are its features? What are its supporting technologies?


Ranorex is a framework developed exclusively for the windows GUI test automation. Ranorex has proved to be quite an effective framework for testing a number of applications such as the following:
  1. Web 2.0 applications
  2. Win32
  3. MFC
  4. WPF
  5. Flash
  6. Flex
  7. .NET
  8. Java (SWT) and so on.
One fact about this test automation frame work is that it does not have its own scripting language. Programming languages such as vb.net and C# have certain functionality that are used by the software testers as the base. Then they use the Ranorex’s GUI automation functionality for enlarging the base.
Ranorex supports number of technologies few of which we have mentioned below:
  1. Web applications including:
Ø  HTML
Ø  HTML5
Ø  Javascript
Ø  Silverlight
Ø  AJAX
Ø  It also supports cross browser testing on IE, chrome, Firefox and safari
  1. Windows desktop client applications:
Ø  .net
Ø  Winforms
Ø  WPF
Ø  Win32
Ø  Java
  1. SAP
  2. Mobile apps including:
Ø  Android and
Ø  iOS
  1. Flash and flex including:
Ø  adobe air
Ø  adobe flash
Ø  adobe flex

Features of Ranorex

  1. Capture and playback editor: This feature of Ranorex is more commonly called the Ranorex recorder.This feature lets easy maintenance of the recordings through an actions table editor. It is because of this feature that the Ranorex is able to integrate with the object repositories for the automation.
  2. GUI object recognition: This feature uses the RanorexXpath for filtering and identifying any type of GUI element.
  3. Test automation library:It includes exclusively .net applications.
  4. GUI mapping: This is more commonly known as the Ranorex repository and helps in the management of all kinds of GUI elements present in the application.
  5. Test development environment: More commonly called as Ranorex studio and is used for code completion and debugging.
- This framework has won a number of awards for being the best functional automated test tool. 
- With Ranorex, one can test a large number and types of technologies such as that of the desktop, mobile and web. 
- Ranorex makes it extremely easy to create robust and powerful test automation frameworks. 
- Ranorex removes all the barriers in the path of learning process and also accelerates the process to realize a good return of investment or ROI. 
- A number of benefits come along with ranorex:
  1. Object based capture and playback editor
  2. ranorexXpath
  3. Best object recognition
  4. Professional library for .net and C#.
- Ranorex has been carried over to a more advanced level of the GUI test automation. 
- Ranorex Xpath is a very powerful technology that has made the test automation even much easier. 
- Ranorex is a testing tool which recognizes almost every UI technology. 
- Not only this, it proves suitable for all the development environments that already exist. 
- Ranorex does a great attempt in bringing together the software testers and developers. 
- The Ranorex automation framework has been developed with an open architecture. 
- At the core functionality of the Ranorex automation frame work lies an API that revolves around a .net framework. 
- The Ranorex is based on standards and helps in generation of better .net and C# user code. 
- Usually the Ranorex studio project works with a lot of files. 
- Before one starts with developing test cases, one should have all the knowledge regarding the layout and views of the tool.  
- The Ranorex studio may consist of the following types of items:
  1. Test suite
  2. Model group
  3. Repository
  4. Code files
  5. Recording


Wednesday, January 30, 2013

Explain Watir - Web Application Testing in Ruby?


Watir stands for web application testing in Ruby and was developed as an open source that would provide Ruby libraries by Paul Rogers and Bret Pettichord. The software is licensed under BSD and contains all ruby libraries that would be required for the automation of the web browsers. The software is known to drive a number of web browsers namely:
  1. Internet explorer
  2. Mozilla firefox
  3. Chrome
  4. Opera
  5. Safari
The software has been made available especially for ruby as the ruby gems. Watir is comprised of several smaller projects which define its functionality:
1.Watir – Classic: Ruby has got built – in OLE capabilities that can be used by watir classic for driving the IE pro grammatically. The way of operation of watir classic is different than that of the other HTTP based testing tools.
2.Watirspec: This one is watir’s executable specification.
3.Watir–web driver: The reference implementation of the web-driver specification is the selenium 2.0. the roots of the watir web driver can be traced to the HTML specification.

This automated test tool uses Ruby as the scripting language for driving the above mentioned web browsers. You can call it a tool kit for developing effective automated tests and run them against the browsers. Watir can be used for driving the web applications which can be looked up as HTML pages while browsing. 
However, Watir is not known to work with the following:
  1. Active X plug – in components
  2. Java applets
  3. Macromedia flash and other plug – in applications.
Before you use Watir for your application you need to determine whether it will work for it or not. To do so just right click on the object and check for the view source menu. If the HTML source for the object is available it can be well automated using watir otherwise not. There are certain prerequisites for using Watir which are that you need to have knowledge about the following:
  1. HTML
  2. Programming basics including simple control structures.
  3. Ruby: this is required if you put watir to a really good use.
Watir works well for all the windows platforms including Windows 2000, server 2003, XP and vista and it can be run on versions 6 and 7 of internet explorer. Using ruby 1.8.5 – 24 or 1.8.6 – 26 is recommended. For installing ruby and watir you need to log on as the administrator. 
There are two ways for installing Watir:
  1. From behind a proxy and
  2. From behind a firewall
The tests written using Watir are quite easy to read as well as maintain and exhibit simplicity and flexibility. The way Watir drives the web browsers is the same as done by people. It performs clicking operations such as clicking on links and buttons, forms filling operations and so on. Results are also checked by Watir. 
Ruby, like other programming languages provides your application with the ability to do the following:
  1. To connect to data bases
  2. To read from spreadsheets and data files
  3. To export the XML files
  4. To restructure your code so that it can be converted in to a reusable library.
Watir is free open source tool and therefore no money expenditure in using it. Ruby is a full featured modern programming language which lets Watir support all the web applications no matter by what technology it has been developed. Watir provides support to a number of browsers on different platforms. Though the tool is quite powerful it is extremely simple and easy to use. For using Watir it is recommended that you install the IE developer tool bar. 


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. 


Monday, January 7, 2013

What are benefits of LabVIEW(Laboratory virtual instrumentation engineering workbench)?


Laboratory virtual instrumentation engineering workbench (or labview as it is commonly known) is a platform developed for designing systems and presents a development environment.

Benefits of LabView


1. Interfacing
- The extensive support that labview provides for access to instrumentation hardware is one of the key benefits of it. 
- In addition to the drivers, a number of abstraction layers are available for inclusion for a variety of buses as well as instruments. 
- These drivers and abstraction layers are presented as the graphical nodes. 
- A standard interface is provided by the abstraction layers so that communication with the other hardware devices could be established. 
- A lot of program development time is saved by the driver interfaces that are provided. 
That is why people having limited coding experience of writing the programs can even develop programs and easily deploy the test solutions in a time less than what it might take with the conventional programming systems. 
- DAQmxBase is a brand new driver topology.
- It comprises mostly of the G – coded components having a few register calls via national instrument measurement hardware driver development kit (DDR) functions.
- It is known to provide hardware access that is independent of the platform. 
- This access is to instrumentation devices and a number of other data acquisition devices. 
- This new driver is available for the following platforms:
a)    Windows
b)    Mac os x
c)    Linux
- An interface for .net frame work applications is also provided by the labview using    which one can use XML files and data bases in one’s automation projects.

2. Code Compilation
- When it comes to performance, labview is at its best as it provides you even a compiler that can produce a native code for platform level of CPU. 
- Firstly, the graphical code is converted in to machine executable code by passing it through an interpreter and compiler.
- The syntax of the labview is to enforced during the code editing process only and then it is compiled in to machine level code whenever execution command is given. 
- The executable code is executed by the run time engine of labview which already has some pre-compiled code that can be used to perform usual tasks that have been already defined by the G – language. 
- Also, the compile time is reduced by the run time engine. 
- In addition to this it also offers you a consistent interface that can be used for a number of following:
a)    Operating systems
b)    Graphic systems
c)    Hardware components and so on.
- The code is made portable across the platform because of the run – time environment. 
- Labview code compiles slower than the equivalent code in C and this difference gets larger with the program optimization.

3. Large Libraries
- A large number of libraries with a large number of functions such as those mentioned below are provided with the labview package:
a)    Functions for data acquisition
b)    Signal generation
c)    Mathematics
d)    Statistics
e)    Signal analysis
f)     Signal conditioning and so on.
- The package also has a number of graphical interface elements. 
- The package has numerous advanced mathematics blocks which can carry out functions such as filters, integration and so on.
- Many other specialized capabilities that are associated with the data that has been captured with the help of hardware sensors. 
- In addition to all this, labview comes with mathscript which is nothing but a text based programming component having some additional functionality such as for mathematics, analysis, signal processing and so on. 
- This component and graphical programming can be integrated together via the script nodes and using a syntax compatible enough with MATLAB.

4. Code re use
5. Parallel programming
6. Ecosystem
7. User community


Friday, January 4, 2013

Explain LabVIEW (Laboratory virtual instrumentation engineering workbench)?


Laboratory virtual instrumentation engineering workbench (or labview as it is commonly known) is a platform developed for designing systems and presents a development environment. 
- The environment it provides is for the development of visual programming language from what are known as the national instruments. 
- The graphical language that is usually used is commonly known as “G”. 
- Make sure that you do not yourselves with G code.
- This graphical language had its release for the Apple Macintosh in the year of 1986. 

Labview is used for a number of purposes few of which are:
  1. Data acquisition
  2. Instrument control
  3. Industrial automation and so on.
All these functions can be carried out on a number of platforms including:
a)    Unix
b)    Linux
c)    Mac OS X and
d)    Microsoft windows

- Labview 2012 which is the latest version of labview has been released recently in year 2012 in the month of August. 
- 'G' is actually a data flow programming language. 
- The structure of the graphical block diagram helps in determining the execution. 
- This graphical block diagram is actually composed of the LV source code using which the different function nodes can be connected via wires. 
- Variables are propagated by these wires. 
- Any node for which all the input data is available can be put in to execution immediately. 
- It involves a number of modes simultaneously, parallel execution is very much possible in G.
- Built-in scheduler is automatically exploited through multi–threading and multi– processing hardware.
- Multiple OS threads are multiplexed by the built – in scheduler over the nodes that are ready to be executed. 
- User interfaces called front panels are created by the labview and incorporated in to the development cycle. 
- The programs or subroutines of the labview are termed as virtual instruments or VIs. 

There are 3 main components of each VI namely:
  1. A block diagram
  2. A front panel and
  3. A connector panel
- The third component i.e., the connector panel is used for the representation of the virtual instrument in the other virtual instruments which call this one. 
- Front panel comprises of the indicators and controls, thus allowing the operator to input or extract data from an active virtual instrument. 
- Another feature of the front panel is that it also serves as a programmatic interface. 

Thus, a virtual instrument can be run in either of the two ways:
  1. As a program: The front panel serves as a user interface.
  2. As a node on to the block diagram: The inputs and outputs for a particular node are defined by the front panel through the connector panel.
- Any of the virtual instruments can be tested very easily before it is embedded in to the main program as a subroutine. 
- Even non-programmers can take the benefit of the graphical approach since using it, they can build programs by just dragging and dropping the lab equipment’s’ virtual representation with which they have some familiarity. 
- Advantage is that the labview programming environment comes with documentation and some included examples which can be used to work out small applications very easily. 
- There is one disadvantage also which is that one might underestimate the expertise required from implementing high quality G – programming.
- Also, as far as complex programming or large scale programming is concerned it is a must for the programmer to have an extensive knowledge regarding the labview syntax and the topology it uses for the management of memory. 
- The advanced development system of the labview lets you create stand –a lone applications also.


Wednesday, January 2, 2013

What is Selenium software testing framework?


Selenium software testing framework is portable frame work that has been developed exclusively for the development of the web applications. It actually works as a record and play back tool for the guiding of the tests without having to learn about a TSL or test scripting language. 
The selenium software testing frame work comes with its own test domain – specific language known by the name of selenese which can be used for developing tests in a no. of prominent programming languages such as the following:
  1. C#
  2. Java
  3. Groovy
  4. PHP
  5. Perl
  6. Python
  7. Ruby etc.
The tests thus developed can be executed against a number of modern web browsers. The selenium frame work can be deployed on the following three platforms:
  1. Windows
  2. Linux
  3. Macintosh
- Selenium is one of the best open–source software that are available to us today. 
- It was released as an OSS under the license – apache 2.0 and so you won’t be charged for downloading and using it.
- The software got its name for a joke cracked by Jason in an email in which he mocked his competitor by saying that he can cure mercury poisoning with the help of supplements from selenium. 
- The other people who received this email began using this name and eventually the software was named so. 
- The selenium grid represents the latest side project which is known to provide a hub enable execution of the multiple selenium tests on a local and remote system and that too concurrently. 
- This is being done as an effort to minimize the time taken for execution. 
- The selenium provides you with a number of robust tools which one use for the rapid development of the automated tests for testing the web based applications. 
- Plus, it also comes with a number of rich features and functions which have been exclusively for designing the web applications. 
- The operations which are carried out by the selenium framework are highly flexible in nature and allow for the location of the UI elements with supported by a number of options. 
- Also, the selenium frame work accounts for comparing the actual and the expected test results. 
- Selenium’s key feature lies in the support it provides for the execution of one test on a number of browser platforms. 
- The selenium frame work is composed of three major tools each of which plays an important and unique role in the development of the tests for web applications:
  1. Selenium IDE
  2. Selenium remote control
  3. Selenium grid
- There are number of ways in which functionality can be added to the selenium’s frame work to further customize the tests in order to suit one’s specific needs.
- This characteristic that makes the selenium frame work outstanding among the rest. 
- The RC support from the selenium assists the test writes in multiple programming by helping them develop any logic they require for automated testing by using their preferred language. 
- On the other hand, the user can add his own defined extensions via the selenium IDE for creation of additional customized commands. 
- The selenium RC code generated by the selenium IDE can be reconfigured easily which lets the testers generate code that would fit their testing frame work. 
- Also, since the selenium is open to all, all are free to submit their contributions for its enhancement and modification. 


Facebook activity