qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          軟件測(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)想法,吐吐為快。

          33/3<123

          posted on 2013-04-17 09:38 順其自然EVO 閱讀(220) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          <2013年4月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 利津县| 洪雅县| 利川市| 榆树市| 通海县| 沅陵县| 安图县| 郓城县| 洛隆县| 辽源市| 应城市| 巨鹿县| 湖州市| 云安县| 临湘市| 南乐县| 怀远县| 定兴县| 达孜县| 合阳县| 大方县| 晴隆县| 蓝山县| 稷山县| 阿图什市| 祁连县| 筠连县| 樟树市| 托克逊县| 万盛区| 东宁县| 绵阳市| 方正县| 汝南县| 左贡县| 洛川县| 疏附县| 平陆县| 长岭县| 鸡西市| 无棣县|