軟件測(cè)試與開(kāi)發(fā)的未來(lái)
今天與何老大的一些交流,引發(fā)一些心中很久的感想表達(dá)一下,主要是針對(duì)我們開(kāi)發(fā)過(guò)程一些幻想,最后給出實(shí)現(xiàn)的規(guī)化方式。
1、云開(kāi)發(fā)平臺(tái)
我們開(kāi)發(fā)人員整天忙忙碌碌,重復(fù)最多的就是編寫(xiě)代碼->編譯->簡(jiǎn)單測(cè)試->改代碼->編譯...
云開(kāi)發(fā)平臺(tái)正是為解決這個(gè)問(wèn)題而來(lái),它是什么呢?
所謂云,就是對(duì)使用者透明,所謂云開(kāi)發(fā)平臺(tái),是指對(duì)我們開(kāi)發(fā)人員(測(cè)試人員)幾乎透明的編譯調(diào)試環(huán)境。
你要做什么?
告訴它你的項(xiàng)目地址,告訴它你的編譯方式。
它幫你做什么?
1、監(jiān)控你的項(xiàng)目,有提交時(shí)幫你編譯,返回編譯結(jié)果。
2、準(zhǔn)備環(huán)境,提供一個(gè)云端返回的編譯完成的主機(jī)(我們的測(cè)試機(jī)),可以登錄ssh進(jìn)行測(cè)試。
2、開(kāi)發(fā)過(guò)程自動(dòng)化測(cè)試
我們現(xiàn)在正在測(cè)試前移,甚至在需求階段介入,我這里不關(guān)注需求的測(cè)試方法,只說(shuō)測(cè)試前移怎么去做? 我們現(xiàn)在在強(qiáng)調(diào)前期的代碼審查測(cè)試,前期的邏輯檢查,這些屬于白盒但是靜態(tài)檢視,我以為這些可以去做好,但僅僅對(duì)前期測(cè)試來(lái)說(shuō)能暴露的問(wèn)題有限,更多的時(shí)候需要靠更多的編碼經(jīng)驗(yàn)。
而開(kāi)發(fā)人員在編碼時(shí)更多的時(shí)間花費(fèi)在調(diào)試(大約80%不為過(guò)),這部分工作實(shí)際上可以減少很多,而且大家也知道,如果更多的時(shí)間用來(lái)設(shè)計(jì)與編寫(xiě)高質(zhì)量代碼,測(cè)試的工作量也會(huì)更少,能夠有效提高整個(gè)研發(fā)效率,而現(xiàn)在的問(wèn)題是,開(kāi)發(fā)不知道如何利用工具改進(jìn)開(kāi)發(fā)過(guò)程。
開(kāi)發(fā)過(guò)程自動(dòng)化測(cè)試是指,提供一種易用性框架,利用自動(dòng)化測(cè)試優(yōu)勢(shì),將過(guò)程的重復(fù)工作實(shí)施自動(dòng)化測(cè)試,將每次都需要驗(yàn)證的測(cè)試點(diǎn)實(shí)現(xiàn)自動(dòng)化驗(yàn)證。
效果是:
開(kāi)發(fā)設(shè)計(jì)完成,開(kāi)發(fā)編碼。
測(cè)試前移,準(zhǔn)備測(cè)試點(diǎn),編寫(xiě)自動(dòng)化用例。
利用某一個(gè)統(tǒng)一的平臺(tái)進(jìn)行交付自動(dòng)運(yùn)行。
難點(diǎn)一:對(duì)測(cè)試人員要求較高,但我們可以培養(yǎng)。
難點(diǎn)二:對(duì)開(kāi)發(fā)有一定慣例限制,但每一次的限制用的好可以帶來(lái)更大的自由(好處)。 像如今滿大街的智能機(jī)不是對(duì)鍵盤(pán)的限制使用嗎?
最后一點(diǎn),也是最宏大的。
3、研發(fā)管理平臺(tái):
越來(lái)越多的流程,越來(lái)越繁瑣的文檔,越來(lái)越混亂的IT系統(tǒng),經(jīng)常這個(gè)賬號(hào)記不清另一個(gè)賬號(hào)無(wú)法登錄的。
申請(qǐng)序列號(hào)這種小事都需要助理來(lái)處理,試想我們?nèi)绻幸惶淄晟频恼J(rèn)證系統(tǒng)不可以自動(dòng)下發(fā)序列號(hào)嗎? 系統(tǒng)會(huì)記錄的更清楚。使用的人也會(huì)得到最快速的響應(yīng)。
開(kāi)發(fā)改了需求沒(méi)有通知我!!!
忘了xx文檔的svn地址了!!! 找其他人問(wèn)還十分不好意思,有時(shí)候還得不到立刻答復(fù),又影響他人。
SQA累死累活的跑路收集各種信息,但卻依然可能受到大家的數(shù)據(jù)置疑。
一項(xiàng)流程更新,通報(bào)了全研發(fā)體系卻大部分的人在真正執(zhí)行時(shí)仍然遺忘。
。。。
問(wèn)題已經(jīng)比較突出了。我們應(yīng)該怎么做?
研發(fā)管理平臺(tái),正是我們的需要。
它的核心功能:
1、統(tǒng)一接入認(rèn)證體系。保證內(nèi)網(wǎng)安全可靠,并提供完善的日志。
2、集成研發(fā)流程,提供從需求到發(fā)布的過(guò)程跟蹤。 可強(qiáng)制限定開(kāi)發(fā)經(jīng)理與測(cè)試經(jīng)理的活動(dòng)。 并做到智能提醒。( 試想,每天我作為開(kāi)發(fā)經(jīng)理只需要登錄一下系統(tǒng)就知道接下來(lái)該干什么, 每天只需要一次提交每日進(jìn)展即可,并可隨時(shí)查詢項(xiàng)目成員的代碼提交質(zhì)量; 而項(xiàng)目責(zé)任人無(wú)需過(guò)多信息,通過(guò)研發(fā)管理平臺(tái)即可收集到項(xiàng)目的信息)
例如,需求過(guò)程可以簡(jiǎn)化, 只需要一次錄入需求, 以后每次需求變更,所有相關(guān)人員自動(dòng)接受郵件,任何需求過(guò)程均被記錄,系統(tǒng)發(fā)布前提供需求完成情況,自動(dòng)形成可發(fā)布文檔。
3、集成自動(dòng)化測(cè)試, 提供統(tǒng)一的靜態(tài)掃描并與ATM做接口。提供數(shù)據(jù)倉(cāng)庫(kù)可以隨機(jī)構(gòu)建有效數(shù)據(jù),提供虛擬化硬件平臺(tái),任何人在需要的時(shí)候一鍵獲取測(cè)試主機(jī)進(jìn)行快速接入驗(yàn)證。
4、具備數(shù)據(jù)分析甚至挖掘能力,提供一定的SQA職責(zé),供決策使用。
我們來(lái)初步分析一下,
1、云開(kāi)發(fā)平臺(tái)
實(shí)現(xiàn)難度: 中(監(jiān)控svn應(yīng)該不成問(wèn)題, 提供調(diào)試編譯環(huán)境,這點(diǎn)可通過(guò)部門(mén)虛擬設(shè)備解決,我們自動(dòng)化已經(jīng)基本解決虛擬設(shè)備實(shí)現(xiàn)克隆,開(kāi)啟,關(guān)閉,甚至修改ip,執(zhí)行任何命令的操作,剩下的就是工作量與需求問(wèn)題, 其他難度在于解決不同環(huán)境部署的約束)
實(shí)現(xiàn)工作量: 低
實(shí)現(xiàn)效果: 能夠節(jié)省每個(gè)開(kāi)發(fā)人員的重復(fù)操作并易出錯(cuò)的問(wèn)題。
限制: 需要開(kāi)發(fā)人員配合實(shí)現(xiàn)代碼文件存放和命名約束,以及相關(guān)需求細(xì)化。
2、開(kāi)發(fā)過(guò)程自動(dòng)化測(cè)試
實(shí)現(xiàn)效果:大規(guī)模提高發(fā)包與測(cè)試回歸速度
實(shí)現(xiàn)難度:中
實(shí)現(xiàn)工作量:中(在于如何設(shè)計(jì)一個(gè)簡(jiǎn)單易用的框架來(lái)快速編寫(xiě)和執(zhí)行自動(dòng)化,這里與ATM平臺(tái)不同的在于它是輕量級(jí),更易于完成非關(guān)鍵字級(jí)的驗(yàn)證。并支持更多的語(yǔ)言。)
3、研發(fā)管理平臺(tái)
實(shí)現(xiàn)效果最佳。
這個(gè)就不分析了,可以通過(guò)分步去做。
為什么想到這些?
首先,測(cè)試與開(kāi)發(fā)是分不開(kāi)的。我們測(cè)試的目的,保證版本質(zhì)量,另一個(gè)也十分重要的在于提高測(cè)試效率。
開(kāi)發(fā)的目的,快速高質(zhì)量發(fā)布新版本,高可維護(hù)。細(xì)致一想,提高測(cè)試效率不簡(jiǎn)單在于測(cè)試過(guò)程,而是整個(gè)開(kāi)發(fā)過(guò)程; 而高開(kāi)發(fā)快速發(fā)布一部分依賴于測(cè)試的快速測(cè)試,除了高可用的架構(gòu)以外,依賴于快速有效的自動(dòng)化,依賴于高效率的工具。
不然,開(kāi)發(fā)每次迭代10%開(kāi)發(fā),測(cè)試驗(yàn)證110%的功能局面無(wú)法得到任何改變,我們又苦又累卻得不到結(jié)果。
為什么單元測(cè)試在我們項(xiàng)目中實(shí)施失敗?
1、沒(méi)有好用的工具, 如果有一個(gè)只需要寫(xiě)業(yè)務(wù)測(cè)試代碼的單元測(cè)試框架被牛人整合出來(lái),何擔(dān)心沒(méi)人去用?
2、沒(méi)有明確的目標(biāo),或?qū)δ繕?biāo)效果要求太緊。 我們?nèi)狈κ钟行У臄?shù)據(jù)度量,缺乏有經(jīng)驗(yàn)的人,僅僅靠人的自覺(jué)基本上很難推行這些項(xiàng)目走向成功。
關(guān)于開(kāi)發(fā)語(yǔ)言,
大多數(shù)人就像大多數(shù)人一樣傾向于選擇大多數(shù)人使用的語(yǔ)言, 而謂之于“最佳實(shí)施”...
而如果我說(shuō),學(xué)一門(mén)腳本語(yǔ)言吧,你可能會(huì)說(shuō), 沒(méi)聽(tīng)說(shuō)過(guò)圖靈等價(jià)嗎?( 意指 任何計(jì)算機(jī)語(yǔ)言的表達(dá)能力是等價(jià)的,一門(mén)語(yǔ)言可以完成的事件,理論說(shuō)另一門(mén)語(yǔ)言肯定可以完成) 腳本語(yǔ)言啊,太弱了吧? 不能開(kāi)發(fā)大項(xiàng)目吧?
實(shí)際上,目前是Lisp類的語(yǔ)言的天下,從perl開(kāi)始, python, ruby已經(jīng)不只是開(kāi)發(fā)小型項(xiàng)目了。大家都在使用vCenter的時(shí)候,知道它是什么寫(xiě)的嗎? 實(shí)際上,它的web頁(yè)到啟動(dòng)腳本均用的python。 javascript已經(jīng)火了N久了,最近的Node。js把它從前端發(fā)展到后端。
是什么原因? 高效的開(kāi)發(fā)效率, 強(qiáng)大的表達(dá)能力, 越少的代碼往往意味越少的維護(hù)成本。有興趣的同學(xué)可以關(guān)注下<<黑客與畫(huà)家>> 作者是硅谷的投資之父,揭秘了viaweb快速開(kāi)發(fā)的秘密。
我們可以嘗試部分內(nèi)部項(xiàng)目采用它。
關(guān)于開(kāi)發(fā)效率, 最近關(guān)注:
github.com(一個(gè)git托管平臺(tái)) 開(kāi)發(fā)語(yǔ)言rails,python,ruby 開(kāi)發(fā)周期,3個(gè)人3個(gè)月上線(2008年),目前管理項(xiàng)目5000萬(wàn)
zhihu.org(一個(gè)知乎類似的問(wèn)答) 開(kāi)發(fā)語(yǔ)言rails,開(kāi)發(fā)周期1周2個(gè)人。
淘寶運(yùn)維平臺(tái)(內(nèi)部)(一鍵發(fā)布平臺(tái),目標(biāo):關(guān)閉運(yùn)維部門(mén),說(shuō)笑了,這個(gè)正是運(yùn)維部門(mén)在做:) )開(kāi)發(fā)語(yǔ)言rails, 開(kāi)發(fā)周期6個(gè)月1個(gè)人,目前基本上線。
如何充分利用動(dòng)態(tài)語(yǔ)言的開(kāi)發(fā)效率可以在這些內(nèi)部項(xiàng)目更快的發(fā)布與維護(hù)。
說(shuō)這樣好像與上面沒(méi)關(guān)系啊, 就像老大說(shuō)的,沒(méi)有人限制你要做什么。能夠達(dá)到目標(biāo)的一切措施都可以試試。
以上一點(diǎn)想法,吐吐為快。
posted on 2013-04-17 09:38 順其自然EVO 閱讀(220) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄