The automated testing in our daily work

Why Automated Testing?

Every developer must recognize that the part least expected and least desired about the process is test what we have just finished recently. But why is that? Well, in part because (according to good practices)  we are supposed to constantly be testing what we have programmed so far, since we should not wait until the end of the development cycle to test, this sometimes creates a false illusion that everything works perfectly. On the other hand, we feel that the time we will take testing our newly developed product could be used for continuing the work we have queued or at least doing something more exciting.

Every web development group performs testing of its products, however the delivery always has defects. Those responsible for conducting the tests are struggling to find errors before the product is delivered, but the errors usually end up coming back, even with the best manual testing processes. Automated testing is the best way to increase the efficiency, effectiveness and coverage of testing for web applications.

Manual web testing is performed by a human sitting in front of a computer carefully going through web pages, trying various usage combinations, comparing the results to the expected behavior and recording his observations. Manual tests are repeated often during development cycles, for source code changes and other situations like trying compatibility with multiple operating environments and configurations. An automated software testing tool is able to record once the predefined actions of the test, playback the pre-recorded tests and compare the results to the expected behavior and report the success or failure of these tests to a test manager. Once automated tests are created they can easily be repeated multiple times and updated when needed. Because of this, clever managers have found that automated software testing is an essential component of successful development projects.

Application tests have to be repeated often during development cycles to ensure quality. Every time source code is modified application tests should be repeated. For each release of the application it may be tested on all supported operating systems and hardware configurations. Manually repeating these tests is costly and time consuming. Once created, automated tests can be run over and over again at no additional cost and they are much faster than manual tests. Automated software testing can reduce the time to run repetitive tests from days to hours.

Even the most conscientious tester will make mistakes during monotonous manual testing. Automated tests perform the same steps precisely every time they are executed and never forget to record detailed results.

Lengthy tests that are often avoided during manual testing can be run unattended with an automated software test. They can even be run on multiple computers with different  operative systems and configurations, even multiple web browsers.  The testers will be free to run repetitive manual tests and will have more time to create/record new automated tests and deal with complex features.

Shared automated tests can be used by developers to catch problems quickly. Tests can run automatically whenever source code changes are checked in and notify the team or the developer if they fail. Features like these save developers time and increase their confidence.

At the end of the day, the automated testing will not only improve the developer’s work, but also will improve the quality of delivered work and the company’s image.

Posted in Uncategorized | Tagged , , | Leave a comment

Research about automated testing tools

Automated Testing Tools

Previously we discussed about the reasons for using an automated testing software in our daily work. We at Viaro thought ”why not make a list with some tools that can help us making that transition from manual to automated testing?” Here we present you the results.

The requirements we looked for, were:

  •     Multiplatform
  •     Multibrowser
  •     Short learning curve
  •     Well documented

Jameleon

Jameleon is a plug-in driven automated testing tool that separates applications into features and allows those features to be tied together independently, creating test cases. Test cases can be data-driven and executed against different environments and test case docs are generated from the test cases.

Jameleon uses several independent open-source projects to develop the cases:
Jelly – an open-source macro language.
JUnit. – an open-source unit testing framework for Java.

Advantages

  • Multi OS
  • Written using  open standards such as Java and XML
  • Community for support
  • Complete API

Disadvantages

  • The OS must be in 32 bit
  • Lack of flexibility
  • Only works fine in Windows
  • Hard to configure and install over linux

Browser support

  • Internet Explorer
  • Emulated browser

Limitations

  • JDK 1.4 or higher
  • Test must be created with a third-party application

Programming language

  • Java
  • XML

Watir

Watir is an open-source (BSD) family of Ruby libraries for automating web browsers. It allows to write tests that are easy to read and maintain. It is simple and flexible. Drives browsers the same way people do. It clicks links, fills in forms, presses buttons. Also checks results, such as whether expected text appears on the page. Is a family of Ruby libraries but it supports the app no matter what technology it is developed in.

Advantages

  • It’s a Ruby library
  • Multi OS
  • Complete API
  • Community for support
  • Simultaneous playback of multiple scripts

Disadvantages

  • Hard to make it work over Linux
  • Needs to learn ruby language
  • Most of the examples are made for internet explorer
  • Every browser requires a different library
  • The script has to be programmed one step at the time on console.

Browser support

  • Internet Explorer
  • Firefox

Limitations

  • Knowledge of Ruby
  • Knowledge of HTML

Programming language

  • Ruby
  • Watir syntax

Watij

Watij  stands for Web Application Testing in Java. Based on the simplicity of Watir and enhanced by the power of Java, Watij automates functional testing of web applications through the real browser. Currently Watij supports automating Internet Explorer on Windows only however with a future plan to support Mozilla. Watij supports XPath expressions for finding HTML elements on a page. Watij also manages popup browser windows.

Advantages

  • Works with Jruby
  • Complete API
  • JUnit framework can be used to write the test
  • Supports XPath expressions

Disadvantages

  • The script has to be programmed one step at the time on console.
  • Only works over internet explorer
  • Non multi OS

Browser support

  • Internet Explorer

Limitations

  • Knowledge of Ruby
  • Knowledge of HTML
  • JDK 1.4 or higher

Programming language

  • Java
  • Ruby
  • Html

Sahi

Sahi is an automation and testing tool for web applications, with the facility to record and playback scripts. Developed in java and JavaScript, this tool uses simple JavaScript to execute events on the browser. Features include, in-browser controls, text-based scripts, ant support for playback of suites of tests, and multi threaded playback. Sahi runs as a proxy server and the browser needs to use the sahi server as its proxy. Sahi then injects JavaScript so that it can access elements in the webpage.

Advantages

  • Records/Playback
  • Multi browser
  • Implicit waits – even for complex AJAX applications
  • Run tests in parallel
  • Has its own IDE
  • Complete API

Disadvantages

  • Browser has to be configured to work with a proxy
  • Sahi application run separate from the record window
  • Confusing interface
  • Least developed/smallest community

Browser support

  • Internet explorer
  • Firefox
  • Chrome
  • Opera
  • Safari

Limitations

  • Java 1.5 or above is needed
  • Framesets/pages with frames/iframes loading pages from multiple domains is not supported.
  • Sahi cannot handle pages which have other pages from different domains embedded in them using iframes or frames.
  • File upload field will not be populated on browsers for javascript verification. File upload itself works fine

Programming language

  • JavaScript

Selenium IDE

Selenium IDE is an integrated development environment for Selenium scripts. It is implemented as a Firefox extension, and allows to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing to easily and quickly record and play back tests in the actual environment that they will run.

Advantages

  • Easy record and playback
  • Intelligent field selection will use IDs, names, or XPath as needed
  • Autocomplete for all common Selenium commands
  • Walk through tests
  • Debug and set breakpoints
  • Save tests as HTML, Ruby scripts, or any other format
  • Support for Selenium user-extensions.js file
  • Option to automatically assert the title of every page

Disadvantages

  • Only works on firefox
  • Have to learn Selenese
  • Confusing interface
  • Lack of any possible iterative or selection statements
  • Simple API

Browser support

  • Firefox

Limitations

  • Hard to make it work over internet explorer
  • Some things can be added through additional extensions

Programming language

  • Selenese
  • HTML
Posted in Uncategorized | Tagged , , , , , , | 2 Comments

Windows Communication Foundation. Applications on a service oriented world

Windows Communication Foundation

Windows Communication Foundation (WCF) is a framework for building service-oriented applications. With WCF, you can send asynchronous data such as messages from one extreme to another service. One end of service can be part of a continuously available service hosted by IIS, or may be a service hosted in an application. One end may be a customer of a service that requests data from a service endpoint. Messages can be as simple as a character or a word that is sent as XML, or as complex as a sequence of binary data. Here are a few example scenarios:

  1. A secure service to process transactions.
  2. A service that provides updated data.
  3. A chat service that allows two people to communicate or share data in real time.
  4. A panel application that polls data one or more services and displays them in a logical presentation.
  5. Exposing a workflow implemented using Windows Workflow Foundation as a WCF service.
  6. A Silverlight application to poll a service in search of the latest data sources.

WCF is designed to provide a manageable approach to create Web services and Web service clients.

Characteristics of WCF

WCF includes the following set of features:

  1. Orientation to services: Because of the use of WAS standards, WCF enables you to create applications service-oriented SOA, service-oriented architecture is the use of Web services to send and receive data.
  2. Interoperability: WCF implements modern industry standards for interoperability of web services.
  3. Metadata services: WCF supports publishing service metadata using the formats specified by industry standards such as WSDL, XML Schema and WS-Policy. This metadata can be used to automatically generate and configure clients to access WCF services. Metadata can be published over HTTP and HTTPS, or using metadata exchange standard web services.

Windows Communication Foundation (WCF) depends on several resources provided by the operating system for its operation. The following table provides a list of these resources.

Resource Description
Microsoft DTC (Distributed Transaction Coordinator) Required to support transactions OleTx.
Message Queue (MSMQ) Required to support reliable messaging.
Internet Information Services (IIS) Required if want to use IIS to host your application.
Service Windows Process Activation (WAS) Required if you want to use WAS to host your application.

Differences with WebServices:

Web ASP.NET  Services are hosted directly in Microsoft Internet Information Service IIS, which are processed and implemented through Hypertext Transfer Protocol (HTTP).

Web Services Windows Communication Foundation (WCF) can work with a variety Hosts, Protocols and Clients.

  1. Hosts: IIS, resident Console Applications, Windows Services, etc.
  2. protocols: HTTP, TCP, MSMQ, HTTP Binary, etc.
  3. Client: Windows, Web, Mobile, etc.

ASP.NET Web Services (*. asmx)

It is defined as a code file with extension .asmx and related to class (*.cs or *.vb). ASP.NET then wraps this code as a web service object. This object known how to expose the Web service. This includes serialize SOAP requests, and execute code .NET Framework, and serialize their response to be sent back to the requesting client as a SOAP message.

Project files for ASP.NET Web Service (*.asmx) in Visual Studio are:

  1. miservicio.asmx (File Web service access).
  2. Miservicio.vb or miservicio.cs   (File Class MyService related .asmx).
  3. Web.Config (File Configuration ASP.NET web service)

Miservicio.vb class contains the code base to create features within the service, an example of this is the HelloWorld function that returns a primitive type string value that says “Hello World”:

<WebMethod()> Public Function HelloWorld as String

Return “Hello World”

End Function

Remember that a function is visible from the Web service, you must dial the attribute <WebMethod()>

Key steps to create an ASP.NET Web Service:

  1. Service:define and create the functions that will be displayed in the Web service.
  2. Hosting service within IIS (Internet Information Service)
  3. The reference and call the service from the client application.

WCF Web Services:

WCF (Windows Communication Foundation): The unified programming model, which is defined as a simple way to write services and therefore unifying elements such as Web services (*.asmx) .NET Remoting, Message Queuing (MSMQ), Enterprise Services (COM +) and Enhanced Web Services. WCF does not replace these technologies on an individual basis, but rather provides a simple programming model you can use to take advantage of all these elements together.

The WCF application has multiple layers that work together to provide a wide range of features and options for building service oriented applications (SOA).

The files of a Web service project in Visual Studio WCF:

  1. miInterfaz.vb or miInterfaz.cs (interface definition file).
  2. miservicio.vb or miservicio.cs (File miservicio.svc related class).
  3. miservicio.svc (File service access).
  4. Web.Config (Configuration File) service.

MiInterfaz.vb file contains the code base to create the specific titles of the functions of the service (called the Contract).

<ServiceContract()> PublicInterface IService1

<OperationContract()>Function HelloWorld () As String

End Interface

BizTalk Server and WCF Integration

Microsoft BizTalk Server, often referred to as simply “BizTalk”, is an Enterprise Service Bus. Through the use of “adapters” which are tailored to communicate with different software systems used in a large enterprise, it enables companies to automate business processes. Offered by Microsoft, it provides the following functions: Enterprise Application Integration, Business Process Automation,Business-to-business Communication and Message broker.

In a common scenario, BizTalk enables companies to integrate and manage automated business processes by exchanging business documents such as purchase orders and invoices between disparate applications, within or across organizational boundaries. Human-centric processes cannot be implemented directly with BizTalk Server and need additional solutions like a Microsoft SharePoint Server.

Development for BizTalk Server is done through Microsoft Visual Studio.

http://msdn.microsoft.com/es-ar/library/bb973215.aspx

Conclusion

WCF tries to address the fact that while the world has embraced the use of webservices and the design of service oriented applications the tools available to the developer to create this new functionality have not changed that much. With a focus on interoperability, both with Microsoft’s own technologies and other vendors solutions, WCF tries to simplify the process of building and maintaining a service oriented system. Built on top of .NET and being compatible with previous  the developer will fin a familiar environment to work and create fast, secure and reliable web services.

Posted in .NET, software development | Tagged , | Leave a comment

Control Your e-Learning Course

GraspLink simplify the administration of users as much as possible, forget about complex enrollment, complicated forms to add new students, etc. In just one place and few clicks you can enroll new students, control or limit their access as much as you desire. In just a few minutes you can invite a new user to the site, enroll him on a course and set a date after which he will no longer have access to the course content. It just couldn’t be any easier. This way you can set up temporary courses or give someone limited access to any of your ongoing courses.

One of the features that any Learning Management System must include is the ability to keep track of your students, see their progress, see how committed they are to the course material and identify who may need to pay more attention. Check on how much time they have invested on the course material and in what activities they have participated, you can gain a lot of insight on how your students use the system and adapt the course so they can benefit the most of it.

The tracking system shows you how engaged the user is with the course material, how many of the topics they have accessed, in how many conversations they have participated or at least read them, how many files they have downloaded and how many times they have accessed the course. This will help you when trying to make a profile for any student, trying to understand how he uses and interact with the course and if he is taking advantage of the resources at his disposal.

While using GraspLink you are in complete control of the course, from the people enrolled on it, their access, the content at their disposal and how they may use it. There is no easier Learning Management System you could be using, GraspLink takes care of the details and you focus on teaching and bringing out the best of your students.

Posted in Learning Management System | Leave a comment

Test & Grading

Another aspect of every Learning Management System (LMS) we need to observe is the tests and grading features it presents, GraspLink provides a powerful grading system yet it is simple enough to use without getting in the way of the learning process but helping improve it making more enjoyable.

GraspLink provides a whole array of tools to track the student’s progress. The ability to create different tasks, assignments, tests, etc. Allows the course administrator to design the grading scheme, tests, quizzes and activities that fits best with his teaching style.

Both the student and the class administrator will always have at their disposal tools to track the student’s progress in class, making really easy to identify student’s with problems and allowing the class administrator to take the measures necessary to help them.

GraspLink as a  Learning Management System includes a powerful and flexible assessment creation tool to allow the course administrator to design  tests that will guarantee that the students have understood and observed the learning material provided to them. This tests can be as long or as short as the course administrator desires, a multitude of question types, the ability to divide the tests on different sections, define time limits for each section and for the complete test.

There are a large selection of question types to create the kind of assessment that suits best the particular topic, direct questions, essay questions, multiple choice, etc. Many of the question types can be automatically graded by the system reducing the time needed by the student to get feedback on his performance.

The course administrator is able to control when the tests are available for the users, the tests can be kept in an unpublished state until the admin decides is time for the students to take it. This allows the course admins and content creators to plan and create the tests ahead of time, activating them when the users are ready to take it. A versioning system also works alongside the assessment tool, making possible the editing of the tests even when they are already published, tracking down and taking care of the users that took the same test at different times.

Posted in Uncategorized | Leave a comment

e-Learning Course Material & Content

Continuing the series of articles on the Learning Management System, GraspLink, we will examine one of its core features, the creation and administration of learning content within the system. One of the goals of GraspLink is making aiding in the learning process by helping both the students and the trainers that provide their knowledge, the later is done by facilitating a way to for them to create online content within the Learning Management System and expose this content to the users in the most effective way possible.

For a Learning Management System to be effective the students need easy access to the content material and the trainer needs to be able to provide this learning material in an efficient and convenient way.

GraspLink provides a set of tools for learning content creation, these tools allows the users to create learning content directly from the web browser, organize it how they see fit and track how the students are using it. The content can be enriched by multimedia objects like images, videos, flash animations and documents. The content can be as simple or rich as the creator wishes to make it, engaging the users in a multitude of ways and presenting the information on the medium best fitted for each course.

The online editor for the learning content is easy to use, with no special training required and flexible enough to accommodate most users needs. The support for templates allows the course admin to set visual a style and the content creator to simple concentrate on the content itself. The support for content on different languages makes the task of creating internationalized and localized content as easy as ever while the usage tracking of the content created allows the course administrators to keep an eye on how the students are using the content provided.

But not all content needs to be created online, GraspLink Learning Management System counts with support to upload a number of standard course formats, for example, SCORM. GraspLink provides the interface to upload and administer SCORM material within the platform making it easy to integrate them with the courses.

GraspLink also provides an excellent file storage management system. The users are able to upload, store, share and download their files at any time. A powerful versioning system allows the users to keep multiple versions of the same file online for easy retrieval at any time, so, for example incremental improvements to a presentation or a unit of learning can be tracked down, reverted back to a previous point in time, etc.

Posted in Learning Management System | Leave a comment

GraspLink, the Learning Management System with Simple Communication

GraspLink is an on-line Learning Management System with all the facilities and functions that a modern LMS have. We will be examining the different functionalities provided by GraspLink and how they may work for you, how they can improve your online learning environment and benefit your students.

Part of being a great Learning Management System is being able to give the students a way to express themselves, collaborate, ask questions and interact with both the faculty & trainers and the rest of the students. GraspLink believes that a good communication is fundamental for a gratifying learning experience and the system presents to the students and course administrators, trainers, teachers, etc. clear, clean and open ways to communicate with each other while using GraspLink.

GraspLink provides this channel mainly by integrating a great message board with the courses and an efficient notifications system so that the students never lose track of what is going on.

The conversations can be deep, engaging and rich by using a great WYSIWYG editor that allows a great deal of expression and customization for each message while at the same time being really easy to use even for the most novice user. Any active user on the site will find it easy to follow and participate on the conversations and even when they are away they will be able to stay updated with email notifications, new conversations will also be marked when they log in again so they can review and catch up on anything they have missed.

The posts can be expanded with multiple attached files, enriching the message and making it a valuable tool for the exchange of information. The fine tuned permissions system guarantees that only the pertinent users will be included on the conversation, you can forget about spam invading your conversations and if any user behaves out of line there are multiples ways to deal with the troublemakers.

Moderation and administration of the message boards is part of the system, so the administrators can have a great deal of control about what is being posted. Creating new message boards take just a couple of clicks and they can be managed with great detail, from how the conversations will be presented (threaded or plain), set the level of freedom for the users within each board.

The notifications system is not limited to the message boards, any activity can be tracked and reported on. This way the students can make sure to not lose track of assignments, new learning material, new files, etc. The course administrator have tools that allow them to create and send mass emails, communicating with all the students easily and quickly.

GraspLink Learning Management System provides these basic tools for communication, making it simple, clean and effective. Helping both teachers and students to reach each other, share and communicate.

Posted in Learning Management System | Leave a comment