Monday, June 9, 2008

Using SSH

SSH is a program to log into another computer over a network, to execute commands in a remote machine, and to move files from one machine to another. It provides strong authentication and secure communications over insecure channels. SSH is most useful when logging into a UNIX machine from another machine where the traditional telnet and rlogin programs would not provide password and session encryption.

Now we'll take a look at some basic SSH commands in networking.
To login to a remote machine running sshd server you can use the any of the following formats.

# ssh -l remote_user host_name_or_ip
# ssh remote_user@host_name_or_ip
# ssh -l root
# ssh

To execute a command on the remote machine without logging in explicitly you can use,
# ssh -l remote_user host_name_or_ip remote_command
# ssh -l bud@ /usr/bin/x11/xclock
It starts the xclock application in the remote machine.

To ftp securely you can use sftp.
# sftp bud@

sftp> cd downloads - Used to change directory
sftp>mput *.rpm - Used to upload multiple files
sftp>mget httpd* - Used to download multiple files
sftp>help - See a list of commands

To copy files from one host to another try
# scp [-r] source user@remote_host:target
# scp bud@ /tmp

Still there is SSH server and client configuration and do you knw how to configure passwordless SSH login?

AdventNet QEngine 6 - Web Performance Test Tool

Lets have some practical experience on a testing tool. AdventNet QEngine Web Performance Test tool is a powerful, easy-to-use and affordable web load testing tool to quickly test the performance of your web sites and web-based applications. Its automatic analysis enables you to accurately simulate the traffic of thousands of users to identify and isolate performance bottlenecks and optimize user experience within minutes.

Main Features of AdventNet QEngine 6
  • Test Scheduling and Command Line Toolkit
  • Web Performance Testing (Load Testing)
  • Web Services Testing (Functional & Performance)
  • QEngine Issue Tracker
  • QEngine Toolbar for remote record/playback of user actions
  • Browser-based Web testing
  • Jython Test Scripts
  • Environment Independent Tests
  • Powerful Script Editor
The basic steps involved in QEngine Load Testing testing are as follows:

The detail picture of testing with QEngine is provided here.

Now we'll take a look at some of the outputs of the load testing with QEngine.

Transaction Status Summary

The above figure shows a transaction status summary graph provides a snapshot of Requests pending, Response pending & Response status such as, download started and download completed. If pending Request / Response is too high then check the test duration in Summary Report and the error distribution graph in Error Report to identify the problem.

Hits Per Second

This graph shows the number of HTTP/S requests made by Virtual users to the server during each second of the run.

URL wise Response Time Report

More details about QEngine testing is available in the link provided above. The report also speaks of another load and stress testing tool called WAPT 5.0 that provides with an easy-to-use, consistent and cost-effective way of testing web sites, web servers, and intranet applications with web interfaces.

A Little Survey on Software QA Tools

Many modern software systems consist of large sets of heterogeneously developed components. Object-oriented design, component-based software engineering, components off-the-shelf (COTS), design patterns, and open source software facilitate the development tasks, but assuring the quality in scenarios that entail (combinations of) these concepts is problematic.

Basically so many categories of test tools are available in the industry today. Some of the most important categories of these test tools are listed below.

  • Application Test Tools
  • Web Test Tools
  • Test Management Tools
  • Bug Tracking Tools
  • API Test Tools
  • Communications Test Tools
  • Requirements Management Tools

Most of the test tools are available in open source too. These tools are free. There is no need to pay a vendor to use these tools, but they still have a cost of ownership through evaluation, implementation, training and maintenance costs, the same as any software does. But with a handful of commercial vendors dominating the proprietary software testing tools market, make no mistake about it.

The paradox of quality assurance is that, although it’s a key value for every organization, the actions taken to ensure it are often left until late in the lifecycle when budgets are scarce, time is short and there is high pressure to deliver to the market. As a result there are often challenges associated with improving the software development process, reducing costs, improving quality and increasing reliability of planning. But so far the efforts to overcome these challenges are being successfully handled by software QA professionals to best safeguard the quality of good software.

From my viewpoint I found that future of software testing and quality assurance will be doing more on the web. The evolution in web development over the past two to three years has ushered in a new set of challenges for software quality professionals across the board; specifically, the emergence of Web 2.0 and the introduction of Ajax and SaaS architectures as new approaches for building rich content applications for the web. Such shifts combined with the need for enterprises to be agile and deliver products to market in shorter product cycles, has dramatically challenged many of the existing testing tools and rendered many old record and replay approaches almost obsolete. A detail survey of mine on these QA tools is attached here. It also consists descriptions of various leading testing tools in market today.

Today it will be impractical to rely too much on human configurations, tests, debugging, and management because software systems today are of very large scale and contain numerous components and users. It is believed that, it is time to bring a new generation of cutting-edge technologies and innovative processes to software testing that will assist software quality professionals in building better software easier in the near future.