您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源Bug管理工具 >
發(fā)掘開(kāi)源缺陷跟蹤工具Trac
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/23 13:43:31 ] 推薦標(biāo)簽:

        使用何種工具做Feature或Defect或Task的跟蹤一直是挺讓我鬧心的一件事。用Excel記錄,但卻不便于共享、統(tǒng)計(jì)和直觀展示;Jira算是做的好的工具之一了,但無(wú)奈它是商業(yè)軟件,咱沒(méi)付那份兒錢,所以也"無(wú)福享用";Mingle是的Thoughtworks公司的產(chǎn)品,雖說(shuō)不到5個(gè)license是可以免費(fèi)使用的,但它卻是出了名的"內(nèi)存殺手",無(wú)奈我的機(jī)器配置太差,運(yùn)行起來(lái)實(shí)在太慢,遂沒(méi)有堅(jiān)持下去(我"眼冒金星"的渴望著更換一臺(tái)無(wú)所不能的超級(jí)計(jì)算機(jī)^_^);甚至我曾經(jīng)用過(guò)ONENOTE來(lái)做跟蹤,可是條目多了后,基本不可用了。尋覓依舊進(jìn)行中,這不Trac這款軟件進(jìn)入了我的視線中。
      網(wǎng)絡(luò)讓我知道了"Trac"。"Trac"這個(gè)名字,估計(jì)與Track"異曲同工"。至于Trac具體能做什么,你可以到其Demo站點(diǎn)去體驗(yàn)一下。簡(jiǎn)單的說(shuō),Trac = wiki + 問(wèn)題處理工作流;Wiki可以用來(lái)做知識(shí)積累和管理;問(wèn)題處理工作流恰是我需要的功能。但到底Trac做到啥子程度,那還需要用起來(lái)后才能知道。還有一件讓我覺(jué)得很"幸福"的事,那是Trac自帶一個(gè)獨(dú)立的web server程序Tracd,并且Trac可使用Python 2.5.x自帶的SQLite,這樣我可以不用安裝和配置龐大的Apache和MySQL了。讓用戶能快速上手應(yīng)該是Trac值得其他開(kāi)源軟件學(xué)習(xí)和參考的一個(gè)亮點(diǎn),要知道一些龐大的開(kāi)源軟件繁復(fù)的安裝和配置過(guò)程讓很多使用者產(chǎn)生了"挫敗感"而"另辟蹊徑"了。
Trac是用Python開(kāi)發(fā)的,可以跨平臺(tái)使用。這里我以Windows上的Trac為例。Trac官方站上有詳盡的文檔可以指導(dǎo)你的安裝、配置和使用。這里用中文做簡(jiǎn)單介紹吧,留下一個(gè)記錄,也便于自己以后參考。安裝不是重要的,但是沒(méi)有了安裝卻是萬(wàn)萬(wàn)不能的。
      1、安裝Python, 設(shè)置環(huán)境變量
對(duì)于Trac而言,其解釋執(zhí)行環(huán)境Python是必不可少的,雖然Python發(fā)布了新版是3.0.x,但是在已存的Python代碼中,Python 2.x版本還是占據(jù)絕大多數(shù),過(guò)渡到Python 3.0還需要時(shí)間。我這里用的是Python 2.5版本。安裝完P(guān)ython后,別忘了將{Python_INSTALL_DIR}和{Python_INSTALL_DIR}/Scripts加入到你系統(tǒng)的環(huán)境變量(path變量)中去(一般Python_INSTALL_DIR為"C:Python25")。
     2、使用Windows installers安裝Trac
比起手動(dòng)安裝(Manual Install),在Windows上使用Installer安裝Trac更為簡(jiǎn)便。依次下載和安裝:SetupTools、Genshi和Trac 0.11。注意要下載對(duì)應(yīng)Python 2.5版本的安裝文件。如果你要用Trac與Subversion接口的話,建議你下載一份svn-python程序,使用其他svn客戶端程序似乎不好用。另外Trac只支持連接本地svn repository,不支持遠(yuǎn)程svn repository。以上安裝程序會(huì)把相應(yīng)可執(zhí)行程序或腳本放到Python相關(guān)目錄下,所以不需重新設(shè)置環(huán)境變量。
      3、初始化一個(gè)工程
完成以上兩步,你可以使用Trac了。Trac運(yùn)行和管理的基本環(huán)境單位是一個(gè)工程(Project)。首先你要確定你的工程所在的目錄,這里以D:TracProjectsFoo為例,我們建立一個(gè)名為"Foo"的Trac工程。打開(kāi)一個(gè)命令行窗口,執(zhí)行:
trac-admin.exe D:TracProjectsFoo initenv
這是個(gè)交互執(zhí)行的過(guò)程,你需要填寫一些工程的基本信息,比如工程名字、數(shù)據(jù)庫(kù)連接字符串等,你大可一路默認(rèn)下來(lái)可以得到一個(gè)默認(rèn)的工程環(huán)境。
     4、啟動(dòng)Trac
一切緒。我們現(xiàn)在可以啟動(dòng)Trac了。到目前為止,一切都是那么簡(jiǎn)單,這也充分證明Trac入門簡(jiǎn)單。在命令行下執(zhí)行如下命令啟動(dòng)Trac Web server:
tracd.exe -p 8000 D:TracProjectsFoo
現(xiàn)在你打開(kāi)瀏覽器,訪問(wèn)Url: http://localhost:8000,Trac的界面會(huì)展現(xiàn)在你面前。界面上你只能看到"Available Projects"的列表,由于我們只是建立了一個(gè)Project,所以你只能看到Foo這一個(gè)超鏈接。點(diǎn)擊Foo,進(jìn)入Foo的工程頁(yè)面。
       5、為Trac Project添加用戶
Ticket是Trac Project管理和操作的基本元素,但是在通過(guò)上面方式以匿名登錄方式打開(kāi)的頁(yè)面上你只能"View Tickets",而無(wú)法"New Ticket";要想擁有"New ticket"的權(quán)限,你需要以一個(gè)Trac用戶的身份登錄。初始情況下,Trac沒(méi)有建立任何用戶。Trac創(chuàng)建用戶是通過(guò)建立"Password file"的方式來(lái)完成的。Trac默認(rèn)的密碼文件格式與Apache的相同,都是.htdigest格式的。如果你的系統(tǒng)內(nèi)沒(méi)有安裝Apache,你可以用Trac wiki上提供的trac-digest.py腳本來(lái)生成密碼文件。你可以將trac-digest.py文件放到{Python_INSTALL_DIR}/Scripts下面。
# trac-digest.py
from optparse import OptionParser
# The md5 module is deprecated in Python 2.5
try:
    from hashlib import md5
except ImportError:
    from md5 import md5
realm = 'trac'
# build the options
usage = "usage: %prog [options]"
parser = OptionParser(usage=usage)
parser.add_option("-u", "--username",action="store", dest="username", type = "string",
                  help="the username for whom to generate a password")
parser.add_option("-p", "--password",action="store", dest="password", type = "string",
                  help="the password to use")
parser.add_option("-r", "--realm",action="store", dest="realm", type = "string",
                  help="the realm in which to create the digest")
(options, args) = parser.parse_args()
# check options
if (options.username is None) or (options.password is None):
   parser.error("You must supply both the username and password")
if (options.realm is not None):
   realm = options.realm
  
# Generate the string to enter into the htdigest file
kd = lambda x: md5(':'.join(x)).hexdigest()
print ':'.join((options.username, realm, kd([options.username, realm, options.password])))
我們使用如下命令生成密碼文件:
python trac-digest.py -u "foo" -p "foo123" >> d: racprojectsfooconfusers.htdigest,
這里我們建立一個(gè)用戶:用戶名為foo,密碼為foo123。
我們?cè)俅蝸?lái)啟動(dòng)Trac,這次由于帶有了用戶鑒權(quán),啟動(dòng)命令行與前面略有不同。
tracd --port 8000 --auth=Foo,d: racprojectsfooconfusers.htdigest,trac d: rarojectsfoo
啟動(dòng)后,我們點(diǎn)擊login,Trac會(huì)提示我們輸入用戶名和密碼,輸入foo/foo123后,你可以看到界面顯示:logged in as foo,并且"New Ticket"菜單出現(xiàn)在頁(yè)面上方。
6、Trac.ini
conf目錄下的Trac.ini是針對(duì)Foo這個(gè)Trac Project的主配置文件。里面各個(gè)字段的含義說(shuō)明在Trac官網(wǎng)都有說(shuō)明。通過(guò)修改Trac.ini你可以很簡(jiǎn)單的在頁(yè)面上添加你喜歡的Project Logo。
7、Ticket
Ticket是Trac的核心,默認(rèn)情況下,Trac為Ticket設(shè)定了諸多屬性,并且設(shè)定了圍繞Ticket的默認(rèn)工作流。對(duì)于Ticket的每個(gè)屬性字段,我們都可以通過(guò)trad-admin工具對(duì)字段取值進(jìn)行增刪改,以適合你的需要。諸如:trac-admin d:TracProjectsfoo  component add Webms foo,這句的含義是添加一個(gè)屬于foo工程的名為"Webms"的組件值。Ticket沒(méi)有類似"Deadline"的時(shí)間屬性,我們可以用milestone和priority來(lái)約束解決Ticket的時(shí)間范圍。在"View tickets"頁(yè)面中,Trac內(nèi)置了多種"Report",你同樣也可以自定義搜索,但是目前用戶尚不能在"View Tickets"中保存自定義搜索為固定的"Report",但是你可以將自定義搜索語(yǔ)句放到一個(gè)WIKI頁(yè)面的鏈接選項(xiàng)中,這樣你可以方便的直接得到搜索結(jié)果了,無(wú)需每次都配置搜索條件。
8、WIKI
Trac內(nèi)置WIKI引擎,你可以通過(guò)trac-admin d:TracProjectsfoo wiki list來(lái)查看當(dāng)前Project的所有WIKI page名稱。你也可以通過(guò)trac-admin d:TracProjectsfoo wiki import WIKI_PAGE_NAME new_WIKI_page.txt為Foo Project導(dǎo)入一個(gè)名為"WIKI_PAGE_NAME"新WIKI頁(yè),該頁(yè)內(nèi)容來(lái)自文件new_WIKI_page.txt。和所有其他Wiki一樣,你可以任意定制你的Project中的任意Wiki頁(yè)面。
從上面的8個(gè)步驟來(lái)看,Trac簡(jiǎn)單而且實(shí)用,我已經(jīng)根據(jù)我自己的需要對(duì)Trac Project進(jìn)行了初步定制,并導(dǎo)入了我要追蹤的需求、任務(wù)和問(wèn)題,更多的高級(jí)功能還需要一段時(shí)間去發(fā)掘,的發(fā)掘到此為止了。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd