Wednesday, December 17, 2008

Foldit-Play and Solve mysteries

Finding new medicines for the diseases is a next to impossible task. If that involves finding new proteins it is even more difficult. New approaches are tried for these things.

Foldit is an important step in this direction. It is a game, where you will play to fold the proteins in order to win.

How does my game playing contribute to curing diseases?

With all the things proteins do to keep our bodies functioning and healthy, they can be involved in disease in many different ways. The more we know about how certain proteins fold, the better new proteins we can design to combat the disease-related proteins and cure the diseases. Below, we list three diseases that represent different ways that proteins can be involved in disease.

What other good stuff am I contributing to by playing?

Proteins are found in all living things, including plants. Certain types of plants are grown and converted to biofuel, but the conversion process is not as fast and efficient as it could be. A critical step in turning plants into fuel is breaking down the plant material, which is currently done by microbial enzymes (proteins) called "cellulases". Perhaps we can find new proteins to do it better.

Can humans really help computers fold proteins?

We’re collecting data to find out if humans' pattern-recognition and puzzle-solving abilities make them more efficient than existing computer programs at pattern-folding tasks. If this turns out to be true, we can then teach human strategies to computers and fold proteins faster than ever!

Check it out. Play and Solve

Record and Playback

Record and Playback looks like an easy way of automating the UI. You record the screens and play it back. However, the issue arises when you do more than 100 cases or scenarios. It won't scale, Period. Let me list the shot comings in the traditional record and play back methods.

1. It wont scale
2. Collaborative testing in not possible
3. Can't handle the errors in the run time.
4. Maintenance is very costly if the UI changes frequently.
5. Finding new bugs is very limited.

Lot of people talked/wrote about the UI test automation. People like Cem Kaner and James Bach, wrote extensively. Cem Kaner published videos and I like James Bach's Test Automation a Snake Oil.

Will the test automation work? Yes, it will work, provided we didn't expect a magic wand. Before going the see how it will work. Let us see the available tools for this.

Monday, December 15, 2008

Test Automation - What is it

Test Automation is meant to different things to different people working in different domains. This generic phrase is (ab)used by few people and lot of people using it without understanding the meaning. Generally, we take this as conductiong the test by machine to find bugs. Conducting test includes code analysis, code coverage, unit test, record and play back and other methods.

We all know that Testing consist of  two different things, performing the test and finding bugs. Test automation is about performing the tests. Finding bugs will left to the human testers. Let me list out the test automation methods available,

1. Record and Play back(UI automation)
2. Code coverage
3. Unit testing using frameworks
4. Code analysis (static and dynamic)
5. Memory profiling and Performance analysis.

The list is not an final one. As I come to know, more ways to test it will be updated.

Name tags in Picasa

With the name tags, Google solved the one of big problems in the photo albums. Now, searching the albums easier and no need to tell the name of the persons to everyone. Just tag it, it will be shown.

Check it out. I've another thousand faces to name.

Wednesday, November 19, 2008

Emma - Free code coverage tool

Emma is an easy use open source code coverage tool. It has both the on-the-fly and offline instrumenting. Invoking can be done by ant task or command line operations.

I've tried the offline instrumentation with the following commands,

1. Instrument the class
java -cp emma.jar emma instr -m overwrite -cp My.jar

2. Running the application
Placed the emma.jar in the application classpath. Run the tests in the application.

3. Generating report
java -cp emma.jar emma report -r html -in coverage.em,coverage.ec

In order to understand the effectiveness of the code coverage, the following are needed,

1. List of cases/steps/features which are going to be tested
2. List of classes/jars under test which are instrumented
3. Result of the test
4. Coverage report

Read this article to know more about the coverage analysis.

Wednesday, November 12, 2008

Code coverage

Code coverage is one of the basic metrics to measure code and test effectiveness. Usual definition is,

Code coverage is a measure used in software testing. It describes the degree to which the source code of a program has been tested. It is a form of testing that inspects the code directly and is therefore a form of white box testing. Currently, the use of code coverage is extended to the field of digital hardware, the contemporary design methodology of which relies on Hardware description languages (HDLs).

Code coverage techniques were amongst the first techniques invented for systematic software testing. The first published reference was by Miller and Maloney in Communications of the ACM in 1963.
 from Code coverage

It works in the following ways,

1. Instrumenting - Extracting the meta-data information from the byte code and saving that in file.
2. Monitoring - Monitoring the accessed code when the software is tested.
3. Report - Saving the collected data in to an report formation usually html.

Instrumenting may be done either onthefly or offline. More over eclipse plugins are available for the some tools.

A simple search will revel the existing code coverage tools for the different languages.

For Java, I've tried the following tools,

Emma
Cobertura

Both are open-source free tools. However, Emma can instrument the whole jar files. Cobertura only instruments the single class files at a time

The Dark Trio

Off topic:

The dark trio is follows,
1. Dark matter
2. Dark Energy
3. Dark Flow

How to measure these and do something with this?????????????????????

Find bugs using Findbugs

Findbugs is an statical code analysis tool developed by University of Maryland. Check it out here, http://findbugs.sourceforge.net/

It has both ant and command line options to analyze the codes. However, most of commands won't work in windows. Windows users needs to get the Cygwin to get the commands working.

It offers the following,
1. You can write your own custom filters.
2. Filtering out results w.r.t class,jar,version etc
3. Suppressing the bugs which are false positives.

It is an alternative to the commercial tools which costs a bomb. Do check it out.

Thursday, October 23, 2008

Static Code Analysis

Static code analysis is a way to find the errors in the code without executing the code. Static code analysis has lot of advantages over the normal testing.

1. No need to wait for full software or code to start the testing.
2. No need to write any script/steps for testing

Apart from that you can easily verify different versions code for the errors. Some of the errors it can find,

1. Infinite loops
2. Null pointers

Open source tools such as Findbugs are doing a good job in this area. Will discuss about them later.

Rajasankar

Tuesday, October 21, 2008

Linux in Windows

Wine is popular with computer geeks too. I am talking about the Windows Emulator in Linux. Check about the more here. Is there any tool that can do this in reverse? i.e, Linux Emulator for Windows.


Yes, that is Cygwin.

What is Cygwin,

Cygwin is a Linux-like environment for Windows. It consists of two parts:

A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality.
A collection of tools which provide Linux look and feel.

The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, with the exception of Windows CE.

Note that the official support for Windows 95, Windows 98, and Windows Me will be discontinued with the next major version (1.7.0) of Cygwin.



What it won't do

Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want it to run on Windows.

Cygwin is not a way to magically make native Windows apps aware of UNIX ® functionality, like signals, ptys, etc. Again, you need to build your apps from source if you want to take advantage of Cygwin functionality.

About that in Wikipedia


It's installation is easy and occupies about 3-4 GB of space in the harddrive. Once installed, run the cygwin.bat from the installed folder to get the Linux in Windows.

Thursday, October 16, 2008

Folders in GMail

There are no folders in the GMail, correct? Yahoo and MSN has it. However, GMail does have the folders option, only thing that we need to use one more check while creating the filter.

When creating the filters to apply the labels, check the Archive(Skip Inbox) option. From next time the mails will directly go to the folders.

Okie, what to do for the existing mails? Simple, select the mails and click on archive. You will find that only the repestive folders(labels)

Rajasankar

Wednesday, October 15, 2008

RSS in Thunderbird

RSS is an effective way to keep a tab on the news, blogs etc. I've tried some tools such as RSSBandit initially and finally settled with Thunderbird. See how to use Thunderbird as an effective RSS tool, from here.

My reasons for using Thunderbird for RSS reading

1. In one window, I can read all. As Thunderbird is my mail client, I dont want open an another software for just reading blogs.
2. Power of Add-ons such as remove duplicates available in Thunderbird.
3. Easy to setup and manage.
4. It can download the blog contents rather than visting the blog to view the entire content. i.e. offline availblity.

Try it. Tell me how it works.

Rajasankar

My First post

Welcome to my blog


This is my first post in this blog. I had tried blogging some ago, starting with this. I didn't continued that.



Rajasankar

ShareThis

raja's shared items

There was an error in this gadget

My "Testing" Bundle