Wednesday, November 19, 2014

Selenium Builder


Selenium Builder(Se Builder) is licensed under the Apache 2 License, Se Builder supports creating scripts in
both Selenium 1 and Selenium 2. It is alternative to S-IDE (Selenium IDE) and its architecture is based on HTML/JS/jQuery.

Selenium Builder is a Firefox add-on, used for record-playback and exporting the recorded scripts in your desired language(ex: Java-TestNG).

Selenium Builder is much more useful for the automation beginners to learn the basics and to have a hands on practice.

Below operations can be performed by Se Builder:
Record
Edit
Playback
Load, Save & export.

1. Adding Selenium Builder Extension

2. Record and Playback

3. Executing Steps

4. Breakpoints

5. Modifying the step

6. Verification

7. Save and Open Script

8. Export script


Selenium Builder - Modifying Steps


Modifying the search text:








Updating the page url.



Selenium Builder - Verification


Adding Verification steps.










Selenium Builder - Breakpoint

Adding Breakpoint to the steps.




Removing Breakpoint




Clear All Breakpoints





SeleniumBuilder - Executing Steps

Executing specific step




Executing from specific steps to the last step.




Executing from first step to specific step.




Selenium Builder - Record & Playback



Thursday, September 11, 2014

Selenium Webdriver Latest jars released 2.43

Hello guys !!!
New Release came for Selenium Webdriver-2.43 yesterday (9-9-2014).

Selenium is going to give another release 2.43.1 in couple of day with some new feature.

These are some new changes in 2.43.0 lets have a look

Note- Please update the yous :


v2.43.0
======
WebDriver:

* Updating Native events to support Firefox 24, 31 and 32
* Add note on stale element checks and a WebElement represents a DOM element
* Upgrade third party dependency JavaScript-XPath to 0.1.12
* Fix example code: "using(-Chrome)DriverExecutable"
* Make event_firing_test.html pass in Firefox 24 ESR.
* Fix an error propagation bug when a command fails from bad inputs.
* Handle the case where a proxied element from PageFactory causes a FluentWait to timeout.
* Integrating the Microsoft Internet Explorer driver implementation
* Allow subclasses of HttpCommandExecutor to extend it at runtime.
* Handle the case where executeScript returns an HTMLDocument.
* IEDriver crashes in WaitUntilElementFocused() because of null pointer. Fixes issue #7577
* Deprecate the original RC interface in Selenium.
As part of Selenium 3.0, we shall be moving the original RC interface to a
legacy JAR that will be available as a separate download. As the first step
in this process, the original "Selenium" interface is being marked as
deprecated.
* Run FirefoxDriver tests with Buck.
* Bump timeout for tests since a suite is also a test.
* Run htmlunit-driver tests with Buck.
* Run the ignored tests printer with Buck.
* Get org.openqa.selenium.SmallTests building with Buck.
* Working around limitations in subpixel precision event handling.

The bug/limitation where browser supports subpixel precision for elements but not for dispatched events was found in both modern Chrome (http://crbug.com/396380) and Firefox (?) browsers.
(IE doesn't seem to be affected: before and including IE9 - no subpixel for elements and events; from ie10 - subpixel is supported for both elements and events).

This test was lucky so far (mostly?) and didn't hit this issue, until Chrome 37 that enabled subpixel text scaling by default.

This change makes *sure* elements have subpixel coordinates (if only browser supports'em) and then it makes sure this test doesn't fail because of that (while still testing selenium atoms).

While there, I moved asserts from event handlers into the normal test flow so jsunit can properly attribute assertion failures to specific test methods.
* Updating prebuilt libs for windows
* Re-add the rubyzip jar
* updating prebuilts for linux
* Updating to gecko 32
* Log formatter should be able to work with empty keys array. Fixes issue 7357
* Fixing infinite read from socket. Fixes issue 7814
* WDBS: safe check for window.localStorage
* Driver should operate cookies for the current frame, not the topmost one. Fixes issue 7799 in
Firefox
* Actually supporting promised Id for webdriver.WebElement.
* Adding more checks for JS functions removed from IE11. Fixes issue 7803
* Fixing use of deprecated API in httpclient
* Fixing use of deprecated API in guava
* Update Closure library to head and compiler to the latest release
* Implementing ability to use FirefoxDriver on a machine where localhost is not the first alias for
127.0.0.1. Fixes issue 3280
* Handle null and empty paths the same as /
* fixing maven build, adding reference to jetty-rc-repacked-5
* adding pom and info on uploading jetty-repacked-5 to maven central
* Adding checks for JS functions removed from IE11. Fixes issue 7780
* Deleting what appears to be unused deps.
* Add more options to the Builder API (every common, settable capability should be covered).
* Require calling Builder.usingServer(url) to use a remote server. If this is not called, the
builder will attempt to create a client locally, throwing an error if it can't (e.g. for IE).
* Add browser specific constructors to simplify creating a client without the Builder.
Fixes issue 7593
* Updating json-cpp lib and replacing mongoose web server with civetweb.
* Safari is flaky. Reducing timeout to fail faster when we're going to fail.
* Catch driver start-up failures.
* Add explicit API for configuring log prefs rather than forcing users to rely on
magic capability strings.
* Clean up internal Firefox logging API.
* Use LogLevelMapping to convert JSON wire protocol name to Level instance.
* Make the jettyMaxThreads parameter actually be effective
* Fix NullPointerException when File#listFiles() returns null. Fixes issue #1934
* Making WDBS.start command a no-op if it was instantiated with an already started driver. Fixes issue 3993
* Handling possible exception in stringification of window.location. Fixes issue 3908
* Modified IE driver server to more closely follow W3C spec

This commit includes a number of changes designed to bring the IE driver
into closer alignment with the W3C WebDriver specification. It provides
no functional changes to the driver, nor does it change any external-
facing API. The changes are:
* Changed webdriver::Server to examine the response from the newSession
command for the session ID rather than a two-stage process. The
webdriver::Server::DispatchCommand method now calls the
InitializeSession method directly when processing the newSession
command.
* Removed the now-obsolete webdriver::Server::CreateSession method.
* Added a Serialize/Deserialize method pair on the webdriver::Command
class (renaming the Populate method to Deserialize).
* Revamped the serialization of webdriver::Command to use 'name' instead
of 'command' for the command name.
* Added a session ID member to the webdriver::Command object.
* Modified the webdriver::Command object to no longer draw distinction
between parameters passed in as part of the URL substitution and those
passed in as part of the JSON payload in the body.
* Modified webdriver::CommandHandler::ExecuteInternal (and all subclass
implementations to use a single parameters map instead of the dual
URL tokens/JSON payload parameters maps used previously.
* Propagate webdriver_firefox_port preference to FirefoxDriver, was being ignored. Fixes issue 5172
* Adding a new selenium server option -logLongForm to log more details to the console. Fixes issue 6645
* Handling possible IllegalStateException while cleaning orphaned and timed out sessions. Fixes issue 6771
* Setting forwarded content for CommandListener afterCommand handler. Fixes issue 7443
* Fixing the list of extensions to search for an executable on Windows, and logging process startup
errors. Fixes issue 7514
* Setting layout.css.devPixelsPerPx to 1.0 if native events are enabled only. Fixes issue 7445
* BODY element is always shown/displayed.
related section in the W3C spec:
https://dvcs.w3.org/hg/webdriver/raw-file/default/webdriver-spec.html#determining-if-an-element-is-displayed
* Implementing switchToParentFrame support in atoms
* Setting HtmlUnit to emulate FF24 by default
* Updating HtmlUnit to 2.15
* Stop polluting the log with stacktraces. Fixes issue 7460
* Returning less specific platform info from firefox driver. Fixes issue 3354
* Adding driver info into TimeoutException thrown by WebDriverWait. Fixes issue 7429
* Implementing switchToParentFrame command for IE driver
* Adding URL endpoint for switchToParentFrame.

Wednesday, August 13, 2014

Interview Questions from different companies on Manual Testing


what is your role in your project ?

what is your daily activity in project ?

Explain STLC ?

difference between Build & Release ?

write test cases for ATM machine ?

what is inner join ?

Why should we hire you ?

why you want to join our organization ?

Expain Boundary value analysis & equivalent partitioning ?

tell us black box testing technique ?



Kring
1)What is the difference b/w SYSTEM REQUIREMENT SPECIFICATIONS
and FUNCTIONAL REQUIREMENT SPECIFICATIONS ?

Zensar
2)what is the difference b/n DPD(Defect profile document) and TRD(Test Report document).

Wipro
3)If there are more number of test cases, how can u pick up a selective test case?

Wipro
4)write a test case for air conditioner


5)When to start Software Testing?

ITC-Infotech:
6)u have 1000 of delete button in ur application ,
how to check it out,.one by one ? or how to check it out by easy way?


Nous:
7)How can you Pick Integration Test Cases?

8.When will you start Regression Testing?

9.What is the difference between QA & QC?

10.When Will you Exit In Testing?

11.Test Deliverable's

12.What are the types of regression testing?

13.What kind of inputs do we need from the end user to start proper testing?

14.What is the difference between windows based appln and web based appln?


century:
15. there are many test cases in our test case repository like
function,integration,system,acceptance test case so which
test case should test engineer test first.? please answer me .


HCL:
1] Test Management Tool ?
2] What is tracebility Matrix?
3] What is RTM ?
4] What Is Functional testing
5] What is Regration Testing and Sanity Testing
6] Diff in Sanity and Functional Tetsing
7] Integration Tetsing
8] Diff in Primary Key and Unique Key -Should pass primary Key as null
9] What is composit Key
10] Defect Management tool in detail
11] What is Seviarity and Priority
12] Composite Key

MTN:
16. Based on what doccuments do you start scripting?/ Testing?

Symbiosis:
17. Can Any Body Explain Major Bugs Find During Manual Testing

Subex:
18. whenever the requirements are not given by the customer what type of testing you do?

IBM:
19. Usually on which server test engineer works?

CTS:
20. What is the difference between Test Director and Quality Center?

21. what qualities a person must have to become a good tester

Semantic-Space:
22. what are reviews in sdlc?

23. How will you test or write test cases when you dont have BRS and SRS?

Softprodigy:
24. what is peer test?

25. What is Data integrity and Data validity


26.Types of reviews?Advantages of reviews?
Diff between process and procedure?
diff b/w verification and validation?
diff b/w cmm,cmmi?
exp tqm,gqm,iso,ieee?
Roles and responsibilities of tester?
Ricks,types of ricks?
what r Quality factors?


27.
1.i have opend 2 gmails i am working with 1 gmail i want to close other gmail by usig script.
2.i have 10 links in a page all of them have same properties& names i want to click on 5link by using script.
3.i have one combobox in that i want to see all the citynames in the combobox and
i have to check weather hyderabad is present or not.
4. size of objectrepository.
5.what r problems we get during writing the script.
6.is it possible to compare to excel sheets in qtp if possible wht is the script.
7.example for lowlevelrecording


Accenture:
28. how many days did u study ur business req specifications for a one year project?
how many days did u write test cases for a one year project?
how often do u get builds in ur company?


29.What is the difference b/w test case and scenario?

30.Can anyone explain about agile software methodology... IBM

31.What is the relation ship between regression testing and pesticide paradox?

32.What is a test data? Give examples

Wednesday, July 30, 2014

SAP TESTING

SAP:- Systems Applications and Products

SAP R/3 :- R stands for- Real-time 3- 3-tier Architecture

ERP stands for Enterprise Resource planning

ERP is a Business Management software-usually a suite of integrated applications-that a company can use to collect, store, manage and interpret data from many business activities.

It Includes:- Product planning, cost and development
Manufacturing or service delivery
Marketing and sales
Inventory management
Shipping and payment

--->SAP ERP or SAP ECC is enterprise resource planning software made by the German company SAP AG.

--->SAP ERP incorporates the key business functions of an organization.
ECC (ERP Central Component) is software version, released as ECC 5.0 in 2004.

--->SAP R/3 is an ERP software package implementation designed to coordinate all the key elements required to complete the business process.

--->SAP designed into different functional modules covering the typical functions of an organization.

How to do testing in sap R/3?

In any SAP Project testing can be happen in 3 phases. Unit testing happens in Dev server. Integration and User Acceptace Test happens in Quality Server.These all are done manually step by step. We have got standard SAP Test Scripts/prepares based on the Client/company/Project. Unit Testing: it can be tested in bits and pieces (Ex: Sales order Creation). Integration Testing: OTC Flow (Create Sales order to Invoice). User Acceptace done by the Client in "Q", if they are satisifed with the result they will give Sign-off for the project. There is another sort of testing so called Automated Regression Testing. that can be done by eCATT/IBM Rational Tools.

SAP Maual Testing (SAP SD, SAP MM, SAP FICO, SAP HR):

SELENIUM INTERVIEW QUESTIONS

1. What is Selenium?
2. Components of Selenium?
3. Components of Selenium RC?
4. What is Remote Control?
5. Difference between Absolute path & Relative path.
6. Difference between Selenium RC and Selenium Web driver.
7. TestNG Annotations.
8. Difference between Absolute path & Relative path.
9. What are desired capabilities?
10. Difference between Web driver listener and TestNG Listener.
11. Which is the best way to locate an element?
12. Describe your framework.
13. What are the features of TestNG?
14. What is the difference between thread.Sleep(3000) and selenium. Set Speed ("3000")and selenium.waitForPageToLoad("3000")?
15. Describe your framework.
16. Which is the best way to locate an element?
17. Why we refer Firefox driver to the web driver inheritance.
18. In what situation selenium finding element get fails?
19. What is the difference between "GET" and "NAVIGATE" to open a web page in selenium web driver?
20. What is the difference between driver.Close() and driver.Quit () method?
21. Tell me the difference b/w implicitly Wait and Explicit wait.
22. How we can retrieve the dynamically changing Ids? When we login Facebook the login label's id changes dynamically thus resulting in failure.
23. How to scroll web element?
24. How to handle internationalisation through web driver?
25. Customize the name of file going to be downloaded?
26. What is the basic use of Firefox profiles and how can we use them using selenium?
27. How to overcome same origin policy through web driver?
28. Difference between flex and flash application?
29. How to put text in Facebook search box using selenium web driver.
30. How to overcome same origin policy through web driver?
31. How to put text in Facebook search box using selenium web driver.
32. What is Error Collector in TestNG? What is its use?
33. How to run tests in multiple browser parallel? Is there any other option other than selenium grid? 34. How can we get the font size, font color, font type used for a particular text on a webpage using Selenium web driver?
35. How to prepare Customized html Report using TestNG in hybrid framework.
36. What’s the hierarchy of TestNG annotations? Explain me about annotation hierarchy & execution order?
37. Is it possible test web services using selenium?
38. How the TestNG interacts with Selenium Core? Explain me steps and internal architecture?
39. How to refresh a page without using context click?
40. Can You send a code for printing in selenium?

Thursday, July 10, 2014

Variables in Java

Three kinds of Variables in Java:

  • Local variables
  • Instance variables
  • Class/static variables

Instance variables:

  • Instance variables are declared in a class, but outside a method, constructor or any block.
  • When a space is allocated for an object in the heap, a slot for each instance variable value is created.
  • Instance variables are created when an object is created with the use of the keyword 'new' and destroyed when the object is destroyed.
  • Instance variables hold values that must be referenced by more than one method, constructor or block, or essential parts of an object's state that must be present throughout the class.
  • Instance variables can be declared in class level before or after use.
  • Access modifiers can be given for instance variables.
  • The instance variables are visible for all methods, constructors and block in the class. Normally, it is recommended to make these variables private (access level). However visibility for subclasses can be given for these variables with the use of access modifiers.
  • Instance variables have default values. For numbers the default value is 0, for Booleans it is false and for object references it is null. Values can be assigned during the declaration or within the constructor.
  • Instance variables can be accessed directly by calling the variable name inside the class. However within static methods and different class ( when instance variables are given accessibility) should be called using the fully qualified name . ObjectReference.VariableName.
  • Example:
        import java.io.*;

public class Employee{
   // this instance variable is visible for any child class.
   public String name;
   
   // salary  variable is visible in Employee class only.
   private double salary;
   
   // The name variable is assigned in the constructor. 
   public Employee (String empName){
      name = empName;
   }

   // The salary variable is assigned a value.
   public void setSalary(double empSal){
      salary = empSal;
   }
   
   // This method prints the employee details.
   public void printEmp(){
      System.out.println("name  : " + name );
      System.out.println("salary :" + salary);
   }

   public static void main(String args[]){
      Employee empOne = new Employee("triveni");
      empOne.setSalary(1000);
      empOne.printEmp();
   }
}


This would produce the following result:

name  : triveni
salary :1000.0

Class/static variables:

  • Class variables also known as static variables are declared with the static keyword in a class, but outside a method, constructor or a block.
  • There would only be one copy of each class variable per class, regardless of how many objects are created from it.
  • Static variables are rarely used other than being declared as constants. Constants are variables that are declared as public/private, final and static. Constant variables never change from their initial value.
  • Static variables are stored in static memory. It is rare to use static variables other than declared final and used as either public or private constants.
  • Static variables are created when the program starts and destroyed when the program stops.
  • Visibility is similar to instance variables. However, most static variables are declared public since they must be available for users of the class.
  • Default values are same as instance variables. For numbers, the default value is 0; for Booleans, it is false; and for object references, it is null. Values can be assigned during the declaration or within the constructor. Additionally values can be assigned in special static initializer blocks.
  • Static variables can be accessed by calling with the class name . ClassName.VariableName.
  • When declaring class variables as public static final, then variables names (constants) are all in upper case. If the static variables are not public and final the naming syntax is the same as instance and local variables.

Example:

import java.io.*;

public class Employee{
   // salary  variable is a private static variable
   private static double salary;

   // DEPARTMENT is a constant
   public static final String DEPARTMENT = "Development ";

   public static void main(String args[]){
      salary = 1000;
      System.out.println(DEPARTMENT+"average salary:"+salary);
   }
}


This would produce the following result:

Development average salary:1000

Note: If the variables are access from an outside class the constant should be accessed as Employee.DEPARTMENT




Local variables:

  • Local variables are declared in methods, constructors, or blocks.
  • Local variables are created when the method, constructor or block is entered and the variable will be destroyed once it exits the method, constructor or block.
  • Access modifiers cannot be used for local variables.
  • Local variables are visible only within the declared method, constructor or block.
  • Local variables are implemented at stack level internally.
  • There is no default value for local variables so local variables should be declared and an initial value should be assigned before the first use.

Example:

Here, age is a local variable. This is defined inside pupAge() method and its scope is limited to this method only.

public class Test{ 
   public void pupAge(){
      int age = 0;
      age = age + 7;
      System.out.println("Puppy age is : " + age);
   }
   
   public static void main(String args[]){
      Test test = new Test();
      test.pupAge();
   }
}


This would produce the following result:
Puppy age is: 7

Example:
Following example uses age without initializing it, so it would give an error at the time of compilation.


public class Test{ 
   public void pupAge(){
      int age;
      age = age + 7;
      System.out.println("Puppy age is : " + age);
   }
   
   public static void main(String args[]){
      Test test = new Test();
      test.pupAge();
   }
}


This would produce the following error while compiling it:

Test.java:4:variable number might not have been initialized
age = age + 7;
         ^
1 error






Thursday, June 19, 2014

Build Verification Testing(BVT)

What is BVT?
Build Verification test is a set of tests run on every new build to verify that build is testable before it is released to test team for further testing. These test cases are core functionality test cases that ensure application is stable and can be tested thoroughly. Typically BVT process is automated. If BVT fails that build is again get assigned to developer for fix.
BVT is also called smoke testing or build acceptance testing (BAT)

New Build is checked mainly for two things:
  • Build validation
  • Build acceptance
Some BVT basics:
  • It is a subset of tests that verify main functionalities.
  • The BVT’s are typically run on daily builds and if the BVT fails the build is rejected and a new build is released after the fixes are done.
  • The advantage of BVT is it saves the efforts of a test team to setup and test a build when major functionality is broken.
  • Design BVTs carefully enough to cover basic functionality.
  • Typically BVT should not run more than 30 minutes.
  • BVT is a type of regression testing, done on each and every new build.
BVT primarily checks for the project integrity and checks whether all the modules are integrated properly or not. Module integration testing is very important when different teams develop project modules. I heard many cases of application failure due to improper module integration. Even in worst cases complete project gets scraped due to failure in module integration.
What is the main task in build release? Obviously file ‘check in’ i.e. to include all the new and modified project files associated with respective builds. BVT was primarily introduced to check initial build health i.e. to check whether – all the new and modified files are included in release, all file formats are correct, every file version and language, flags associated with each file.
These basic checks are worth before build release to test team for testing. You will save time and money by discovering the build flaws at the very beginning using BVT.
Which test cases should be included in BVT?
This is very tricky decision to take before automating the BVT task. Keep in mind that success of BVT depends on which test cases you include in BVT.
Here are some simple tips to include test cases in your BVT automation suite:
  • Include only critical test cases in BVT.
  • All test cases included in BVT should be stable.
  • All the test cases should have known expected result.
  • Make sure all included critical functionality test cases are sufficient for application test coverage.
Also do not includes modules in BVT, which are not yet stable. For some under-development features you can’t predict expected behavior as these modules are unstable and you might know some known failures before testing for these incomplete modules. There is no point using such modules or test cases in BVT.
You can make this critical functionality test cases inclusion task simple by communicating with all those involved in project development and testing life cycle. Such process should negotiate BVT test cases, which ultimately ensure BVT success. Set some BVT quality standards and these standards can be met only by analyzing major project features and scenarios.
Example: Test cases to be included in BVT for Text editor application (Some sample tests only):
1) Test case for creating text file.
2) Test cases for writing something into text editor
3) Test case for copy, cut, paste functionality of text editor
4) Test case for opening, saving, deleting text file.
These are some sample test cases, which can be marked as ‘critical’ and for every minor or major changes in application these basic critical test cases should be executed. This task can be easily accomplished by BVT.
BVT automation suits needs to be maintained and modified time-to-time. E.g. include test cases in BVT when there are new stable project modules available.
What happens when BVT suite run:
Say Build verification automation test suite executed after any new build.
1) The result of BVT execution is sent to all the email ID’s associated with that project.
2) The BVT owner (person executing and maintaining the BVT suite) inspects the result of BVT.
3) If BVT fails then BVT owner diagnose the cause of failure.
4) If the failure cause is defect in build, all the relevant information with failure logs is sent to respective developers.
5) Developer on his initial diagnostic replies to team about the failure cause. Whether this is really a bug? And if it’s a bug then what will be his bug-fixing scenario.
6) On bug fix once again BVT test suite is executed and if build passes BVT, the build is passed to test team for further detail functionality, performance and other testes.
This process gets repeated for every new build.
Why BVT or build fails?
BVT breaks sometimes. This doesn’t mean that there is always bug in the build. There are some other reasons to build fail like test case coding error, automation suite error, infrastructure error, hardware failures etc.
You need to troubleshoot the cause for the BVT break and need to take proper action after diagnosis.
Tips for BVT success:
1) Spend considerable time writing BVT test cases scripts.
2) Log as much detailed info as possible to diagnose the BVT pass or fail result. This will help developer team to debug and quickly know the failure cause.
3) Select stable test cases to include in BVT. For new features if new critical test case passes consistently on different configuration then promote this test case in your BVT suite. This will reduce the probability of frequent build failure due to new unstable modules and test cases.
4) Automate BVT process as much as possible. Right from build release process to BVT result – automate everything.
5) Have some penalties for breaking the build ;-) Some chocolates or team coffee party from developer who breaks the build will do.
Conclusion:
BVT is nothing but a set of regression test cases that are executed each time for new build. This is also called as smoke test. Build is not assigned to test team unless and until the BVT passes. BVT can be run by developer or tester and BVT result is communicated throughout the team and immediate action is taken to fix the bug if BVT fails. BVT process is typically automated by writing scripts for test cases. Only critical test cases are included in BVT. These test cases should ensure application test coverage. BVT is very effective for daily as well as long term builds. This saves significant time, cost, resources and after all no frustration of test team for incomplete build.

Monday, June 16, 2014

15 Best  Test Management Tools  for Software Testers:


Test Management encompasses anything and everything that we do as testers.  Our day-to-day activities include:
  1. Creating and maintaining release/project cycle/component information
  2. Creating and maintaining the test artifacts specific to each release/cycle that we have- requirements, test cases, etc.
  3. Establishing traceability and coverage between the test assets
  4. Test execution support – test suite creation, test execution status capture, etc.
  5. Metric collection/report-graph generation for analysis
  6. Bug tracking/defect management
The above are broadly some of the tasks that involve what we call, the test management process. This process is critical, detail-oriented and instrumental is making sure that the entire testing effort is successful.
Well, the good news is, there is help available. Through this article we will try to introduce ourselves to the most commonly available tools for the test management process briefly. Here is the comparison of top test management software.

List of the Most Prominent Test Management Tools


1) QMetry:
QMetry logo
QMetry is a total test management tool that you can use to create requirements, test cases (test suites) that can be run on multiple platforms and defects. It integrates seamlessly with many leading bug-tracking and automation environments making a good candidate for use in most situations. It is a commercial product, with a 30 day free trial available. Visit the site for more information at:http://www.qmetry.com/

2) TestRail:

Testrail logo
TestRail is a centralized test case management tool – you can use it to create test cases and test suites, track execution and report metrics. Additionally, it integrates with many issue tracking tools that makes requirements from external systems to be linked to test cases in TestRail; bugs can also be created in the external systems and links can be established to the corresponding test case. It comes with a HTTP-based API to integrate with the automated test results. One most common integration is with Gemini, which is a incident/ticket management system(supports agile too). It is a commercial product with a free trial available at:http://www.gurock.com/testrail/

3) JIRA:

jira logo
JIRA is tool that makes an appearance anytime there is a discussion on any-management process- for all the right reasons. JIRA has 2 add-ons that support the test management process.
  a) Zephyr: All the aspects that you would expect of a typical tool of this type are supported. You can create tests/test suites/test cycles/bugs/reports and so on. You could have an additional add-on, ZAPI for automation integration.  Along with the initial JIRA license you would have to pay for Zephyr to use it. ($10 for 10 users a month). There is a free trail available too. Check out information about it at:https://marketplace.atlassian.com/plugins/com.thed.zephyr.je
  b) Go2Group SynapseRT: This tool has all the test management features but the primary focus is on requirement based testing. It can be used for projects where it makes more sense to track your progress in terms of the completion and/or success-failure of a certain requirement as opposed to test cases. Traceability is of higher priority with this add-on. Along with the initial JIRA license you would have to pay for this add-on too. ($10 for 10 users a month). There is a free trail available at:https://marketplace.atlassian.com/plugins/com.go2group.jira.plugin.synapse

4) qTest:

qTest logo
Developed by QASymphony, qTest is one of the cloud-based test management tools that has all the typical key features. With the help of qTest Connector, it can integrate with JIRA for an entire end-to-end QA solution – but that is not all, it also integrates with other tools like Bugzilla, FogBugz, Rally etc. It is not open sourced but very affordable. Check out information and pricing at:http://www.qasymphony.com/qtest.html

5) TestLodge:

TestLodge logo
This is a comprehensive test case management tool that has 4 key aspects – Test Plan, requirements, Test suites/cases and test runs. So, as you can see, it has everything it needs to be able to manage test cases for you. For all the other operations, it integrates with the many main stream incident/issue management tools to provide a comprehensive solution. It is a commercial product, for a free trial visit: http://www.testlodge.com/

6) HP ALM/Quality center:

HP ALM logo
HP QC has been one of the most used test management software for many years. It has all the features necessary and in many ways, it is the standard against which the other tools are measured. Even though it is one of the high-end tools, economically, it still remains to be very popular. 

7) Zephyr:

Zephyr logo
This is the same Zephyr that we discussed earlier as being an add-on to JIRA. The reason why it deserves an independent discussion is because it can be used as an individual product also. 
For free trial and more info: http://www.getzephyr.com/

8) Testuff:

Testuff logo
Testuff is Saas Test Management tool that has many cool features. The typical test case management features are a given. Besides that, it has a cool video upload capability for a defect. Integrates with a huge list of bug-trackers, some of which are, Bugzilla, JIRA, YouTrack, Mantis among others. It has an API that supports automation tools like QTP, Rational Robot, Selenium, TestComplete etc. Best of all, it is very affordable. 
Check out the features and pricing information at:http://www.testuff.com/

9) Test Collab:

Test Collab logo
A web based test case management tool that states its speed to be one of its key features due to its ‘Ajax’ified interface(in the exact words of the software makers). It is simple to use, integrates with all major bug/issue/incident trackers. Customizable and has a good reporting facility. 
It is a commercial product and information is available at: http://testcollab.com/

10) Gemini:

countersoft gemini
One of the key components of this tool is supporting ‘Testing & QA’ along with the other aspects like Project Planning, issue tracking etc. Using this tool you could create test plans, test cases, test runs, traceability, test run reports etc. There are also various integrations and extensions available. 
It is a commercial product with a free starter pack available at:http://www.countersoft.com/solutions/testing/

11) PractiTest:

practiTest logo
It is an end-to-end QA and Test management software. You can organize your requirements, create tests, run tests, tracks bugs etc, using this tool. It integrates very well with three of the leading incident management tools like JIRA, Bugzilla and RedMine. It is not open sourced but is quite affordable. 
For more feature and pricing information, check: http://www.practitest.com/

12) TestLink:

TestLink logo
This is one of the very few open source test management toolsavailable for use in the market.  It is a web- based tool with typical features like, requirement management, test case creation and maintenance, test runs, tracking bugs, reports, integration with common issue trackers etc. 

13) QAComplete:

smartbear QAComplete logo
QAComplete is one of the most powerful test management tools that we have.  This suits agile/traditional, manual/automation projects excellently.  You could use it in integration to QTP and TestComplete. For automation projects, you could schedule the test runs and run them remotely on any registered hosts. There is also a detailed release management feature that provides for better analysis. It works along with major bug-trackers and with source control tools – Subversion, Perforce and CVS. Given all the features, it is a little pricey. There is a free trial available though. 

14) Silk Central:

Silk Central logo
This is a test management product by Borland. Once you have Silk Central with you there is a nothing left for you to ask for anything else. It is robustness personified, though it is pricey.  All the features for coverage, traceability, reporting, test creation, running – it has got them.  It integrates with many source control and issue tracking system. There are additional plug-ins to extend its capabilities to automation testing using QTP, WinRunner etc. It comes with a video capture feature and supports SAP testing. This product is really cool. 

15) IBM Rational Quality Manager:

IBM Rational Quality Manager logo
A test Management product that has all the typical features – Test planning, test design, test execution, tracking and reporting. It integrates with many of the rational products for automation, source control and bug tracking activities. It is a commercial product. 

Additional tools:

The below are some more tools that are worth mentioning:
16) VersionOne: A commercial product primarily catering to agile projects, this has a test management module along with planning, reporting and others, with all the typical features. Check out:http://www.versionone.com/product/agile-test-management/
17) TestPad:  This tool’s motto is “Spend more time actually testing”. The primary concept of this tool is – checklists. In your test plan you could have a series of checklists (tests) that can be as detailed or as short as possible. It is perfect for exploratory testing. It is commercial and you can try it at: https://ontestpad.com/
18) Aptest: a web based, commercial product that has all the typical features you would expect along with the typical integrations with issue trackers. http://www.aptest.com/atm2/
19) SpiraTest: A complete QA solution is what this product is. Instead of having your requirements, tests, defects in separate systems, this tool has it all in one place. It integrates with unit and automation testing frameworks among other things. It is commercial, though not very expensive.https://www.inflectra.com/SpiraTest/Default.aspx
20) Meliora TestLab: This is a simple to use product for requirement management, test-creating & running, defect management, workflow optimization, and integration with JIRA etc.  Commercial again, check it out at: https://www.melioratestlab.com/
21) SmarteQM: A complete life cycle management tool that provides the complete end-to-end test process support and integrates with other SmartSoft functional test tools.  It is web based and commercial. http://www.smartesoft.com/products_smarteQM.php
22) Test Run:  a web based commercial test management process that is easy and simple to use. It has all that you need to create test plans, execute them successfully and report. Integrates with JIRA and LightHouse. http://runtestrun.com/
23) Test Wave: A test management tool that needs no installation, is web based, simple and commercial (affordable). This tool provides you a facility to import your already existing requirements/test assets from excel sheets. It also comes with an inbuilt defect trackerhttp://www.testwave.co.uk/
24) Enterprise Tester: This test management tool supports both agile and traditional projects. Integrates with JIRA and also works great for automation testing with QTP, Selenium, RFT etc. This is a really cool commercial tool. Check it out at:http://enterprisetester.com/
25) TestLog: A very comprehensive end-to-end test management tool that is easy to install and configure due to its XML database. It allows documentation of both automation and manual test cases. It also comes with a web interface for remote access.  This product is commercial too. http://www.testlog.com/
26) QaTraq:  An open source test process control tool that can be used to create test cases, running them, recording results etc.