Keywords and their Explanations

Network-attached storage (NAS) is storage made available over a network rather than over a local connection (such as a bus). NFS (Network File System) and CIFS (Common Internet File System) are common protocols used by NAS. It can be implemented via Remote Procedure Calls (RPCs) between host and storage. Using NAS we can implement new iSCSI protocol which uses IP network to carry the SCSI protocol.



Storage Area Network (SAN) is common in large storage environments (and becoming more common). It can be used in multiple hosts attached to multiple storage arrays and it is more flexible than the HAS and NAS.


RAID uses multiple disk drives to provide reliability and performance via redundancy. RAID is arranged into six different levels i-e RAID-0 to RAID6 as shown in following diagram. Several improvements in disk-use techniques involve the use of multiple disks working cooperatively. Most common is Disk striping that uses a group of disks as one storage unit. RAID schemes improve performance and improve the reliability of the storage system by storing redundant data. Mirroring or shadowing keeps duplicate/copy of each disk. Block interleaved parity uses much less redundancy


Network interface card (NIC) is a computer circuit board that is installed in a computer to connect the computer to a network. Network interface cards provide a dedicated, full-time network connection for enterprise desktop PCs or servers.

Hosted Attached Storage (HAS) can be accessed through I/O ports talking to I/O busses. It uses SCSI and SCSI itself is a bus, up to 16 devices on one cable, SCSI initiator requests operation and SCSI targets perform tasks. Each target can have up to 8 logical units (disks attached to device controller

Virtual infrastructure is the basis for flexible, scalable and low-cost enterprise IT that has the capability to respond immediately to changing business needs. Virtual infrastructure decouples application workloads completely from underlying physical hardware. This allows applications to be deployed across a pool of physical servers to improve hardware utilization and management flexibility. The key building block of virtual infrastructure is a platform that abstracts the physical resources of an industry-standard server to provide a set of virtual resources to an application. VMware ESX Server provides that virtualization platform, and VMware VirtualCenter manages the virtual machines on physical servers running ESX Server. VMware VMotion permits the migration of applications running on virtual machines across this pool of virtual resources without service interruption.

Virtual machine is a virtualized Intel Xeon processor–based server environment on which a guest operating system and associated application software can run. Multiple virtual machines can operate on the same host machine concurrently.

Recommendations for VMware Deployment

Recommendations

The Network Storage device Division always recommends RAID-DP and a hot spare drive for the maximum data protection value. Additionally, we suggest SnapRestore and Network Storage device Replication licenses to ease LUN snapshot copies and to allow movement of VM files to a second Network Storage device in an alternate location. Further, Intel provides many devices that have been discussed above, therefore it is recommended “Intel processors, NICs”. A survey was recently done to analyze and following diagram shows the result.




See More

VMware Deployment Requirement

ESX Host Requirements

1. At least two 150 MHz processors (Intel Xeon or later or AMD Opteron™ (32 bit mode)).
2.1GB RAM minimum.
3. One or more supported Ethernet controllers.
4. A SCSI adapter, Fibre Channel adapter, or internal RAID controller.
5. SCSI disk drives are supported for installing ESX Server.
6. A SCSI disk, Fibre Channel LUN, or RAID LUN with unpartitioned space.
7. For iSCSI, a disk attached to an iSCSI target and some disk drives.
8. Network Interface Card (NIC)
9. Storage of virtual machines is currently not supported on internal, local IDE/ATA drives or internal RAIDs. Virtual machines must be stored on VMFS (Virtual File System Management) partitions configured on a SCSI drive, a SCSI RAID, or SATA drives on a SAN.

This can be challenging if servers are Peripheral Component Interconnect (PCI) slot–on-strained. Every IT administrator also needs to mitigate reliability risks. On a server that is operating multiple applications on multiple virtual machines, a connection failure can be a costly business interruption that is time-consuming to fix. If redundant network connections are desired to enhance the reliability of servers hosting many applications, the issue intensifies—up to four ports could be required per server. In addition, IT administrators must be able to segment traffic to maintain a flexible and secure network. The flexibility to assign NICs to servers and virtual machines enables administrators to increase performance quickly during peak times. Server workloads are always growing in size as well, which means that enterprises need multiple network connections that provide the throughput to respond immediately to employee and customer requests for data. All of these requirements consume server ports. For that reason, Intel created the Intel PRO/1000 MT Dual Port and Quad Port Server Adapters, which are optimized for Intel Xeon processor–based servers. They provide the foundation for a flexible and reliable virtual infrastructure. Intel dual- and quad-port adapters conserve valuable PCI slots in servers while helping to eliminate network bottlenecks—especially in a connection-dense virtual machine environment. Migration to high-speed Gigabit Ethernet can also be achieved easily and cost-effectively using Intel multi-port NICs.

Dedicated ports for virtualization

Intel PRO/1000 MT Dual Port and Quad Port Server Adapters have two or four Gigabit Ethernet connections in a single PCI card, delivering increased port density for slot-constrained servers. A single, integrated, dual-port Gigabit Ethernet controller chip provides high performance and reliability along with low power consumption. For servers running VMware server virtualization software, ESX Server best practices strongly recommend extra ports to establish separate physical networks for application production traffic, for management and for VMotion virtual machine migration


Virtualization: Making the Connection

To improve return on investment (ROI) and reduce TCO, organizations need to make the most of what is already in place. Virtual IT infrastructure has become a powerful enabler for consolidating servers, for running applications in multiple operating-system environments, for simplifying administration and for lowering operating costs. VMware software on Intel Xeon processor–based servers provides a robust virtualization platform, and Intel NICs provide the connections to make the virtual IT infrastructure a reality. Together, VMware and Intel help IT managers reach their common goal: serving enterprise needs in the most efficient and responsive way possible.

See More
- Deployment of VMware along with Network Storage
- Virtualization Solution
- VMware Deployment Requirement
- Recommendations for VMware Deployment

Virtualization Solution

A basic virtualization solution will include the following components:

1. A VMware ESX Server installation.
This software operating system installs on a single physical server (or can create a cluster using several physical servers). VMware can then “host” multiple virtual servers—each with their own operating systems and applications—all running in parallel on the same server hardware. VMware also includes the necessary initiators and network clients to connect to network storage.

2. Gigabit Ethernet switches and cables.
These switches and cables connect the physical server acting as the VMware host to the Network Storage device hardware. VMware and a Network Storage device provide immediate benefits to your IT environment that spring from the virtualization of both processing power and storage resources.

3. Network Interface Card (NIC): Providing the Glue for VMware Virtual Machines

Often taken for granted in servers, the NIC capacity must be carefully maintained on servers hosting multiple virtual machines. Best practices for VMware ESX Server recommend a minimum of three network adapters:

* One for the virtual machine and its applications
* One for the VMware service console to handle system Administration
* One for VMotion to enable dynamic workload balancing

4. Easy and non-disruptive storage management.
Thin provisioning lets volumes grow on the fly as needed by a virtual machine. No longer are you limited to specific, inflexible server and application LUN allocations. All volumes on a Network Storage device benefit from Advanced Protection Architecture. Each virtual machine has a dedicated LUN and, on a Network Storage device, each LUN is on its own volume. LUNs can grow without any downtime, and new disk capacity can even be added to the system on the fly, so there is no disruption for users or applications when additional storage is required. Network Storage device’s FlexVol thin provisioning technology provides unmatched efficiencies in advanced storage virtualization for file volumes. Thin-provisioned storage has been provisioned just like traditional storage, but it is not consumed until data is written. Users can dramatically increase their storage utilization without sacrificing performance.

5. Painless backup and restore.
Now you need not depend on tapes and backup servers. The Network Storage device S500’s Snapshot technology enables reliable and instant backups and restores of virtual machine data. Choose from multiple points in time to backup or recover a file or folder for any virtual machine using the Network Storage device.

See More
- Deployment of VMware along with Network Storage
- Virtualization Solution
- VMware Deployment Requirement
- Recommendations for VMware Deployment

Deployment of VMware along with Network Storage

VMware ESX and GSX Server along with Network Storage

VMware enables enterprises to create a virtual infrastructure, which provides a layer of abstraction between the computing, storage and networking hardware and the software that operates on it. With a virtual infrastructure, users see resources as if the resources were dedicated to them. The administrator manages and optimizes resources transparently across the data center. IT infrastructures are getting more complex each day with an increasing number of applications, increasing data storage demands, and smaller backup windows. Different applications run on a variety of operating systems and physical servers with widely differing storage needs. Valuable IT staff time is consumed by simply managing these various servers, applications and storage requirements and by putting out the never-ending series of IT fires.

Building Virtual Infrastructure with VMware

VMware GSX Server and ESX Server provides a virtualization layer that allows multiple virtual machines to operate simultaneously on a single physical server. ESX Server provides IT administrators with additional capabilities that give them complete control over the server resources allocated to each virtual machine. GSX Server and ESX Server software typically enable organizations to run one to eight virtual machines per processor on 2-way, 4-way, 8-way and 16-way servers, up to a maximum of 64 virtual machines per physical server with GSX Server and 80 virtual machines per server with ESX Server.

VMware VirtualCenter management software is used by system administrators to manage virtual machines across many physical systems. VirtualCenter simplifies the management of virtualized Intel architecture–based environments, whether they use Microsoft Windows*, Novell NetWare* or Linux* operating systems. In addition, VMware VMotion technology allows administrators using VirtualCenter to migrate a live virtual machine to a different physical server without service interruption, making dynamic workload balancing and zero downtime hardware maintenance possible.
See More

Testing Tools - Unit - SQL

SQL Unit Testing Tools

1. PDbSeed

PDbSeed is a database seeding and verification tool written in Python. PDbSeed performs an operation, such as DELETE or INSERT, on a database using an XML dataset file for input/output.
Requirement: Python version 2.3 and 2.4, MySQL

2. SPUnit

SPUnit is an application of the popular xUnit framework concept to enable unit testing of SQL Server stored procedures.
Requirement: Windows NT/2000
Download data: Downloadable files: 631 total downloads to date

3. SQLUnit

SQLUnit is a regression and unit testing harness for testing database stored procedures. An SQLUnit test suite would be written as an XML file. The SQLUnit harness, which is written in Java, uses the JUnit unit testing framework to convert the XML test specifications to JDBC calls and compare the results generated from the calls with the specified results.
Requirement: OS Independent (Written in an interpreted language)
Download data: Downloadable files: 10912 total downloads to date

4. TSqlTest

TSqlTest is a simple, lightweight testing framework for Microsoft SQL Server. It utilizes just two technologies you are already familiar with: T-SQL scripts and .bat scripts. It is intended to be used as part of a continuous integration environment. TSqlTest can be used to test stored procedures, triggers, functions, and database "state".
Requirement: Microsoft SQL Server

5. TSQLUnit

TSQLUnit is a framework to write tests for applications written in Transact-SQL.
Requirement: Python
Download data: Downloadable files: 11547 total downloads to date

6. utPLSQL

utPLSQL is a unit testing framework for programmers using Oracle's PL/SQL language.
Requirement: OS Independent
Download data: Downloadable files: 46818 total downloads to date


See More

Functional Test Tools – All free and Open-Source
Performance Test Tools – All free and Open-Source
Security Test Tools – All free and Open-Source
Unit Testing Tools – All free and Open-Source
Unit Test C/C++
Unit Test Java
Unit Test .Net
Unit Test PHP
Unit Test SQL


Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available
Server Virtualization – World’s Hottest Topic – A Good Research Work

If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Testing Tools - Unit - PHP

PHP Unit Testing Tools

1. Amock

Amock is a mock object library written in PHP 5, inspired by EasyMock. Mock objects for classes or interfaces are generated on the fly using a source code generator.
Requirement: POSIX

2. izh_test

izh_test is a xUnit-like framework which allows users to test php pages using the console version of php, uses file compare for checking results of tests, and can test session state content and db state content too
Requirement: Windows
Download data: Downloadable files: 635 total downloads to date

3. PHP Assertion Unit Framework

Unit testing framework based on assertions which helps PHP developers test their code. Failing assertions about the program state are tracked in a Reporter window of a DOM-compliant browser such as IE5+, Mozilla, Netscape 6+, etc.
Requirement: tbc
Download data: Downloadable files: 6467 total downloads to date

4. PHPUnit

Unit testing framework for PHP based on the "JUnit" framework for Java
Requirement: OS Independent, PHP
Download data: Downloadable files: 34847 total downloads to date

5. PHPUnit

PHPUnit is a family of PEAR packages (PHPUnit2 for PHP 5, PHPUnit for PHP 4) that supports the development of object-oriented PHP applications using the concepts and methods of Agile Software Development, Extreme Programming, Test-Driven Development and Design-by-Contract Development by providing an elegant and robust framework for the creation, execution and analysis of Unit Tests.
Requirement: PHP4, PHP5

6. SimpleTest

Unit testing, web testing and mock objects framework for PHP. Additional features are generation of server stubs, integration of PhpUnit and PEAR test cases, on-line tutorials and documentation. The web testing won't be fully finished until version 1.0, but the other functionality is stable.
Requirement: PHP
Download data: Downloadable files: 91006 total downloads to date

7. Spike PHPCheckstyle

Spike PHPCheckstyle is an open-source tool that helps PHP programmers adhere to certain coding conventions. The tools checks the input PHP source code and reports any deviations from the coding convention.
Requirement: PHP 5.0 and newer

8. Spike PHPCoverage

Spike PHPCoverage is an open-source tool for measuring and reporting code coverage provided by the test suite of a PHP application. Spike PHPCoverage can instrument and record the line coverage information for any PHP script at runtime.
Requirement: PHP
Download data: Downloadable files: 1242 total downloads to date

9. Testilence

Testilence is a unit-testing library for programs written in PHP 5. Although it is similar to other JUnit-inspired unit testing libraries, Testilence is written with an emphasis on what is useful, not what is usual. That said, most clever ways of doing useful things for unit test authors and users have already been discovered. Testilence combines original ideas with the best features found in different unit-testing toolkits into a coherent set.
Requirement: POSIX


See More

Functional Test Tools – All free and Open-Source
Performance Test Tools – All free and Open-Source
Security Test Tools – All free and Open-Source
Unit Testing Tools – All free and Open-Source
Unit Test C/C++
Unit Test Java
Unit Test .Net
Unit Test PHP
Unit Test SQL


Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work


If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Testing Tools - Unit - .Net

.Net Unit Testing Tools

1. .NETUnit

An implementation of the XUnit testing framework designed specifically for unit testing components written for the .NET platform.
Requirement: OS Independent (Written in an interpreted language)
Download data: Downloadable files: 6213 total downloads to date

2. ASPUnit

Unit testing framework for testing Microsoft Active Server Pages (ASP).
Requirement: Microsoft Internet Information Server 5.0 or 5.1
Download data: Downloadable files: 5965 total downloads to date

3. BizUnit:

Test framework for automated testing, enables the rapid development of test cases, specifically targetted but not restricted to testing BizTalk solutions.
Requirement: .Net

4. csUnit

csUnit is a unit testing framework for the Microsoft .NET Framework. It targets test driven development using C#, Visual Basic .NET, and managed C++.
Requirement: csUnit has been tested using the Microsoft .NET framework 1.0 Service Pack 2 runtime on an Intel-compatible platform.
Download data: Downloadable files: 45516 total downloads to date

5. dotUnit

dotUnit is a port of JUnit to the Microsoft .net platform. This testing framework allows for automated unit and functional tests which are vital for refactoring and regression testing.
Requirement: All 32-bit MS Windows (95/98/NT/2000/XP)
Download data: Downloadable files: 6841 total downloads to date

6. EasyMock.NET

EasyMock.NET is a class library that provides an easy way to use mock objects for given interfaces or remote objects. EasyMock.NET is a port of the EasyMock framework, which can be found for the Java(TM) platform.
Requirement: All 32-bit MS Windows (95/98/NT/2000/XP)
Download data: Downloadable files: 5536 total downloads to date

7. NCover

A test code coverage tool for C# .NET to tell you how much of your program is covered by your automatic tests. Instruments source code prior to running unit tests to establish test coverage. Nant integration. For use with continuous integration builds
Requirement: All 32-bit MS Windows (95/98/NT/2000/XP)
Download data: Downloadable files: 19565 total downloads to date

8. NUnit

NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current version, 2.0 is the second major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages.
Requirement: Windows NT/2000
Download data: Downloadable files: 1551368 total downloads to date

9. NUnit Addin for Visual Studio.NET

Point and Test NUnit integration for Visual Studio.NET. The aim of this project it to simplify testing and debugging using the NUnit framework inside of Visual Studio.NET.
Requirement: Windows
Download data: Downloadable files: 58588 total downloads to date

10. NUnitAsp

NUnitAsp is a tool for automatically testing ASP.NET web pages. It's an extension to NUnit, a tool for test-driven development in .NET.
Requirement: Windows NT/2000
Download data: Downloadable files: 83647 total downloads to date


See More

Functional Test Tools – All free and Open-Source
Performance Test Tools – All free and Open-Source
Security Test Tools – All free and Open-Source
Unit Testing Tools – All free and Open-Source
Unit Test C/C++
Unit Test Java
Unit Test .Net
Unit Test PHP
Unit Test SQL


Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work


If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Testing Tools - Unit - Java

Unit Test Tools - Java

1. Checkstyle

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.
Requirement: OS Independent
Download data: Downloadable files: 256439 total downloads to date

2. Cobertura

Cobertura is a free Java tool that calculates the percentage of code accessed by tests. It can be used to identify which parts of your Java program are lacking test coverage. It is based on jcoverage.
Requirement: OS Independent
Download data: Downloadable files: 69653 total downloads to date

3. Continuous Testing

Continuous testing uses excess cycles on a workstation to continuously run regression tests in the background, providing rapid feedback about test failures as source code is edited. It reduces the time and energy required to keep code well-tested, and prevents regression errors from persisting uncaught for long periods of time.
Requirement: OS Independent (Written in an interpreted language)

4. DDSteps

JUnit extension making test cases data driven. Uses external test data (in Excel, XML etc) which is injected into your test case using standard JavaBeans properties. Data enables and integrates toolkits such as jWebUnit and DbUnit. 100% JUnit compatible
Requirement: OS Independent
Download data: Downloadable files: 7764 total downloads to date

5. DepUnit

DepUnit is a data and dependency driven unit test system for Java. DepUnit is ideal for sets of tests that depend on data from previous tests. DepUnit makes it easy to run the same tests over multiple data sets.
Requirement: Java

6. EclEmma

EclEmma is a free Java code coverage tool for Eclipse, available under the Eclipse Public License. Internally it is based on the great EMMA Java code coverage tool, trying to adopt EMMA's philosophy for the Eclipse workbench.
Requirement: Eclipse
Download data: Downloadable files: 827607 total downloads to date

7. Ejb3unit

Ejb3Unit - out of container EJB 3.0 testing. Ejb3Unit is a JUnit extention and can execute automated standalone junit tests for all JEE or Ejb3 projects. The out of container approach leads to short build-test-cycles, no container deployment is needed.
Requirement: OS Independent
Download data: Downloadable files: 12041 total downloads to date

8. GroboUtils

GroboUtils aims to expand the testing possibilities of Java. It contains many sub-projects which experiment with one aspect of testing through Java. Some projects are present to add shared functionality between the testing sub-projects, while others are remnants from the old purpose of GroboUtils (a collection of useful libraries).
Requirement: OS Independent
Download data: Downloadable files: 24041 total downloads to date

9. Hansel 1.0

Hansel is an extension to JUnit that adds code coverage testing to the testing framework.
Requirement: Java , JUnit and BCEL 5.0
Download data: Downloadable files: 6922 total downloads to date

10. Jester

Jester finds code that is not covered by tests. Jester makes some change to your code, runs your tests, and if the tests pass Jester displays a message saying what it changed. Jester includes a script for generating web pages that show the changes made that did not cause the tests to fail. Jester is different than code coverage tools, because it can find code that is executed by the running of tests but not actually tested. However, Jester is not meant as a replacement for code coverage tools, merely as a complementary approach. Jester is for Java code and JUnit tests. Pester is Jester for Python code and PyUnit tests.
Requirement: JDK 1.2.2 or above, JUnit 3.2 or above
Download data: Downloadable files: 13361 total downloads to date

See More

Functional Test Tools – All free and Open-Source
Performance Test Tools – All free and Open-Source
Security Test Tools – All free and Open-Source
Unit Testing Tools – All free and Open-Source
Unit Test C/C++
Unit Test Java
Unit Test .Net
Unit Test PHP
Unit Test SQL


Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work


If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Testing Tools - Unit - C/C++

C/C++ Unit Test Tools

1. C Unit Test System

CUT is a simple, to-the-point unit testing system. It's different from other unit test packages in that it follows the KISS principle. It's designed for C testing, not designed to emulate SUnit.
Requirement: OS Independent
Download data: Downloadable files: 8241 total downloads to date

2. Check

Check is a unit test framework for C. It features a simple interface for defining unit tests, putting little in the way of the developer. Tests are run in a separate address space, so Check can catch both assertion failures and code errors that cause segmentation faults or other signals. The output from unit tests can be used within source code editors and IDEs.
Requirement: POSIX
Download data: Downloadable files: 29326 total downloads to date

3. CppTest

CppTest is a portable and powerful, yet simple, unit testing framework for handling automated tests in C++. The focus lies on usability and extendability. Several output formats are supported and new ones are easily added.
Requirement: OS Independent
Download data: Downloadable files: 8940 total downloads to date

4. CppUnit

CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML or text format for automatic testing and GUI based for supervised tests.
Requirement: BeOS, MacOS, Windows, OS Independent, Linux
Download data: Downloadable files: 485060 total downloads to date

5. CUnit

CUnit is a lightweight system for writing, administering, and running unit tests in C. It provides C programmers a basic testing functionality with a flexible variety of user interfaces.
Requirement: OS Independent (Written in an interpreted language)
Download data: Downloadable files: 66658 total downloads to date

6. CxxTest

CxxTest is a JUnit/CppUnit/xUnit-like framework for C++. Its advantages over existing alternatives are that it doesn't require RTTI, doesn't require member template functions, doesn't require exception handling, doesn't require any external libraries (including memory management, file/console I/O, graphics libraries) and is distributed entirely as a set of header files. This makes it extremely portable and usable.
Requirement: OS Independent (Written in an interpreted language)


7. Embedded Unit

Unit testing framework for Embedded C System. Its design was copied from JUnit and CUnit and more, and then adapted somewhat for Embedded C System.
Requirement: OS Independent
Download data: Downloadable files: 7641 total downloads to date

8. RCUnit

RCUNIT stands for Robust C Unit. It is a small framework for testing C programs. Similar to other unit testing frameworks, RCUNIT is a framework used for creating repeatable tests.
Requirement: OS independent
Download data: Downloadable files: 703 total downloads to date

9. Test soon

"Test soon" is a testing framework trying to enable you to write tests quickly, organize them easily and still being flexible. Tests can be grouped automatically by file name and in nested groups.
Requirement: OS Independent
Download data: Downloadable files: 467 total downloads to date

10. UnitTest

UnitTest was developed on the principle of keeping things simple as possible.To that point, the source code testing framework was made to allow the developer to easily write white/grey-box unit test cases. To make life easier, I also created a utility that generates unit test class source code. The entire project is really tiny and is designed to build and run out of the box! You should be able to get going within 5 mins. I have also provided two sample projects for you to play with in the package.
Requirement: Windows

See More

Functional Test Tools – All free and Open-Source
Performance Test Tools – All free and Open-Source
Security Test Tools – All free and Open-Source
Unit Testing Tools – All free and Open-Source
Unit Test C/C++
Unit Test Java
Unit Test .Net
Unit Test PHP
Unit Test SQL


Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work


If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Testing Tools - Security

Security Testing Tools

1. Oedipus

Oedipus is an open source web application security analysis and testing suite written in Ruby. It is capable of parsing different types of log files off-line and identifying security vulnerabilities. Using the analyzed information, Oedipus can dynamically test web sites for application and web server vulnerabilities.
Requirement: OS Independent

2. OSSTMM - Open Source Security Testing Methodology Manual

This manual is to set forth a standard for Internet security testing.

3. Paros

Paros is for people who need to evaluate the security of their web applications. It is completely written in Java. All HTTP and HTTPS data between server and client, including cookies and form fields, can be intercepted and modified.
Requirement: Cross-platform, Java JRE/JDK 1.4.2 or above

4. WebScarab

WebScarab is a loose suite of web application security assessment tools written entirely in Java. It is a tool primarily designed to be used by developers who can write code themselves.
Requirement: OS Indpendent

5. Wireshark

Wireshark, formerly known as Ethereal, is used by network professionals around the world for troubleshooting, analysis, software and protocol development, and education. It has all of the standard features you would expect in a protocol analyzer, and several features not seen in any other product.
Requirement: Unix, Linux, and Windows

6. Babel Enterprise

Babel Enterprise manages the risk, dividing it by domains (groups or organizations), assets and policies. With all this, it can be checked, point by point the fully compliance of a security regulation, such as UNE-ISO/IEC 27001 or other ones that depend on this such as LOPD, SOX, etc.
Requirement: Linux, Solaris, WinXP, HP-UX, IBM AIX
Download data: Downloadable files: 5636 total downloads to date

7. BFBTester - Brute Force Binary Tester

BFBTester is good for doing quick, proactive security checks of binary programs. BFBTester will perform checks of single and multiple argument command line overflows and environment variable overflows. It can also watch for tempfile creation activity to alert the user of any programs using unsafe tempfile names.
Requirement: POSIX, BSD, FreeBSD, OpenBSD, Linux
Download data: Downloadable files: 8204 total downloads to date

8. CROSS

The CROSS (Codenomicon Robust Open Source Software) program is designed to help open source projects fix critical flaws in their code. Codenomicon's CROSS program provides open source projects with full access to its award-winning DEFENSICS testing solutions, helping the projects find and fix a large number of critical flaws very rapidly.
Requirement: 130 protocol interfaces and formats

9. Flawfinder

Program that scans C/C++ source code and reports potential security flaws. By default, it sorts its reports by risk level (the riskiest operations in the code are listed first).
Requirement: Python 1.5 or greater

10. Gendarme

Gendarme is a extensible rule-based tool to find problems in .NET applications and libraries. Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET) and looks for common problems with the code, problems that compilers do not typically check or have not historically checked.
Requirement: .NET (Mono or MS runtime)

See More

Functional Test Tools – All free and Open-Source
Performance Test Tools – All free and Open-Source
Security Test Tools – All free and Open-Source
Unit Testing Tools – All free and Open-Source
Unit Test C/C++
Unit Test Java
Unit Test .Net
Unit Test PHP
Unit Test SQL


Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work


If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Testing Tools - Performance

Performance Test Tools

*Most Popular*

1. Apache JMeter

Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.
Requirement: Solaris, Linux, Windows (98, NT, 2000). JDK1.4 (or higher).

2. OpenSTA

A distributed software testing architecture based on CORBA. Using OpenSTA (Open System Testing Architecture) a user can generate realistic heavy loads simulating the activity of hundreds to thousands of virtual users. OpenSTA graphs both virtual user response times and resource utilization information from all Web Servers, Application Servers, Database Servers and Operating Platforms under test, so that precise performance measurements can be gathered during load tests and analysis on these measurements can be performed.
Requirement: Windows 2000, NT4 and XP
Download data: Downloadable files: 308980 total downloads to date

3. WebLOAD

WebLOAD Open Source is a fully functional, commercial-grade performance testing product based on WebLOAD, Radview's flagship product that is already deployed at 1,600 sites. Available for free download and use, WebLOAD is a commercial-grade open source project with more than 250 engineering years of product development. Companies that require commercial support, additional productivity features and compatibility with third-party protocols have the option of purchasing WebLOAD Professional directly from RadView.
Requirement: Windows NT/2000/XP
Download data: Downloadable files: 86442 total downloads to date

Other Performance Test Tools

1. Web Application Load Simulator

LoadSim is a web application load simulator. It allows you to create simulations and have those simulations run against your webserver.
Requirement: JDK 1.3 or above
Download data: Downloadable files: 8860 total downloads to date

2. Web Polygraph

Benchmarking tool for caching proxies, origin server accelerators, L4/7 switches, content filters, and other Web intermediaries.
Requirement: C++ compiler

3. TestMaker

TestMaker from PushToTest.com delivers a rich environment for building and running intelligent test agents that test Web-enabled applications for scalability, functionality, and performance. It comes with a friendly graphical user environment, an object-oriented scripting language (Jython) to build intelligent test agents, an extensible library of protocol handlers (HTTP, HTTPS, SOAP, XML-RPC, SMTP, POP3, IMAP), a new agent wizard featuring an Agent Recorder to write scripts for you, a library of fully-functional sample test agents, and shell scripts to run test agents from the command line and from unit test utilities.
Requirement: Java 1.4 / higher virtual machine on Windows, Linux, Solaris, and Macintosh

4. Soap-Stone

Network benchmark application which can put your network under load and conduct automatic benchmark and recording activities.
Requirement: OS Independent
Download data: Downloadable files: 5253 total downloads to date

5. PandoraFMS

Pandora FMS is a monitoring Open Source software. It watches your systems and applications, and allows you to know the status of any element of those systems. Pandora FMS could detect a network interface down, a defacement in your website, a memory leak in one of your server application, or the movement of any value of the NASDAQ new technology market.
Requirement: 32-bit Windows (NT/2000/XP), Linux/BSD/UNIX-like OSes, Solaris
Download data: Downloadable files: 101039 total downloads to date

6. Pylot

Pylot is a free open source tool for testing performance and scalability of web services. It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning. Pylot generates concurrent load (HTTP Requests), verifies server responses, and produces reports with metrics. Tests suites are executed and monitored from a GUI.
Requirement: Python 2.5+. required.Tested on Windows XP, Vista, Cygwin, Ubuntu, MacOS

7. JCrawler

Stress-Testing Tool for web-applications. It comes with the crawling/exploratory feature. You can give JCrawler a set of starting URLs and it will begin crawling from that point onwards, going through any URLs it can find on its way and generating load on the web application. The load parameters (hits/sec) are configurable.
Requirement: OS Independent
Download data: Downloadable files: 14085 total downloads to date

8. Hammerhead 2 - Web Testing Tool

Hammerhead 2 is a stress testing tool designed to test out your web server and web site. It can initiate multiple connections from IP aliases and simulated numerous (256+) users at any given time. The rate at which Hammerhead 2 attempts to pound your site is fully configurable, there are numerous other options for trying to create problems with a web site (so you can fix them).
Requirement: Hammerhead has been used with Linux, Solaris and FreeBSD.
Download data: Downloadable files: 29089 total downloads to date

See More

Functional Test Tools – All free and Open-Source
Performance Test Tools – All free and Open-Source
Security Test Tools – All free and Open-Source
Unit Testing Tools – All free and Open-Source
Unit Test C/C++
Unit Test Java
Unit Test .Net
Unit Test PHP
Unit Test SQL


Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work


If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Testing Tools

Functional Test Tools

*MOST popular*

1. Selenium

Testing tool for browser-based testing of web applications. It can be used both for functional, compatibility (it has extensive cross-browser support) and regression testing.
Requirement: Windows, Linux or Mac

2. WatiN

WatiN stands for Web Application Testing in dotNet. Inspired by Watir, WatiN enables web application testing, through Internet Explorer on a Windows platform, expressed in any .Net language.
Requirement: Windows
Download data:Downloadable files: 49627 total downloads to date

3. Watir

Watir (Web Application Testing in Ruby) is a functional testing tool for web applications. It supports tests executed at the web browser layer by driving a web browser and interacting with objects on a web page. It uses the Ruby scripting language.
Requirement: Windows (currently only supports Internet Explorer)


4. Web Form Flooder

Web Form Flooder is a Java console utility that will analyze a Web page, complete any forms present on the page with reasonable data, and submit the data. The utility will also crawl links within the site in order to identify and flood additional forms that may be present.
Requirement: OS Independent
Download data:Downloadable files: 1608 total downloads to date

5. WebDriver

A developer focused tool for automated testing of webapps: WebDriver has a simple API designed to be easy to work with and can drive both real browsers, for testing javascript heavy applications, and a pure "in memory" solution for faster testing of simpler applications.
Requirement: any java-compatible platform


OTHER Functional Testing Tools

1. Abbot Java GUI Test Framework

The Abbot framework provides automated event generation and validation of Java GUI components, improving upon the very rudimentary functions provided by the java.awt.Robot class (A Better 'Bot). The framework may be invoked directly from Java code or accessed without programming through the use of scripts. It is suitable for use both by developers for unit tests and QA for functional testing.
Requirement: TBC
Download data: Downloadable files: 67654 total downloads to date

2. Anteater

Anteater is a testing framework designed around Ant, from the Apache Jakarta Project. It provides an easy way to write tests for checking the functionality of a Web application or of an XML Web service.
Requirement: OS Independent
Download data: Downloadable files: 15452 total downloads to date

3. ApoDora

Apodora is a framework/tool for automating functional testing of web applications. It provides the user with programmatic control of the web browser allowing them to interact directly with the browser's user interface. It uses a database backend in order to remember how to find your html elements. This also makes your scripts easier to maintain.
Requirement: Windows, IE6
Download data: Downloadable files: 6106 total downloads to date

4. Arbiter

Document based acceptance tester. Similar to FIT in goal. Manages requirements documents in Word or RTF format that are created jointly by customer and developer. Requirements are parsed to extract a glossary and test suite.
Requirement: OS Independent
Download data: Downloadable files: 1605 total downloads to date

5. Autonet

Autonet is a GUI network test platform, internally it's based on CLI to communicate with devices. It can help you to arrange test cases, setup commands to devices ,run commands to check results and record test results
Requirement: windows, linux and any other platform which support tcl
Download data: Downloadable files: 1384 total downloads to date

6. AutoTestFlash

AutoTestFlash allows the recording and playback of tests writen in Flash and Flex. The tool website provides a live sample.
Requirement: Windows / Flash

7. Avignon

Avignon is an acceptance test system that allows you to write executable tests in a language that you define. It uses XML to define the syntax of the language but, if you choose to extend the language, leaves the semantics of the tests up to you. Avignon includes modules for testing HTML applications (through either IE or FireFox), Swing and .NET WinForm applications.
Requirement: Java (MS Windows only for .NET testing)
Download data: Downloadable files: 9309 total downloads to date

See More

Functional Test Tools – All free and Open-Source
Performance Test Tools – All free and Open-Source
Security Test Tools – All free and Open-Source
Unit Testing Tools – All free and Open-Source
Unit Test C/C++
Unit Test Java
Unit Test .Net
Unit Test PHP
Unit Test SQL


Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work


If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Software Testing Tools

Test coverage is used as a way to measure how thoroughly software is tested. Coverage is used by software developers and sometimes by vendors to indicate their confidence in the readiness of their software. Software test environments (STEs) provide a means of automating the test process and integrating testing tools to support required testing capabilities across the test process. Specifically, STEs may support test planning, test management, test measurement, test failure analysis, test development and test execution.

Following are some most popular and opensource (free available) software tesing tools. You can view details of all free software testing tools here.
  1. Functional Test Tools – All free and Open-Source
  2. Performance Test Tools – All free and Open-Source
  3. Security Test Tools – All free and Open-Source
  4. Unit Testing Tools – All free and Open-Source


Related Topics

  1. Software Testing Tools
  2. Software Testing Techniques
  3. Software Testing Techniques - II
  4. Guru’s Software Testing

Also Available

  1. Server Virtualization – World’s Hottest Topic – A Good Research Work

If these topics really helped you or to make this topic more informative please give your suggestions/comments. Thanks

Software Testing Techniques II

7. Integration Testing:

Integration is a systematic approach to build the complete software structure specified in the design from unit-tested modules. Once all the individual units have been tested there is a need to test how they were put together to ensure no data is lost across interface, one module does not have an adverse impact on another and a function is not performed correctly. Integration testing is a systematic approach that produces the program structure while at the same time producing tests to identify errors associated with interfacing. There are two ways integration performed. It is called Top-Down Approach (Pre-test) and Bottom-Up Approach (Pro-test).

7.1 Top-Down integration

The integration process is performed in a series of five stages:

  1. The main control module is used as a test driver and stubs are substituted for all modules directly subordinate to the main control module.
  2. Depending on the integration technique chosen, subordinate stubs are replaced one at a time with actual modules.
  3. Tests are conducted as each module is integrated.
  4. On the completion of each group of tests, another stub is replaced with the real module.
  5. Regression testing may be performed to ensure that new errors have been introduced.
7.2 Bottom-up Integration

A bottom-up integration strategy may be implemented with the following steps:

  1. Low-level modules are combined into clusters that perform a particular software sub-function.
  2. A driver is written to coordinate test cases input and output.
  3. The cluster is tested.
  4. Drivers are removed and clusters are combined moving upward in the program structure.
8. System Testing

Ultimately, software is included with other system components and a set of system validation and integration tests are performed. Steps performed during software design and testing can greatly improve the probability of successful software integration in the larger system. System testing is a series of different tests whose main aim is to fully exercise the computer-based system. Although each test has a different role, all work should verify that all system elements have been properly integrated and form allocated functions.

• A system is the big component
• System testing is aimed at revealing bugs that cannot be attributed to a component as such, to inconsistencies between components or planned interactions between components
• Concern: issues, behaviors that can only be exposed by testing the entire integrated system (e.g., performance, security, recovery).

8.1 Recovery Testing

Many computer-based systems need to recover from faults and resume processing within a particular time. In certain cases, a system needs to be fault-tolerant. In other cases, a system failure must be corrected within a specified period of time or severe economic damage will happen. Recovery testing is a system test that forces the software to fail in various ways and verifies the recovery is performed correctly.

8.2 Security Testing

Any computer-based system that manages sensitive information or produces operations that can improperly harm individuals is a target for improper or illegal penetration. Security testing tries to verify that protection approaches built into a system will protect it from improper penetration. During security testing, the tester plays the role of the individual who wants to enter the system. The tester may try to get passwords through external clerical approaches; may attack the system with customized software, purposely produce errors and hope to find the key to system entry. The role of the designer is to make entry to the system more expensive than that which can be gained.


8.3 Stress Testing

Stress testing executes a system in the demands resources in abnormal quantity, frequently or volume. A variation of stress testing is an approach called sensitivity testing in some situation a very small range of data contained with the bounds of valid data for a program may cause extreme and even erroneous processing or profound performance degradation.

9. Conclusion

Software testing accounts for a large percentage of effort in the software development process, but we have only recently begun to understand the subtleties of systematic planning, execution and control.

Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work

Comprison of Hypervisors

Comparison of Hyper-V, Xen and VMware by Jason Perlow

VMWare’s ESX differs from Hyper-V and Xen in that it currently uses pure software based virtualization, so it doesn’t need the VT or Pacifica extensions. However, it has a much tighter environment as to what kind of hardware it can run on – the hypervisor has a limited device driver compatibility list and VMWare keeps its ESX hypervisor source code very close to the vest, so development goes at a much slower pace – SATA disk drives, which are now commonplace on commodity x86 server machines, are not currently supported in VMWare ESX 3. ESX Server also requires a special networked clustered file system known as VMFS to store the virtual machine images, and you have to dedicate a SAN-based LUN to it.

Hyper-V, on the other hand, will run on any modern system that can run 64-bit Windows 2008, stores all its virtual machines on regular directories in NTFS, and provides third-party and built-in driver support by using what is referred to a “Parent” OS as a pass-thru mechanism.
In Xen parlance, this is also referred to as “Domain 0”, where device and file system support is provided by the Linux kernel (or in the case of Sun xVM, Solaris) and Linux file systems such as ext3 and ReiserFS.

Even though Hyper-V is still pre-1.0 code, but Microsoft has done a bang-up job with its hypervisor, and it may just turn this Linux freak into a Windows 2008 junkie for running his own personal virtualization needs. While VMWare’s ESX is still superior on a number of fronts, including its aforementioned VMotion technology, VM migration/load balancing and it’s more powerful cluster management tools.

Hyper-V enables:
· Server Consolidation
· Business Continuity and Disaster Recovery
· Testing and Development
· Dynamic Data Center
· New and improved Architecture
· Broad OS Support
· Symmetric Multiprocessor (SMP) Support
· Network Load Balancing
· Quick Migration
· Virtual Machine Snapshots
· Scalability

See More:
  1. Server Virtualization
  2. How it Works – Server Virtualization
  3. Example of Server Virtualization
  4. Hypervisors, Xen, VMWare, Hyper-V

Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II

Hypervisors, Xen, VMWare and HyperV

"Virtualization Products (Hypervisor) "

1- Xen

Xen (vendor; Citrix) is free software virtual machine monitor (hypervisor) for IA-32, x86, x86-64, IA-64 and PowerPC 970 architectures. It allows several guest operating systems to be executed on the same computer hardware at the same time.

A Xen system is structured with the Xen hypervisor as the lowest and most privileged layer. Above this layer, there are one or more guest operating systems, which the hypervisor schedules across the physical CPUs. The first guest operating system, called in Xen terminology "domain 0" (dom0), is booted automatically when the hypervisor boots and given special management privileges and direct access to the physical hardware. The system administrator logs into dom0 in order to start any further guest operating systems, called "domain U" (domU) in Xen terminology.

The Xen goes between the hardware and the operating systems of the various domains. The hypervisor is responsible for checking page tables, allocating resources for new domains, and scheduling domains. It presents the domains with a Virtual Machine that looks similar but not identical to the native architecture. It is also responsible for booting the machine enough that it can start dom0.

Just as applications can interact with an OS by giving it syscalls, domains interact with the hypervisor by giving it hyper calls. The hypervisor responds by sending the domain an event, which fulfils the same function as an IRQ on real hardware.Modified versions of Linux, Net BSD and Solaris can be used as the dom0. Several modified Unix-like operating systems may be employed as guest operating systems (domU); on certain hardware, as of Xen version 3.0, unmodified versions of Microsoft Windows and other proprietary operating systems can also be used as guests if the CPU supports Intel VT or AMD V technologies.

2- VMware

VMware (vendor; VMware, Inc.) is a software developer and a global leader in the virtualization market. VMware's desktop software runs on Microsoft Windows, Linux, and Mac OS X. VMware's enterprise software, VMware ESX Server, runs directly on server hardware without requiring an additional underlying operating system.VMware software provides a completely virtualized set of hardware to the guest operating system. VMware software virtualizes the hardware for a video adapter, a network adapter, and hard disk adapters. The host provides pass-through drivers for guest USB, serial, and parallel devices. In this way, VMware virtual machines become highly portable between computers, because every host looks nearly identical to the guest. In practice, a systems administrator can pause operations on a virtual machine guest, move or copy that guest to another physical computer, and there resume execution exactly at the point of suspension. Alternately, for enterprise servers, a feature called VMotion allows the migration of operational guest virtual machines between similar but separate hardware hosts sharing the same storage.Desktop software
VMware launched its first product, VMware Workstation, in 1999. This software suite allows users to run multiple instances of x86 or x86-64 -compatible operating systems on a single physical PC. VMware Fusion provides similar functionality for users of the Mac Intel platform, along with full compatibility with virtual machines created by other VMware products.For users without a license to use VMware Workstation or VMware Fusion, VMware offers the freeware VMware Player product, which can run (but not create) virtual machines.Server software
VMware markets two virtualization products for servers: VMware ESX Server (formerly called "ESX Server") and VMware Server (formerly called "GSX Server").VMware ESX, an enterprise-level product, can deliver greater performance than the freeware VMware Server, due to lower system overhead. In addition, VMware ESX integrates into VMware Virtual Infrastructure, which offers extra services to enhance the reliability and manageability of a server deployment. The VMware Server product offers a user interface with a similar look-and-feel to VMware Workstation.

VMware Server is also provided as freeware, like VMware Player but it is possible to create virtual machines with it. VMware Server is a "hosted" application, which runs within an existing Windows operating system, whereas VMware ESX does not depend on any host operating system - it is "bare-metal", running directly on the hardware, serving the virtualized hardware provisioned to each Virtual Machine.

3- Windows Server 2008 Hyper-V

Windows Server 2008 Hyper-V (vendor; Microsoft), the next-generation hypervisor-based server virtualization technology, allows you to make the best use of your server hardware investments by consolidating multiple server roles as separate virtual machines (VMs) running on a single physical machine. With Hyper-V, you can also efficiently run multiple different operating systems i-e Windows, Linux etc. in parallel, on a single server, and fully leverage the power of x64 computing.

Hyper-V provides a dynamic, reliable, and scalable virtualization platform combined with a single set of integrated management tools to manage both physical and virtual resources, enabling you to create an agile and dynamic data center. Hyper-V enables:

· Server Consolidation
· Business Continuity and Disaster Recovery
· Testing and Development· Dynamic Data Center

Key Features
· New and improved Architecture
· Broad OS Support
· Symmetric Multiprocessor (SMP) Support
· Network Load Balancing
· Quick Migration
· Virtual Machine Snapshots
· Scalability


See More:

  1. Server Virtualization
  2. How it Works – Server Virtualization
  3. Example of Server Virtualization
  4. Hypervisors, Xen, VMWare, Hyper-V
  5. Comparison of Hypervisors

Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II


Example of Server Virtualization

Normal Way (Without Virtualization)

Five (5) servers with different applications and different Operating Systems are required as shown in following Diagram.







Through Virtualization

By using the concept of virtualization different applications and different OS can be run on only two server i-e server A and Server B as shown below.



See More:

  1. Server Virtualization
  2. How it Works – Server Virtualization
  3. Example of Server Virtualization
  4. Hypervisors, Xen, VMWare, Hyper-V
  5. Comparison of Hypervisors

Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II

Server Vitulaization

How It Works

Virtualization creates an abstraction layer between physical server hardware, operating systems and applications running on them. This abstraction layer presents end users with a logical view instead of a physical view of computing power resources.

Without virtualization, a simple computer architecture is given below.






A High level computer architecture using virtualization. By installing hypervisors you can have multiple OS as shown below having particular software application for each OS.


See More:

  1. Server Virtualization
  2. How it Works – Server Virtualization
  3. Example of Server Virtualization
  4. Hypervisors, Xen, VMWare, Hyper-V
  5. Comparison of Hypervisors

Related Topics:

  1. Software Testing
  2. Software Testing Techniques~

Software Testing Techniques

1. White Box Testing

White box testing is a test case design approach that employs the control architecture of the procedural design to produce test cases. Using white box testing approaches, the software engineering can produce test cases that can:

1) Guarantee that all independent paths in a module have been exercised at least once,
2) Exercise all logical decisions,
3) Execute all loops at their boundaries and in their operational bounds,
4) Exercise internal data structures to maintain their validity

2. Black Box Testing

"Testing of a function without knowing internal structure of the program."

Black box testing approaches concentrate on the fundamental requirements of the software. Black box testing allows the software engineer to produce groups of input situations that will fully exercise all functional requirements for a program. Black box testing is not an alternative to white box techniques. It is a complementary approach that is likely to uncover a different type of errors that the white box approaches.

Black box testing tries to find errors in the following categories:

1) Incorrect or missing functions,
2) Interface errors,
3) Errors in data structures or external database access,
4) Performance errors,
5) Initialization and termination errors.

By applying black box approaches we produce a set of test cases that fulfill requirements:
1) Test cases that reduce the number of test cases to achieve reasonable testing,
2) Test cases that tell use something about the presence or absence of classes of errors.


3. Unit Testing

Unit testing concentrates verification on the smallest element of the program – the module. Using the detailed design description important control paths are tested to establish errors within the bounds of the module.

The most ‘micro’ scale of testing to test particular functions or code modules. Typically done by the programmer and not by testers• Unit - smallest testable piece of software• A unit can be compiled/ assembled/ linked/ loaded; and put under a test harness• Unit testing done to show that the unit does not satisfy the functional specification and/ or its implemented structure does not match the intended design structure

4. Validation Testing

As a culmination of testing, software is completely assembled as a package, interfacing errors have been identified and corrected, and a final set of software tests validation testing are started. Validation can be defined in various ways, but a basic one is valid succeeds when the software functions in a fashion that can reasonably expected by the customer.

5. Verification Testing

The process of evaluating a system or component to determine whether the products of the given development phase satisfy the conditions imposed at the start of that phase.


6. Testing for Real-Time Systems

The time-dependent nature of real-time applications adds a new difficult element to testing. Not only does the developer have to look at black and white box testing, but also the timing of the data and the parallelism of the tasks. In many situation test data for real-time system may produce errors when the system is in one state but to in others. Comprehensive test cases design methods for real-time systems have not evolved yet. However, a four-stage approach can be put forward:

Task testing: The first stage is to test independently the tasks of the real-time software.
Behavioral testing: Using system models produced with CASE tools the behavior of the real-time system and examine its actions as a result of external events.
Inter-task testing: Once errors in individual tasks and in system behaviour have been observed testing passes to time-related external events.
Systems testing: Software and hardware are integrated and a full set of systems tests are introduced to uncover errors at the software and hardware interface.

Related Topics

Guru’s Software Testing
Software Testing Tools – All free and Open-Source
Software Testing Techniques
Software Testing Techniques - II

Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work