Monday, May 10, 2010

What are the disadvantages of Quality Center

I think the strengths outweight the weaknesses, but wish something could be done to improve these items.

1. If I had to pick any weaknesses, I'd say that customization is too rigid.

2. Workflow script code allows you to customize a lot of what happens in the system, but not enough events are exposed to provide full control.

3. User-defined fields can be created, but you are limited to a pre-defined set of field types: user list, lookup list, string, date, number. This covers most needs, but does have some limit. For instance, there is not a CheckBox style option (which actually used to exist in older versions of TestDirector).

4. Not all modules provide customization or workflow handling.

5. The Quality Center client tends to crash too frequently with Access Violation errors. Maybe this is the browser they host it in, maybe it's the ActiveX technology they use, or maybe it's just bad code.

6. Back-end overhead. The system may be too big and to demanding for most organizations.
You will need to install, manage and maintain a Database Server, an Application Server, and sometimes even a Web Server. Not to mention back-ups and other procedures that need to be done regularly.
This is something people seldom take into account and for some organizations this is simply too much for what they gain.

7. Customizations are not only rigid, but they demand knowledge of VBS and in many instances of the Quality Center API. Many times this knowledge is not there, and the organizations are left with an expensive tool that can potentially help them but it's not right for them...

8. Slow over long distances. This is specially true for companies that are distributed around the World.
Even if the system is Web-Based and you can connect using your browser, as you start working from remote locations (e.g. US vs Europe or Asia) the response time starts getting very annoying, unless you have some pretty advanced back-end communication channel.
We were looking for solutions that would either make the communication "Lighter" or allow us to create mirror sites but neither was available.

9. Last but not least, and hopefully it will only be temporarily... Support from HP has been pretty slow and not too helpful in the last months/years. They used to be pretty good but lately most of our tickets wait for weeks/months or are closed without a popper answer. Again, hopefully someone from HP is reading this and will do something about it.

I just want to close by saying that QC is pretty good platform, maybe one of the best there is today. But it's not flawless and many organizations buy it without analyzing if it's the best alternative for them or what are the limitations they will encounter.

Monday, October 12, 2009

Create Root Level Requirements using OTA API

QCServerURL="http://Server:9082/qcbin/"
QCUserLogInName="UserName"
QCUserPwd="Pwd"
QCDomain="DomainName"
QCProject="ProjectName"

Set QCConnObj=createobject("TDApiole80.TDConnection")

ConnectToQCProj()
AddParentRequirement()
DisConnectProj()
systemutil.CloseDescendentProcesses

Public function AddParentRequirement()
Set MyReq = QCConnObj.ReqFactory.AddItem(Null)
MyReq.ParentId = 0
MyReq.Name = "Your Requirement"
MyReq.Post
End Function

Thursday, July 30, 2009

Copy all QC defects to an Excel Sheet

'***********************************************************************
'Purpose: This script copies all QC defects into an Excel file
'This example you can run from .vbs run-time or from QTP.
'Scripted by: Uday
'***********************************************************************

QCServerURL="Server Name"
QCUserLogInName="User Name"
QCUserPwd="User Password"
QCDomain="Domain Name"
QCProject="Project Name"

Set QCConnObj=createobject("TDApiole80.TDConnection")

'These are the functions for Connect to QC, Copy defects to Excel and Disconnect from QC.
ConnectToQCProj()
WriteDefectsIntoExcel()
DisConnectProj()

Public Function ConnectToQCProj
'User Login to QC
QCConnObj.InitConnectionEx QCServerURL
QCConnObj.Login QCUserLogInName,QCUserPwd

If QCConnObj.LoggedIn<>TRUE Then
msgbox "QC User Authentication has failed"
WScript.Quit
End If

'User connect to QC
QCConnObj.Connect QCDomain,QCProject
End function


Public function WriteDefectsIntoExcel()

Set BugFactoryObj=QCConnObj.BugFactory
Set BugList=BugFactoryObj.NewList("")

Set XLObj=createobject("Excel.application")
XLObj.Workbooks.Add()
Set XLSheet=XLObj.ActiveSheet


XLSheet.Cells(1, 1).Value = "Bug Id"
XLSheet.Cells(1, 2).Value = "Summary"
XLSheet.Cells(1, 3).Value = "Detected By"
XLSheet.Cells(1, 4).Value = "Priority"
XLSheet.Cells(1, 5).Value = "Status"
XLSheet.Cells(1, 6).Value = "Assigned To"

RowNo=2

For each bug in BugList
XLSheet.Cells(RowNo, 1).Value = Bug.Field("BG_BUG_ID")
XLSheet.Cells(RowNo, 2).Value = Bug.Summary
XLSheet.Cells(RowNo, 3).Value = Bug.DetectedBy
XLSheet.Cells(RowNo, 4).Value = Bug.Priority
XLSheet.Cells(RowNo, 5).Value = Bug.Status
XLSheet.Cells(RowNo, 6).Value = Bug.AssignedTo
RowNo=RowNo+1
Next

XLObj.ActiveWorkbook.SaveAs("C:\QC_Defects.xls")
XLObj.Quit

Set XLObj=nothing

End Function



Public Function DisConnectProj()
QCConnObj.Disconnect
QCConnObj.Logout
QCConnObj.ReleaseConnection
Set QCConnObj=Nothing
End function