Thursday, May 28, 2009

The Software Testing Tools: A Description

The offshore software testing process basically involves a series of steps and follow-ups related to the tests. It is entirely the testing team’s strategy of testing of applications. There are many approaches to software testing, but effective testing of complex products is essentially a process of investigation, not merely a matter of creating and following routine procedure. Following are some of the tools found in the market which are useful in different stages of the offshore software testing process:

Anteater: Anteater is a software testing framework which provides an easy way for the software testing process including writing of tests required for checking the functionalities of web applications.

Apodora: This is a framework and tool which is used for functional testing automation of web applications. Apodora provides programmatic control of the web browser allowing direct interaction with its own user interface. It consists of a database backend which helps the user to remember how HTML elements can be found.

Autonet: Autonet is a GUI (graphical user interface) network test platform which is based on CLI. The tool is helpful in arrangement of test cases, configure commands to devices. Autonet can also run commands to check the test results and record them simultaneously.

Avignon: This tool is helpful in acceptance testing wherein executable tests can be written in a user-defined language. XML is used to define the language syntax and leaves the semantics of the tests with the user if he or she wishes to extend the language. Avignon also includes modules which are useful for testing HTML applications.

Blerby Test Runner: Blerby Test Runner is an Ajax test runner for PHP language. This tool supports SimpleTest and PHPUnit 3.x. Blerby allows software developers to reengineer the code while also issuing notification about changes. The tool is also useful for tracking test dependencies.

Canoo WebTest: Canoo WebTest is widely used for outsourced functional testing process of web pages. It is actually an open source framework used for testing and is built on top of HttpUnit.

Crosscheck: Crosscheck is an open source testing framework used for the verification of the in-browser JavaScript. The tool ensures that the code can be run in different web browsers or not without any installation of the browsers. Only JVM (Java Virtual Machine) is needed for the purpose.

Dogtail: Dogtail is a GUI tool used for offshore software testing services and an automation framework coded in Python language. Dogtail uses different technologies for accessibility and to communicate with desktop applications. The scripts are written in Python language and executed likewise.

Offshore software testing services are reasonable enough. Most of the offshore software testing providers use some of the above tools in different stages of the software testing cycle. Even the quality assurance services provided in India are cost-effective and right on the money.

Monday, May 25, 2009

Database Owners Wary of Database Archiving Software Even After Knowing its Benefits

Database archiving software and database archiving solutions are created by some of the biggest companies in the IT world. But there has been a resonating hesitance on the part of the companies to adopt the software although news has been wild that the software can trim the fat and protect historical data present in the enterprise databases. There are some reasons mentioned for this, by analysts. The prime reasons are:

1) The benefits of database archiving have always been difficult to quantify. Those database archiving softwares which are introduced by companies are catered to large database. Burgeoning database owners can always look to shell money on hardware for backup.

2) Databases contain critical data related to the company and hence database owners are averse to exposing it to relatively unknown products.

3) Some database archiving solutions providers are unable to point out the benefits of database archiving in an effective manner. Also, they are unable to address the direct pains of different companies related to data management. Compliance issues and their future monstrous consequences if not heeded to, are not explained in detail by the vendors.

4) Firms are not usually proactive to search for characteristics they actually need from a database archiving software.

5) Storage administrators and DBAs need to understand more about the intricacies of query building and other stuff rather than just the plain benefits of database archiving software. Awareness of recalling and modifying the data along with its purging technology is needed.

6) Some database administrators and users equate database archiving to deleting data. Hence awareness should be built up at first that archiving basically relates to data being moved from production database to the archive.

7) Before database archiving solutions to be implemented in any environment, it is essential to understand the data retention policies applicable to the industry. Many vendors do not attach much importance to it, but it is essential to pinpoint the advantage of archiving for retention as it is one of the most pivotal reasons why any company will opt for database archiving.

8) It is important to note that service-level agreements (SLAs) associated with data which is archived are not like those applicable for production databases. The number of users who will have archive access should also be predetermined. Backup plans for database archives should be considered too. Because the DBAs are not well prepared or the management of the company is hesitant, the archiving process can undergo lot of difficulties.

It is vital for database archiving software vendors to address the pains and misapprehensions of database administrators and storage managers about the concept. It is only then that database archiving can be a success.

Monday, May 18, 2009

The Basic Principles of Software Testing

Outsourced software testing process if not subject to the basic principles can land the tester into trouble. Haphazard testing results in chaos and incorrect judgment. Here are some of the software testing rules which when abided, can result in overall success:

1) Definition of expected results
Mostly the testers do not have their results defined and do not chalk out the most expected outcome. Without knowing this, errors in the output might miss the tester’s eye. Pre-defining the expected results can solve this problem for each of the test cases. Though this might sound ridiculous, many of the testers are known to skip this step and land eventually in a no man’s land.

2) Don’t test your own programs
Software programming is actually a creative process while testing is a negative and destructive process. To ward off creativity and then focus on the negative process of testing is a difficult switch. This writer’s analogy is similar too, as writers do not edit their own written material but get it edited through an editor.

Additionally, it might happen that the programmer has had a faulty understanding of the software design. In this case, it is most likely that the programmer would initiate the same application with a faulty outlook leading to incorrect results.

3) Check each and every test thoroughly
In many test cases, a hindsight review of earlier test results in software testing service shows that errors which were present were often overlooked because the results were not thoroughly studied.

4) Test cases should be used for unexpected conditions
Programs which are already under production when used in an innovative fashion cause a great deal of errors and bugs because most testers test the applications using valid and expected input conditions only. Using invalid or unexpected input conditions, the chances of detecting errors increase manifold.

5) Test the program for what it is expected to do and what it is not
Along with the test of whether the program is giving desired results, software testing services should also include testing of unintended side effects. These include unwanted disk files or tarnished records. Examination of data structures and reports will reveal that the output can shows what it is not supposed to do though it does what it is expected to do.

6) Software testing should be done with the intent of finding errors
Software testing services include testing processes that locate errors and not with the intent of rendering the program as perfect. The probability of locating more errors is directly proportional to the number of errors already found.

Wednesday, May 13, 2009

Offshore Software Testing: Best Practices for Testers

Offshore software testing has certainly come of age. In recent years, the quality of software testers from India and other Asian countries — which serve as prime outsourcing destinations for the western countries — have improved considerably.
Herein are some of the best practices for software testers:

1) The test results need to be analyzed thoroughly and should not be ignored. Troubleshooting the failed attempts are crucial too as it might lead to eventual success. Also providing solutions to bugs which are stored in logs is also important.

2) It is helpful to maximize the test coverage while on a test.

3) For ensuring maximum test coverage, using application under test (AUT) for breaking into smaller functional modules is useful. Break them in to smaller parts if possible, and write test cases for these modules.

4) It is beneficial to write test cases for intended functionality i.e. for valid conditions first and then invalid conditions.

5) Test the application with a clear intent of finding bugs/errors. If the application is tested with the intention of finding bugs then chances are, that even subtle bugs can be traced from the program.

6) It is essential as well as beneficial in software testing to write the test cases in requirement analysis and design phase itself.

7) Prior to coding, make the test cases available to developers and do not wait in anticipation of more bugs.

8) Grouping will ensure quick and effective manual regression testing.

9) Software applications should be thoroughly tested for performance especially those applications which require quick response time. If manual software testing and preparation of test cases is not possible manually, then take help from developers.

10) After basic unit testing of developed applications, to release the application for testers. But the testers should never force the developers to complete the project hurriedly; they should take their own time.

11) After requirement testing, try to do some negative software testing on the application that is for what it is not supposed to do.

12) Always note down the new terms while conducting tests of an application and during the creation of the final test release report.

13) Keep developers away from test environment to detect any possible configuration changes which might get missed in the release or deployment document.

14) Its a good practice to involve testers right from software requirement and design phase so that they can get the hold of the whole software development lifecycle.

15) It is advantageous for software testing teams that they share best testing practices and experience with other software professionals in the organization.

16) Prepare an unambiguous bug report by not only stating the bugs, but about its effects and effective solution.

Tuesday, May 5, 2009

The Timeline and History of SaaS (Software as a Service)

It's known very well in the computing world that SaaS (Software as a Service) almost met its doom during the dot com bubble in 2001. While this concept was a revolutionary concept, it basked upon highly expanded expectations and boomed initially. When the dot com bubble burst, SaaS services came to a decline competing with most other new technologies which had an edge over it. However, after the dot-com bubble burst, SaaS regained its stature and has ever since marching forward, never looking back.

In the late 90's few people disagreed with the concept of subscription pricing along with the hosted delivery and outsourced expertise features. However, the applications present during that time were not capable of operating in the limited bandwidth environment of the Internet. Even the software vendors were not even slightly interested in tweaking their pricing models which was an all-money-up-front approach. The SaaS approach was basically a deferred revenue collection over the life of the customer and vendors needed serious convincing to switch in with the pricing model. The high-profile CRM vendors too which consisted of big shots like Microsoft, Oracle and SAP ignored and ridiculed the SaaS approach. Most of the vendors did not embrace this application software evolution at that time.

The SaaS products which belonged to the first generation CRM had their birth as point solutions. Some of the most prominent niche players consisted of UpShot and SalesNet. These solutions provided an application-specific solution to assimilate specific business needs, but were not useful or appealing to the customer in the broader sense. These providers had limited features in their products and also limited resources at their disposal. Hence when the market took a turnaround and competitors offered better products, they lost their importance and eventually vanished in to thin air.

This led to the advent of Salesforce.com, NetSuite, and the like who created intentionally-built SaaS solutions and marketed them as software subscriptions. These then formed applications have later helped the evolution of this business model and reap much of the profits and the industry's market share.

Major growth drivers for SaaS services have been:
1. Today’s world boasts of an omnipresent Internet access especially broadband access, online media solutions are flourishing extensively, while wireless access is growing tremendously too. Penetration rates are recorded to have reached 50% or more in most developed countries. Amazon, eBay and similar sites have created faith in people to do business online and have literally wiped out their hesitance in dealing online. People do business and communicate online extensively today.

2. There also has been intensive and rapid improvement in application functionality. Online CRM systems are evolving from standalone contact managers to full-fledged CRM applications and in many cases, outperforming their decades-old client/server predecessors.

3. There has been severe backlash over the software licensing model as software vendors have a notorious reputation. Once they lock up a customer with a license, they do not care about the proceedings. SaaS services are much more accountable for satisfying customers after the initial sale. 4. SaaS has reduced the upfront cost and the overall risk for customers. With a modest investment under one’s belt, one can take benefit of the services and does not hold one with a non-refundable software license.