qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          軟件測試與開發(fā)的未來

           今天與何老大的一些交流,引發(fā)一些心中很久的感想表達一下,主要是針對我們開發(fā)過程一些幻想,最后給出實現(xiàn)的規(guī)化方式。

            1、云開發(fā)平臺

            我們開發(fā)人員整天忙忙碌碌,重復最多的就是編寫代碼->編譯->簡單測試->改代碼->編譯...

            云開發(fā)平臺正是為解決這個問題而來,它是什么呢?

            所謂云,就是對使用者透明,所謂云開發(fā)平臺,是指對我們開發(fā)人員(測試人員)幾乎透明的編譯調(diào)試環(huán)境。

            你要做什么?

            告訴它你的項目地址,告訴它你的編譯方式。

            它幫你做什么?

            1、監(jiān)控你的項目,有提交時幫你編譯,返回編譯結(jié)果。

            2、準備環(huán)境,提供一個云端返回的編譯完成的主機(我們的測試機),可以登錄ssh進行測試。

            2、開發(fā)過程自動化測試

            我們現(xiàn)在正在測試前移,甚至在需求階段介入,我這里不關(guān)注需求的測試方法,只說測試前移怎么去做? 我們現(xiàn)在在強調(diào)前期的代碼審查測試,前期的邏輯檢查,這些屬于白盒但是靜態(tài)檢視,我以為這些可以去做好,但僅僅對前期測試來說能暴露的問題有限,更多的時候需要靠更多的編碼經(jīng)驗。

            而開發(fā)人員在編碼時更多的時間花費在調(diào)試(大約80%不為過),這部分工作實際上可以減少很多,而且大家也知道,如果更多的時間用來設計與編寫高質(zhì)量代碼,測試的工作量也會更少,能夠有效提高整個研發(fā)效率,而現(xiàn)在的問題是,開發(fā)不知道如何利用工具改進開發(fā)過程。

            開發(fā)過程自動化測試是指,提供一種易用性框架,利用自動化測試優(yōu)勢,將過程的重復工作實施自動化測試,將每次都需要驗證的測試點實現(xiàn)自動化驗證。

            效果是:

            開發(fā)設計完成,開發(fā)編碼。

            測試前移,準備測試點,編寫自動化用例。

            利用某一個統(tǒng)一的平臺進行交付自動運行。

            難點一:對測試人員要求較高,但我們可以培養(yǎng)。

            難點二:對開發(fā)有一定慣例限制,但每一次的限制用的好可以帶來更大的自由(好處)。 像如今滿大街的智能機不是對鍵盤的限制使用嗎?

            最后一點,也是最宏大的。

            3、研發(fā)管理平臺:

            越來越多的流程,越來越繁瑣的文檔,越來越混亂的IT系統(tǒng),經(jīng)常這個賬號記不清另一個賬號無法登錄的。

            申請序列號這種小事都需要助理來處理,試想我們?nèi)绻幸惶淄晟频恼J證系統(tǒng)不可以自動下發(fā)序列號嗎? 系統(tǒng)會記錄的更清楚。使用的人也會得到最快速的響應。

            開發(fā)改了需求沒有通知我!!!

            忘了xx文檔的svn地址了!!! 找其他人問還十分不好意思,有時候還得不到立刻答復,又影響他人。

            SQA累死累活的跑路收集各種信息,但卻依然可能受到大家的數(shù)據(jù)置疑。

            一項流程更新,通報了全研發(fā)體系卻大部分的人在真正執(zhí)行時仍然遺忘。

            。。。

            問題已經(jīng)比較突出了。我們應該怎么做?

            研發(fā)管理平臺,正是我們的需要。

          它的核心功能:

            1、統(tǒng)一接入認證體系。保證內(nèi)網(wǎng)安全可靠,并提供完善的日志。

            2、集成研發(fā)流程,提供從需求到發(fā)布的過程跟蹤。 可強制限定開發(fā)經(jīng)理與測試經(jīng)理的活動。 并做到智能提醒。( 試想,每天我作為開發(fā)經(jīng)理只需要登錄一下系統(tǒng)就知道接下來該干什么, 每天只需要一次提交每日進展即可,并可隨時查詢項目成員的代碼提交質(zhì)量; 而項目責任人無需過多信息,通過研發(fā)管理平臺即可收集到項目的信息)

            例如,需求過程可以簡化, 只需要一次錄入需求, 以后每次需求變更,所有相關(guān)人員自動接受郵件,任何需求過程均被記錄,系統(tǒng)發(fā)布前提供需求完成情況,自動形成可發(fā)布文檔。

            3、集成自動化測試, 提供統(tǒng)一的靜態(tài)掃描并與ATM做接口。提供數(shù)據(jù)倉庫可以隨機構(gòu)建有效數(shù)據(jù),提供虛擬化硬件平臺,任何人在需要的時候一鍵獲取測試主機進行快速接入驗證。

            4、具備數(shù)據(jù)分析甚至挖掘能力,提供一定的SQA職責,供決策使用。

            我們來初步分析一下,

            1、云開發(fā)平臺

            實現(xiàn)難度: 中(監(jiān)控svn應該不成問題, 提供調(diào)試編譯環(huán)境,這點可通過部門虛擬設備解決,我們自動化已經(jīng)基本解決虛擬設備實現(xiàn)克隆,開啟,關(guān)閉,甚至修改ip,執(zhí)行任何命令的操作,剩下的就是工作量與需求問題, 其他難度在于解決不同環(huán)境部署的約束)

            實現(xiàn)工作量: 低

            實現(xiàn)效果: 能夠節(jié)省每個開發(fā)人員的重復操作并易出錯的問題。

            限制: 需要開發(fā)人員配合實現(xiàn)代碼文件存放和命名約束,以及相關(guān)需求細化。

            2、開發(fā)過程自動化測試

            實現(xiàn)效果:大規(guī)模提高發(fā)包與測試回歸速度

            實現(xiàn)難度:中

            實現(xiàn)工作量:中(在于如何設計一個簡單易用的框架來快速編寫和執(zhí)行自動化,這里與ATM平臺不同的在于它是輕量級,更易于完成非關(guān)鍵字級的驗證。并支持更多的語言。)

            3、研發(fā)管理平臺

            實現(xiàn)效果最佳。

            這個就不分析了,可以通過分步去做。

            為什么想到這些?


           首先,測試與開發(fā)是分不開的。我們測試的目的,保證版本質(zhì)量,另一個也十分重要的在于提高測試效率。

            開發(fā)的目的,快速高質(zhì)量發(fā)布新版本,高可維護。細致一想,提高測試效率不簡單在于測試過程,而是整個開發(fā)過程; 而高開發(fā)快速發(fā)布一部分依賴于測試的快速測試,除了高可用的架構(gòu)以外,依賴于快速有效的自動化,依賴于高效率的工具。

            不然,開發(fā)每次迭代10%開發(fā),測試驗證110%的功能局面無法得到任何改變,我們又苦又累卻得不到結(jié)果。

            為什么單元測試在我們項目中實施失敗?

            1、沒有好用的工具, 如果有一個只需要寫業(yè)務測試代碼的單元測試框架被牛人整合出來,何擔心沒人去用?

            2、沒有明確的目標,或?qū)δ繕诵Ч筇o。 我們?nèi)狈κ钟行У臄?shù)據(jù)度量,缺乏有經(jīng)驗的人,僅僅靠人的自覺基本上很難推行這些項目走向成功。

            關(guān)于開發(fā)語言,

            大多數(shù)人就像大多數(shù)人一樣傾向于選擇大多數(shù)人使用的語言, 而謂之于“最佳實施”...

            而如果我說,學一門腳本語言吧,你可能會說, 沒聽說過圖靈等價嗎?( 意指 任何計算機語言的表達能力是等價的,一門語言可以完成的事件,理論說另一門語言肯定可以完成) 腳本語言啊,太弱了吧? 不能開發(fā)大項目吧?

            實際上,目前是Lisp類的語言的天下,從perl開始, python, ruby已經(jīng)不只是開發(fā)小型項目了。大家都在使用vCenter的時候,知道它是什么寫的嗎? 實際上,它的web頁到啟動腳本均用的python。 javascript已經(jīng)火了N久了,最近的Node。js把它從前端發(fā)展到后端。

            是什么原因? 高效的開發(fā)效率, 強大的表達能力, 越少的代碼往往意味越少的維護成本。有興趣的同學可以關(guān)注下<<黑客與畫家>> 作者是硅谷的投資之父,揭秘了viaweb快速開發(fā)的秘密。

            我們可以嘗試部分內(nèi)部項目采用它。

            關(guān)于開發(fā)效率, 最近關(guān)注:

            github.com(一個git托管平臺) 開發(fā)語言rails,python,ruby 開發(fā)周期,3個人3個月上線(2008年),目前管理項目5000萬

            zhihu.org(一個知乎類似的問答) 開發(fā)語言rails,開發(fā)周期1周2個人。

            淘寶運維平臺(內(nèi)部)(一鍵發(fā)布平臺,目標:關(guān)閉運維部門,說笑了,這個正是運維部門在做:) )開發(fā)語言rails, 開發(fā)周期6個月1個人,目前基本上線。

            如何充分利用動態(tài)語言的開發(fā)效率可以在這些內(nèi)部項目更快的發(fā)布與維護。

            說這樣好像與上面沒關(guān)系啊, 就像老大說的,沒有人限制你要做什么。能夠達到目標的一切措施都可以試試。

            以上一點想法,吐吐為快。

          33/3<123

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

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

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 济南市| 措勤县| 新疆| 青冈县| 兰西县| 盐源县| 五指山市| 昭通市| 鸡西市| 廊坊市| 黑龙江省| 金寨县| 深圳市| 苍溪县| 孝昌县| 彝良县| 陆河县| 丹凤县| 都江堰市| 沾益县| 高安市| 吴江市| 棋牌| 崇州市| 华容县| 海门市| 紫云| 蒲江县| 阜宁县| 内江市| 嘉定区| 温宿县| 黄冈市| 翁牛特旗| 白玉县| 乌鲁木齐市| 金寨县| 阳春市| 栖霞市| 保康县| 莆田市|