<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    QTP 10.0 破解新發現

    QTP 10.0 破解新發現

    2009-10-11 14:23 4801人閱讀 評論(7) 收藏 舉報

        最近想學習qtp,于是下載10.0 安裝上,關于破解,網上有很多其破解的資料,但是卻都是一樣的操作步驟,在此,我先講網上的前人資料抄襲如下,做一個完整的講解:

       

    破解步驟:

    1.安裝qtp,一路默認下來,到要求輸入License的界面

    2.拷貝mgn-mqt82.exe(下載)到C:/Program Files/Mercury Interactive(自己手動創建)文件夾下

    3.自己手動創建C:/Program Files/Common Files/Mercury Interactive/License Manager文件夾

    4.執行自己剛才創建的C:/Program Files/Mercury Interactive文件夾下的破解工具mgn-mqt82.exe,會提示lservrc文件生成。

    5. 在C:/Program Files/Common Files/Mercury Interactive/License Manager/下找到文件lservrc,用記事本打開,復制文件LSERVRC中#之前的字符串,那個就是注冊碼, 如: 3QVWCPPOS5NGGFM6KPX64EQFSH6INFRJIVMC5WZ4XIIFIXX86UCPIP4M686DZKV9NANA9BUP# "QuickTestPro" version "6.0", no expiration date, exclusiveJZ7F79F6YQQFVUWNG2V7AW22K537DOELQYNX6VSCNCZ9J8M2QW9OXO5DSEQKUZA46X5BO# "FT-Unified" version "1.0", no expiration date, exclusive 就拷貝#號前的 3QVWCPPOS5NGGFM6KPX64EQFSH6INFRJIVMC5WZ4XIIFIXX86UCPIP4M686DZKV9NANA9BUP
    然后粘貼到license向導中的license輸入的地方,點擊確定,可以看到信息為無限制使用,也可以打開qtp,在help-about qtp--License對話框中可以看到該qtp已經顯示為無限制使用了 

     以上部分親自驗證過,以下部分未親自驗證過: 


    插件延長使用時間方法:(試用于任何情況,包括插件已過期)

       已試成功的插件有JAVA/NET/ORACLE/POWERBUILDER/WEBSERVICE/DELPHI(其余的插件類似)
       控制面板-添加刪除程序中刪除所有附加插件,使用REGCLEAN注冊表軟件清理一下注冊表,打開QTP一次, 再安裝QTP95所需插件,打開QTP95,熟悉的13天又回來了.
        獨立DELPHI插件延長使用方法 不管在任何時候安裝DELPHI插件,其使用時間是由QTP95中已安裝插件所能使用的時間來決定的.所以要延長使用時間的話,需要將所有插件全部卸載然后再重新安裝 延長使用方法同上面一樣.
       PS:千萬注意不要隨便修改系統時間,往后調即使插件過期還有辦法讓它繼續使用,要是往前調系統時間那就怎么都沒有辦法再使用插件了.

    這個是注冊碼生成工具: mgn-mqt82.rar(235 KB)

    mgn-mqt82.rar(235 KB)

     

      我嚴格按照上面的步驟做了可是還是破解不成功,破解完,打開qtpro, 總是報一個runtime error. 經過多次的卸載重裝還是不行,后來我打開 C:/Program Files/HP/QuickTest Professional/bin  (安裝目錄),發現一個文件 inst_key

     

     

     

    打開這個文件,然后將上面提到的lservrc中#號前面的內容copy進取,點擊確定,即可破解成功

    posted @ 2011-10-28 11:39 順其自然EVO| 編輯 收藏

    微軟的軟件測試工程師——《微軟的軟件測試之道》

     一、職位名稱含義:

      即使你給玫瑰花起不同的名字,它聞起來可能還是同樣的香。但是,如果你給工程師不同的職位名稱,他們對自己職責的理解就會大不相同。微軟將那些通過編寫代碼來開發產品功能的軟件工程師統稱為“軟件開發工程師”(Software Development Engineer,SDE)。而微軟測試工程師的正式職位名稱是“軟件開發測試工程師”(Software Development Engineer in Test,SDET)。這兩個職稱聽起來很像,因為微軟的測試工程師也同時做開發。測試工程師的其他主要職責包括:制定測試計劃、設計測試用例、分析缺陷的根本原因、參與程序代碼的審查和產品設計的審查,以及開發測試自動化程序。有時測試工程師也參與產品源代碼的開發,或缺陷的修正等工作。但總的來說,因為測試工程師的工作量很大,所以直接參與產品開發的情況并不是很普遍。

      雇用對測試有激情的軟件工程師做測試工作是微軟行之有效的創新,它完全不同于軟件行業其他公司的做法。對此外界常得出一種結論,認為我們雇用會編寫程序代碼的工程師來做測試工作是因為我們想讓他們編寫有效的自動化測試程序,從而排除手工測試。其實這只是其中的一小部分原因。那些懂得怎樣編寫程序和計算機基本構造的測試工程師,常常具有軟件測試所必備的分析技能。他們能夠盡早發現缺陷并分析其根本起因,這使得他們能很快發現類似的缺陷。擁有和開發工程師一樣的計算機基礎增強了測試工程師的技能,給了我們的測試工程師更靈活和動態的生產力。

      2005年以前,微軟將軟件測試人員人分為:軟件測試工程師(Software Test Engineer,STE)和軟件開發測試工程師(SDE/T)。SDE/T 和STE的分工。

      可以看出,STE的工作更貼近于我們一般黑盒測試人 員的工作,專注于測試計劃、測試用例、測試的執行以及設計方案的審查;SDE/T 的工作內容則是開發測試工具(安全、性能、自動化方面的工具的開發)以及找bug、參與設計方案審查、代碼審查等一般的測試工作。(ps:只用大牛公司才 會設開發測試工具的測試人員,呵呵)

      2005年以后,微軟調整了測試職稱,將所有的測試人員統稱為:軟件測試開發工程師(SDET)

      微軟的SDET培訓路線圖:

      二、微軟的測試架構師

      微軟1999年設立測試架構師職稱。是專門為那些對產品有影響的高級獨立貢獻者而設的。測試架構師的職稱反映了一個SDET對其所工作的產品的廣泛影響力。而高級SDET、首席SDET、合伙人SDET的職稱則主要是給那些對某個產品的功能產生影響的人。

      不過請記住,很重要的一點是測試架構師是一種角色而不是一個職位。盡管一個高級測試工程師可能會晉升為測試架構師,但是并不是所有的人都會成為 測試架構師。通常,有些部門會出于商業需要或策略需求設立一個測試架構師的角色。但有時候你也會看到一個高級測試工程師發揮測試架構師的作用,但是卻沒有 測試架構師的職稱。注意,此處所討論的是測試架構師的角色而不是測試架構師的職稱。

      微軟并沒有具有普遍性或代表性的測試架構師角色。微軟的測試架構師們致力于各種各樣的目標,承擔著各種各樣的任務。有些人花時間開發測試的基本 結構、測試框架,或者評估產品功能、創立復雜的測試。有些人則負責管理其所在部門的某項特殊技術。還有些人負責怎樣提高測試效率的咨詢。所有測試架構師的 角色的共同點和主要職責是為本部門提供技術指導和制定策略方向。測試架構師的級別通常表明他們的職責范圍--是致力于產品的一組功能、一條產品線,還是跨 越整個部門。當然,除了被期待對現有產品負責外,測試架構師還應該超越產品的現有版本而能高瞻遠矚,如果可能的話,還擁有兩三個不與某個特別產品的發行有 直接關系的成果。

      微軟的測試架構師不僅要有效地影響測試領域,還要在開發和項目管理方面發揮影響力。測試架構師必須能駕馭產品的質量、提供指導、反饋和建議,以提高整個工程部門的質量規范。

      前面談論了測試架構師“是什么”,那么,測試架構師“不是什么”呢?測試架構師的職稱不是因為級別或經驗而授予的。設立測試架構師是一種投資。 這種投資結合了市場對有能力幫助產品做靈活變化的人才的需求。值得強調的是測試架構師并不是一種職業發展軌道。對測試架構師的技能要求和對相似級別的其他 職務的職業階段發展要求是一致的,都強調跨組織的溝通和推動變革的能力。提示:

      截止至2008年,微軟全球的9000多名測試工程師中只有四十幾位測試架構師。

      三、微軟的測試職業的發展道路

      1、從SDET獨立貢獻者開始的職業發展歷程

      影響力的范圍從一個狹窄定義的產品功能擴展到一個系列產品的功能、一個完整的產品。比如Microsoft Office Word或者Microsoft Media Player,直到最后達到一條產品線,比如Office或者Windows系統。影響力可以像測試架構師的職位那樣,基于測試的各個方面橫向延伸,也可 以基于一個像協議安全那樣的技術領域縱向延伸。

      合伙人SDET并不是一個工程師的職業發展軌道的最高點,卻是測試職業發展軌道的最高點。合伙人SDET 比杰出工程師(Distinguished Engineers)(相當于公司副總裁級別)要低一個級別。這并不是因為微軟覺得在測試領域不需要杰出工程師,而是我們相信隨著工程師們在職業道路上不 斷地前進發展,他們的行為表現變得越來越相似,不同學科的差異所帶來的影響價值在減少。在某種意義上,每一個從事10個工程學科中的任何一個學科的工程 師,隨著他們技術領域的發展,都可以達到成為另外一個學科的工程師的水平。

      2、從SDET管理開發的職業發展歷程簡介

     在微軟,當一個工程師轉向管理職位時,這是一個"平級"的變化,轉為管理人員這并不說明你有更高的工資,更好的辦公環境。也就是說微軟有技術人員都有資深的技術背景,而他們在管理的同時也要分擔技術工作。

      有一點很重要,在決定一個SDET主管能否在職業道路上繼續前進和發展的因素中,技術復雜度和他的技術水平遠比他所管理的測試組的大小重要。負 責測試產品安全的小組就是一個例子。這些規模小,但技術含量高的組通常對產品的質量有著重要的影響,所以在這樣的組里,你可能常會發現一個更資深的 SDET主管。在一個相對規模較小的組,SDET主管自己也需要做很多的測試、編程、分析和記錄軟件漏洞的工作。從最高級別的執行董事到剛加入的新員工, 產品組的每一個成員在發現產品漏洞的時候都應該對漏洞記錄存檔。隨著一個組的規模越來越大,主管需要承擔更多的管理職責,而在具體的技術工作上花費的時間 較少。無論組的規模大小,SDET主管都應該具備很強的技術能力,同時也擔負起一個組的技術領導工作SDET主管通常都是組里對一個產品功能懂得最多的工 程師,同時也是組里最好的測試和開發人員之一。

      3、測試經理職稱

      測試經理很少需要親自作具體的測試工作事項,比如編寫和執行測試用例。但每一個在測試領域的人,無論他是什么級別,都會親自動手找軟件的缺陷。測試經理仍然需要懂得技術,但要求他們多注重建立測試的流程和工具,而不是在具體的功能測試上。

    ----------------------------------------------------------------------------------------------------------------------

      個人看法:

      1、關于測試人員是否需要懂開發的問題是許多測試人員討論的問題,個人看法,當測試走到一定深度就會有瓶頸,要想做 的更遠,學習開發是一個突破口,我覺得不懂開發的測試猶如“隔衣撓癢”,什么感覺?自己體會!提示并一定要精通開發,但一定要有開發思想。也許微軟的產品 特殊,所以他們所有測試人員都整成了SDET(軟件測試開發工程師),既然存在就有它的意義,而且還是在那么牛叉的公司存在,希望和我一樣的小初級測試員 它當做一個目標去努力。

      2、微軟的工程師轉管理職位是“平級”的,而且要轉管理一定在技術上優于同事,可見微軟把技術看的很重要,就目前我 所知道的測試人員相對來說比較浮躁,工作內容散而不深,工資相對開發人員低,尤其剛入行的測試員,好多公司沒有給出很好的定位,職業發展比較迷茫,這是我 們測試行業的現狀,但我還是希望各位平心專注于技術上。

      (以上個人觀點,歡迎拍磚~!呵呵)


    posted @ 2011-10-28 11:00 順其自然EVO| 編輯 收藏

    單元測試之白盒測試方法——代碼審查

    我所在公司內目前還沒有單元測試,前兩天測試某系統的FTP上傳功能時,發現其軟件的流程設計有問題,進而覺得單元測試對系統還是很重要的,今天又在網上查看了很多關于單元測試的文章,發現現在做單元測試的公司還真的不是很多呀。原因之一單元測試的bug發現率太低使得公司忽視了這一塊;再就是公司內沒有一個好的單元測試流程。鑒于上面提到的兩個原因及公司現在的環境(流程的可行性),我想出了以下的白盒測試流程。簡稱單元測試之白盒測試方法(代碼審查)。

      首先先說一下測試中需要出的文檔。

      在單元測試前可以進行代碼規范性審查。注:可以對所有代碼進行規范性審查,也可以對重點代碼進行規范性審查。此步驟可裁剪。

      1、單元測試申請。注明測試的功能點,時間,各功能點測試原因等。

      (1)測試功能點

      (2)測試進度

      (3)每個功能點的測試原因

      2、制定單元測試計劃。在 許多資料中定義單元測試中的單元時各不相同。有用模塊的,有用函數的,有用類的等。偶在這里為了可操作性,再就是偶測試的系統都是應用軟件,很重視界面的 操作,所以偶將單元定義為界面上的功能性操作。如添加按鈕等。當然不會是這么簡單的。偶只是將比較復雜的一些操作寫入了單元測試計劃中。單元測試的計劃模 板如下:

      (1)定義單元測試功能點。如(ftp上傳功能)

      (2)功能點需求規格說明書。

      (3)功能點測試時間。

      (4)功能點測試的組織方式及人員。

      (5)功能點測試采用的方法。

      (6)功能點測試的通過標準

      3、單元測試設計。在單元測試設計中主要由開發人員將其程序的設計思路,即流程圖畫出。

      (1)功能點需求。

      (2)功能點設計流程圖

      (3)功能點設計數據流圖

      (4)功能點偽代碼(可裁剪的)

      4、單元測試用例這一部分主要由測試人員根據功能點需求進行測試用例的設計

      (1)功能點需求

      (2)測試用例設計方法

      (3)測試用例

      5、評審人員的bug記錄

      (1)測試功能點

      (2)測試bug記錄。

      6、單元測試報告。這一部分由開發人員寫單元測試用例報告,包括本次單元測試發現的bug類型,單元測試中拒絕bug的原因,單元測試情況等。

       然后再提一下測試的組織方式。由項目經理或者系統設計人員準備單元測試申請,單元測試計劃,單元測試設計(單元測試設計也可以由開發人員準備),準備好 以上文檔后,提交測試部門;測試人員根據上面的文檔出單元測試用例(單元測試用例也可以在需求出來以后就出,此處可以靈活變通);然后測試人員根據上面的 文檔檢查設計中的bug,填寫bug記錄單;測試人員根據bug記錄單組織專家評審(項目經理、設計人員等),專家針對測試人員測試出的bug進行討論, 在評審中專家也可以提出新的bug記錄到bug記錄單中,最后在評審中達成協議,bug記錄單中的問題哪些修復,哪些不修復怎樣處理等,最后由開發人員修 改bug記錄單中的問題,修改完后交給測試人員,測試人員可以用黑盒測試的方法驗證bug記錄單中的問題是否修改。驗證完后,由開發人員填寫單元測試報告。單元測試完成。

      累死了,終于完成了,希望大家多提寶貴意見。

    posted @ 2011-10-28 10:29 順其自然EVO| 編輯 收藏

    一些關于Java的瑣碎知識點

    1、對于類中的final類型屬性,一般在聲明的時候直接寫final int a =1;

      但也可以在構造函數中進行賦值,如:

    final int a;
    A{}( a =1;)

      但要注意:需要每一個構造函數都賦值,且不能嵌套。

      而如果想寫static final int a;則必須在聲明時進行初始化,static final int a = 1;因為靜態的也是不屬于類。

      2、繼承中要注意的問題:子類對父類中構造方法的問題。

      父類的中構造方法不能被繼承,故

    class A{}
    class B extends A{ A();} //是錯的,只能用super關鍵字

      如果子類中沒有顯示的調用super,則系統會加上,super();注意即是找父類中無參數的構造方法,所以,如果父類自己寫了構造方法而導致無參數的已經不存在了,則會出錯.

      3、靜態方法:只屬于類本身,而不是某個對象。它是在類加載的時候,就已經為之分配好內存了。這時,并沒有產生這個的對象。而對象只有在new時候才會出現。所以只能把這個變量加個static.這也叫做類變量,與之對應的叫做實例變量。

      4、main是靜態的,因為它不是屬于某個類的,而是全局的。因此在執行時直接找到main,而不是針對某個類的對象。如果不是static,則會先產生類的對象。

      public:由于其是虛擬機調用,因此必須是public的。

      static:由于其不必產生對象,因此是static的。

      5、對于主類的修飾符是default時:表示在同一個包中可以被訪問。

      6、final類不能被繼承。

      7、private的方法,只要出了類就不能被訪問,不管是在同一個包中,還是繼承關系。默認的訪問權限都是在這個包中,被繼承也不能被訪問。

      protected方法對以上均適用,但和public方法也有區別

      在于:對于不同包中,沒有繼承關系的兩個類而言,在一個類中使用了另一個類的對象,則只有public方法可以被訪問,而protected方法不能被訪問。

      8、抽象方法的聲明:abstract void proMethod(); //不要加大括號

      看一個類是否被實現,不是看{}里面有沒有代碼,而是看有沒有{}

      9、JNI(Java Native Interface),它允許Java虛擬機(JVM)內部運行的Java代碼能夠與用其它編程語言(如c、c++、匯編語言)編寫的應用程序和庫進行互操作。

      JNI可以理解為Java和本地應用程序之間的中介。

      它最大的好處是沒有對底層Java虛擬機的實現施加任何限制。

      寫一個native的方法:

      1)寫java代碼段,如HelloWorld.java。

      2)用javac來編譯之,得到.class文件。

      3)用javah -jni 來生成HelloWorld頭文件,得到HelloWorld.h

      4)用HelloWorld.h來生成本地方法,得到HelloWorldImp.c

      5)編譯本地代碼,加載共享庫,生成Hello.so(so文件是linux,或unix下動態連接庫的文件,相當于windows下的.dll)

      10、對于接口中的方法,默認情況下就是public abstract的,因此不用再寫,也因此,實現接口時必須用public來修飾。

      接口中的數據成員默認都是public static final.

     11、

    以下是代碼片段:
     class Z extends A implements B,C
      {
      }
      //注意這個順序先派生類,再實現接口。

      12、有關內部類:當我們產生一個派生類的對象的時候,它會調用基類的構造函數,產生一個基類的對象。因此

    以下是代碼片段:
     class Car
      {
      class Wheel
      {
      }
      }
      class PlaneWheel extends Car.Wheel
      {
      public static void main(String[] args)
      {
      PlaneWheel pw = new PlaneWheel();
      }
      }

      這是不能通過編譯的,因為我們要產生pw,就必須先產生Car.Wheel的對象,而它是內部類,所以要產生它的對象,就必須先產生外部類的對象,才能建立起內部與外部的引用關系。

      因此作出改變:

    以下是代碼片段:
      class PlaneWheel extends Car.Wheel
      {
      PlaneWheel(Car car)
      {
      car.super();
      }
      public static void main(String[] args)
      {
      Car car = new Car();
      PlaneWheel pw = new PlaneWheel(car);
      }
      }

      21、javac A.java可以生成B.class,前提是classB在A.java中被聲明為一個類,且不是Public的。

      22、finally的問題:不是在try,catch之后的語句就相當于finally,因為如果在try中有return語句,則其后的是不會被執行的。而如果放在finally中,則一定會執行。

      如果在代碼中會有一個嚴重錯誤,而不想讓finally中的語句執行,則寫

      System.exit(-1);來避免其執行。//不是0就可以。

      23、c++中允許程序員重載操作符,但java中不允許。針對String的"+"和"+=",是java中唯一被重載的操作符。

      24、StringBuffer的應用:

      StringBuffer sb = new StringBuffer().append("a").append("bc").append("123");

      可用toString()方法,將其轉化為toString();

      由于在打印時會自動調用toString方法,因此,打印時不必顯示加上。

      25、java中的索引是從0開始,而且,對于一個區間的數值,是大于等于,小于的關系。即前面的數字是包含的,而后面的是不包含的。

     26、java中,傳參時:對于基本數據類型,傳遞的是數據的拷貝;對于引用類型,傳遞的引用的拷貝。但是對于引用的拷貝,是淺拷貝,即指向了堆中同一處內存。

      因此在改變值的時結果不一樣,對于基本類型,其回到傳參者時沒有改變其值,而對于引用,其值則改變了。

      27、有的接口中沒有任何抽象方法,如cloneable,叫作標識接口。它僅僅是告訴編譯器自己可以被克隆。

      如果類中的成員有引用,則涉及到淺拷貝還是深拷貝的問題。

      淺拷貝就是把除了引用成員的全都拷貝一份,而對于引用部分則指向同一處。而深拷貝就是把所有的都拷貝一份。

      調用super.clone()方法,它可以在運行時刻,object中的clone()識別出你要復制的哪一個對象,然后為此對象分配空間,并進行對象復制,將原始對象的內容一一復制到新對象的存儲空間中。

      28、Integer的

      valueOf(String s) //把s轉化成一個包裝類對象返回

      parseInt(String s) //把s轉化成一個int型數據返回

      封裝類的對象的值是不能被修改的,只能是讀。

      29、java中,每個class都有一個相應的Class對象。也就是說,當我們編寫一個類,編譯完成后,在生成的.class文件中,就會產生一個Class對象,用于表示這個類的類型信息。

      獲取class實例的三種方式:

      a)利用對象調用getClass()方法獲取該對象的class實例;

      b)使用class類的靜態方法forName(),用類的名字獲取一個class實例

      c)運用.class的方式來獲取class實例,對于基本數據類型的封裝類,還可以用.type來獲取相對應的基本數據類型的class類型。如:

    以下是代碼片段:
    Point pt = new Point();
      Class c1 = pt.getClass();
      System.out.println(c1.getName());
      try{
      Class c2 = Class.forName("Point");
      System.out.println(c2.getName());
      }
      catch{……}
      Class c3 = Point.class;
      System.out.println(c3.getName());
      Class c4 = int.class;
      System.out.println(c4.getName());
      Class c5 = Integer.TYPE;
      System.out.println(c5.getName());

      30、java中的反射api:主要用于:對于某個不知道名字的類,通過反射機制調用他們的構造函數,為構造函數及其他函數進行傳參,調用。

      31、runtime這個類提供了應用程序與環境之間的接口。可以獲取jvm的總共內存,已占有的內存。用getRuntime()方法獲取其實例。

    Runtime rt = Runtime.getRuntime();
    System.out.println(rt.freeMemory());
    System.out.println(rt.totalMemory());

      另可以有執行命令,返回一個process. 為應用程序做準備。

    try{rt.exec("notepad");}
    try{rt.exec(javac ArrayTest.java);};

      要獲得其具體輸出的信息,可以用process類。

    try{
    Process p = rt.exec("java ArrayTest");
    InputStream is = p.getInputStream();//此時,其輸出全在了 InputStream中
    int data;
    while((data=is.read())!=-1)
    {
    System.out.print((char)data);
    }
    }

      Runtime類是使用單例模式的一個例子。

      32、單例模式:

      a)一個類只有一個實例,而且自行實例化并向整個系統提供這個實例,這個類稱為單例類。

      b)單例類的一個最重要特點:它是類的構造方法是私有的,從而避免了外部利用構造方法直接創建多個實例。

    以下是代碼片段:
    class Singleton
      {
      private static final Singleton st = new Singleton();
      private Singleton(){}
      public static Singleton getInstance()
      {
      return st;
      }
      }


    posted @ 2011-10-28 10:25 順其自然EVO| 編輯 收藏

    Mantis安裝與配置

    http://blog.csdn.net/sunxy5291/article/details/6014216

    posted @ 2011-10-27 18:30 順其自然EVO| 編輯 收藏

    Windows下搭建Mantis詳解

    Windows下搭建Mantis詳解

    下邊是在Windows下搭建Mantis的詳細過程,太長了,只能分開發上來,不過我會附一個pdf的文件上來,需要的可以下載。
    搭建環境:
            apache_2.2.13-win32-x86-no_ssl.msi
            php-5.3.0-Win32-VC6-x86.zip
            mysql-5.0.22-win32.zip
            mantisbt-1.1.7.zip
            輔助工具:
            EMS(mymanager_lite.zip):可以通過界面形式操作Mysql數據庫
            PhpMailer(PHPMailer-ML_v1.5.zip):搭建Mantis郵件服務器
            Jpgraph(jpgraph-2.3.4.rar):實現Mantis的統計報表功能
    安裝并配置Apache
    下載地址:http://httpd.apache.org/download.cgi
    運行下載的軟件開始安裝,開始都是next,到如下界面時:

            設置系統信息
            Network Domain:
            在Network Domain下填入您的域名(比如:ok.com)
            Server Name:
            在Server Name下填入您的服務器名稱(比如:www.ok.com,也就是主機名加上域名;如果自己的ip是公網ip,這里填寫自己的ip,其他人即可訪問自己搭建的mantis,如果有自己的域名,這里可以填寫域名,別人可以通過這個域名訪問自己的mantis,因為我自己電腦沒有公網ip,在網上找了幾個把內網動態解析的軟件也沒有成功,所以這個功能沒有驗證,需要外網訪問mantis的可以驗證)
            Administrator's Email Address:
            在Administrator's Email Address下填入系統管理員的聯系電子郵件地址(比如:423114976@qq.com
            上述三條信息僅供參考,其中聯系電子郵件地址會在當系統故障時提供給訪問者,三條信息均可任意填寫,無效的也行(以后需要修改時可以在apache安裝目錄下的conf文件夾下找到httpd.conf這個文件進行編輯,查找ServerName可以修改服務器名,想讓別人通過這個訪問,需要去掉這句話前邊的#;查找ServerAdmin可以修改管理員的郵件地址)。
            端口選擇:
            下面有兩個選擇,圖片上選擇的是為系統所有用戶安裝,使用默認的80端口,并作為系統服務自動啟動;另外一個是僅為當前用戶安裝,使用端口8080,手動啟動。
            注意:檢查80端口有沒有被占用,我安裝時就由于打開IIS,導致apache無法啟動。如果要查看80端口被哪個程序占用,可以在命令行窗口中輸入netstat -an,找到占用該端口的程序的PID,然后在任務管理器中點"查看"->"選擇列...",勾選"PID",找到該PID的程序,結束任務。
    3、接著到選擇安裝方式的界面,選擇Custom的安裝方式,這樣可以選擇安裝路徑,選擇好后一路next即可,知道Finish,安裝完成。
    4、測試apache按默認配置運行的網站界面是否正常,在IE地址欄輸入“http://127.0.0.1”,顯示It works,表示apache服務器已安裝成功。(以前版本的apache的默認網站界面有可能跟此版本的不同,如果沒有報錯基本都是正常的,為了確認,也可以到apache安裝目錄下的htdocs文件夾找到index.html,在本地打開看是否跟瀏覽器打開的相同)
    3、配置(注意:修改配置文件后需要重啟apache,修改才能生效):
            1)開始—>所有程序—>Apache HTTP Server 2.2—>Configure Apache Server—>Edit the Apache httpd conf Configuration file,點擊打開,這時打開的是apache的配置文件httpd.conf;
            2)在Apache安裝目錄下,找到conf文件夾,打開里邊的httpd.conf。
    安裝PHP
    下載地址:http://windows.php.net/downloads ... 0-Win32-VC6-x86.zip
    選擇適合的版本:
    在網上找到一段PHP版本的說明,如下:Download the VC6 builds if you are using the standard Apache.org web server. The VC9 builds should be used for the Apache Lounge binaries or IIS.
    A Thread Safe version should be used if you install PHP as an Apache module. The Non Thread Safe version should be used if you install PHP as a CGI binary.
       因為我安裝的是標準版的apache,而且需要以apache module模式安裝PHP,因此下載的是VC6的Thread Safe版本,大家可以根據自己的需要選擇適合的版本。
    3、我下載的是壓縮包,把它解壓到指定的位置,我的設定在“D:\PHP”
    4、配置:
            1)把D:\PHP\php.ini-development或php.ini-production(如果是其他版本的PHP,可能需要改php.ini-dist)改成php.ini;
            2)查找extension_dir,改為extension_dir="D:\PHP\ext" ,并去掉前邊的分號,因為ext文件夾下有很多我們可能需要調用的擴展庫;同時需要在系統環境變量的path里邊添加上php安裝路徑和其子路徑ext,方法是:“我的電腦”上右鍵—>屬性—>選擇“高級”標簽—>點選“環境變量” ,在“系統變量”下找到“Path”變量,選擇,雙擊或點擊“編輯”,將“;D:\PHP;D:\PHP\ext”加到原有值的后面,然后全部確定。
            注意:添加后請務必重啟OS,才能生效,否則不能正確加載PHP擴展庫,比如mantis要用到的php_mysql.dll,不過可以先配置完,到安裝mantis的數據庫前再重啟。
            3)查找php_mysql.dll,將這一行前面的號去掉,這樣PHP就能調用mysql模塊了,如果沒有就自己加進去extension_dir=php_mysql.dll  
            4)查找include_path,找到“; Windows: "\path1;\path2"”,把它下邊一行改為 include_path = ".;d:\PHP\PEAR" ,并去掉前面的分號,因為Mantis中用到了Pear庫,需要包含Pear庫。
    5、將php以module方式與Apache相結合,使php融入Apache(如果下載的是.msi安裝版本的php,安裝中選擇支持apache 2.2.x,那么會自動配置apache的http.conf文件、mime.types文件和產生PHP的php.ini文件,由于,安裝版本內容不全,沒有ext和pear等目錄,所以,安裝完后,將解壓版解壓到剛才的安裝目錄下,此括號內是根據網上下載的配置文檔整理的,因為自己直接用的壓縮包,沒有驗證安裝版本的)
       1)打開apache的配置文件http.conf,搜索#LoadModule ssl_module modules/mod_ssl.so ,在此句下邊添加如下兩行:
          LoadModule php5_module D:/PHP/php5apache2_2.dll
            PHPIniDir "D:/PHP"
            第一行指以module方式加載php;
            注意:D:/PHP/php5apache2_2.dll是PHP的安裝目錄下的dll文件,如果是apache2.2,必須寫"php5apache2_2.dll",如果是其他版本的apache,可以到php安裝目錄下找相應的dll文件,php與apache的版本一定要對應
            第二行指明php的配置文件php.ini的位置。
       2)搜索AddType application/x-gzip .gz .tgz,在這行下邊添加如下一行:
          AddType application/x-httpd-php .php
          你也可以加入更多,實質就是添加可以執行php的文件類型,比如你再加上一行“AddType application/x-httpd-php .htm”,則.htm文件也可以執行php程序了,你甚至還可以添加上一行“AddType application/x-httpd-php .txt”,讓普通的文本文件格式也能運行php程序。
       3)目錄默認索引文件也可以改一下,因為現在加了php,有些文件就直接存為.php了,我們也可以把“index.php”設為默認索引文件,搜索DirectoryIndex,找到如下一段:
            <IfModule dir_module>
              DirectoryIndex index.html
            </IfModule>
          把中間一句修改為:
            DirectoryIndex index.php index.html
            優先順序可以自己排,我把index.php放在第一位了。編輯完成,保存,關閉。
    6、驗證是否配置成功:
       在apache的安裝目錄下的htdocs文件夾下建一個index.php文件,代碼如下:
       <?php
            phpinfo();
            ?>
    在IE地址欄中輸入“http://127.0.0.1”,如果看到phpinfo的界面,說明配置成功。
    安裝Mysql
    下載地址:http://download.mysql.cn/src/2006/0710/5543.html
    安裝:


    在3個選項中選擇第3個Custom,在接下來的安裝中可以自己進行一些設置。

    安裝路徑可以自由選擇



            這里是詢問你是否要注冊一個mysql.com的賬號,或是使用已有的賬號登陸mysql.com,一般不需要了,點選“Skip Sign-Up”,按“Next”略過此步驟。


            現在軟件安裝完成了,出現上面的界面,這里有一個很好的功能,mysql配置向導,不用向以前一樣,自己手動亂七八糟的配置my.ini了,將 “Configure the Mysql Server now”前面的勾打上,點“Finish”結束軟件的安裝并啟動mysql配置向導。


            選擇配置方式,“Detailed Configuration(手動精確配置)”、“Standard Configuration(標準配置)”,我選擇“Detailed Configuration”。

            選擇服務器類型
            Developer Machine:開發測試類,mysql占用很少資源
            Server Machine:服務器類型,mysql占用較多資源
            Dedicated MySQL Server Machine:專門的數據庫服務器,mysql占用所有可用資源
            大家根據自己的類型選擇了,一般選“Server Machine”,不會太少,也不會占滿,大家根據自己需要進行選擇,因為我是在自己電腦上測試搭建,所以選擇了第一個“Developer Machine”。

            選擇mysql數據庫的大致用途
            Multifunctional Database:通用多功能型,好
            Transactional Database Only:服務器類型,專注于事務處理,一般
            Non-Transactional Database Only:非事務處理型,較簡單,主要做一些監控、記數用,對MyISAM數據類型的支持僅限于non-transactional
            隨自己的用途而選擇了,我這里選擇“Multifunctional Database”,按“Next”繼續。

            對InnoDB Tablespace進行配置,就是為InnoDB 數據庫文件選擇一個存儲空間,如果修改了,要記住位置,重裝的時候要選擇一樣的地方,否則可能會造成數據庫損壞。我這里沒有修改,使用用默認位置,直接按“Next”繼續。

            選擇您的網站的一般mysql訪問量,同時連接的數目
            Decision Support(DSS)/OLAP:20個左右
            Online Transaction Processing(OLTP):500個左右
            Manual Setting:手動設置,自己輸一個數
            我這里選“Decision Support(DSS)/OLAP”,按“Next”繼續。

            是否啟用TCP/IP連接,設定端口,如果不啟用,就只能在自己的機器上訪問mysql數據庫了,我這里啟用,把前面的勾打上,Port Number:3306,按“Next”繼續。下邊的選項是設定服務器模式,建議勾選。

            這個比較重要,就是對mysql默認數據庫語言編碼進行設置,第一個是西文編碼,第二個是多字節的通用utf8編碼,第三個可以選擇自己需要的編碼。按 “Next”繼續。

            選擇是否將mysql安裝為windows服務,還可以指定Service Name(服務標識名稱),是否將mysql的bin目錄加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目錄名,比如連接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便)。按“Next”繼續。

            這一步詢問是否要修改默認root用戶(超級管理)的密碼(默認為空),“New root password”如果要修改,就在此填入新密碼,“Confirm(再輸一遍)”內再填一次,防止輸錯。“Enable root access from remote machines(是否允許root用戶在其它的機器上登陸,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一個匿名用戶,匿名用戶可以連接數據庫,不能操作數據,包括查詢)”,一般就不用勾了,設置完畢,按“Next”繼續。

    確認設置無誤,如果有誤,按“Back”返回檢查。按“Execute”使設置生效。

            下邊是一些摘自網上的安裝出錯時的解決辦法,如果安裝時出現問題,可以參照下邊方法,可能會有幫助:
    如果一次安裝不成功,卸載后,不會自動刪除安裝目錄下的文件和數據文件,應自己手動刪除才能重新安裝,否則會有影響
               存在須刪除文件的地方:
            1.你選定的安裝目錄或默認的安裝目錄
            2.你指定的數據文件存放目錄
            3. C:\Documents and Settings\All Users\Application Data目錄
    如遇安裝完配置最后一步啟動服務失敗,原因可能是以前裝過沒有卸載干凈。可卸載重新安裝來解決,也可取消配置,在cmd用命令“net start mysql”啟動
    安裝EMS,可以通過圖形界面操作Mysql數據庫
    下載地址:http://www.jspcn.net/mngtools/mymanager_lite.zip
    安裝Mantis
    下載地址:http://downloads.sourceforge.net/mantisbt/mantisbt-1.1.7.zip
    我下載的是當時的最新穩定版本1.1.7。
    安裝:
    把Mantis的壓縮包解壓到自己指定的目錄,我的路徑是D:\mantis。
    配置Apache
            在Apache的配置文件中設置mantis的目錄為虛擬目錄。修改httpd.conf,在文件末尾添加以下文字,以配置mantis目錄的訪問權限:
            Alias /mantis "d:/mantis/" 
               <Directory "d:/mantis/">
                Options Indexes 
                AllowOverride None 
                Order allow,deny 
                Allow from all 
                 </Directory>
            注意:這里特別注意,必須寫成反斜杠/,不能寫成斜杠\,否則會無法正確顯示mantis。
    為Mantis創建表、數據
             訪問http://127.0.0.1/mantis/admin/install.php,出現如下界面,并按照圖示填寫:
            
            這里和以前的mantis比較大的不同,以前的mantis會提供一個 db_generate.sql數據庫腳本來創建mantis需要的數據庫,而新版mantis則通過install界面來自動創建,特別需要注意的是Hostname一欄,默認值為localhost,而如果MySQL 安裝時變動了端口(mysql的默認端口是3306,如果安裝時變動了則按此說明修改),則應該寫成 localhost:端口號。
            這里還要注意一個問題,有時創建時會失敗,提示:【Checking PHP support for database type 】的錯誤:BAD   database is not supported by PHP. Check that it has been compiled into your server.查看apache的log發現有如下錯誤:PHP Warning: PHP Startup: Unable to load dynamic library 'd:\\Program Files\\PHP\\ext\\php_mysql.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0 這是因為不能正確加載php_mysql.dll庫,導致php與mysql不能連攜,請檢查上邊安裝PHP后進行配置時需要添加的環境變量中是否添加了,如果已經添加,請確認是否重啟系統了。
        注意:上圖說的那個CheckBox不要勾選,“Print SQL Queries instead of Writing to the Database”這個選項的意思是打印出SQL查詢,但是不實際執行創建數據庫的動作。如果是要安裝Mantis的話,不需要選這個選項。在選上這個選項的情況下點擊最下邊的Install\Update Database后會報錯,這個好像是Mantis的ADODB庫跟PHP邏輯之間的問題。由于某些原因,為了在修改或丟掉一些列之前丟掉約束,ADODB庫需要有活動的數據庫連接,并發出混有PHP邏輯的請求,很多手動重新創建的SQL請求是冗余的,因此會在選了“Print SQL Queries instead of Writing to the Database”這個選項時打印出的SQL代碼中丟失,所以導致報錯。
            安裝成功后界面如下:
            
    啟動Mantis
            訪問http://127.0.0.1/mantis/,出現登錄界面,mantis的默認用戶名為administrator,默認密碼為root。
    設置中文顯示:
    編輯mantis安裝目錄下的config_defaults_inc.php文件
    搜索$g_default_language,并修改為:$g_default_language                = 'chinese_simplified';
    注意:有的版本的mantis簡體中文的表示方法不同,可以根據下邊數組$g_language_choices_arr        = array()里邊定義的各種語言中找相應的簡體中文的表示方法。
    配置郵件服務器:
            在Mantis中有新用戶注冊時,會給其指定的郵箱發一封郵件,點開郵件中的鏈接才可以設定密碼,因此需要給Mantis添加發送郵件的功能。
    下載地址:http://jaist.dl.sourceforge.net/ ... PMailer-ML_v1.5.zip
            如果安裝的是其他版本的PHP,需要選擇適合自己PHP版本的phpmailer的版本,我選擇的是適合PHP5的版本,可以自由選擇路徑把它解壓,我把它解壓到D:\PHPMailer-ML_v1.5。
    修改d:\mantis\config_inc.php,添加以下內容:
               # phpmailer
                $g_use_phpMailer = ON;
                $g_phpMailer_path = 'D:/PHPMailer-ML_v1.5/';
                $g_smtp_host = 'smtp.163.com';//發送郵件服務器
                $g_smtp_username = 'scmroad';//發送郵件賬戶的用戶名
                $g_smtp_password = '123456';//郵件地址用戶名對應的密碼
                $g_phpMailer_method = 2;//此處的數值可為0,1,2;0為調用了一個mantis內置的mail()函數來發送郵件;1為sendmail方式;2為使用smtp方式,登錄到郵件服務器內來發送郵件
                
                $g_return_path_email = 'scmroad@163.com';//這個是管理員自己的郵件地址,接受對mantis操作的提示郵件
    修改mantis的時間
    在config_inc.php中添加如下語句:
             #時區設置
            putenv("TZ=Asia/Shanghai");
            如果想設置時間顯示的格式,還可以再加上如下語句:
             $g_complete_date_format = 'Y-m-d H:i:s';
            單引號內的字母分別代表:年-月-日 時-分-秒,可以根據自己的習慣修改格式。
            如果這樣操作不能解決問題,需要修改php.ini的date.timezone = PRC,修改php.ini后,需要重新啟動Apache服務。
    登陸界面上的兩個警告的處理
            剛配置好的mantis登陸界面會有如下兩個警告:
            WARNING: You should disable the default "administrator" account or change its password.
            WARNING: Admin directory should be removed.
       解決第一個警告,需要修改administrator的密碼。
       解決第二個警告,需要把mantis安裝目錄下的admin文件夾刪除,一般情況,為了以后能夠繼續使用,可以重命名為_admin,或者直接將其壓縮成一個admin.rar。
    配置文件上傳
    1、在config_inc.php里添加如下兩句:
            $g_allow_file_upload   = ON;
            $g_file_upload_method = DISK;
    2、在mantis安裝目錄下新建一個文件夾upload,再在mantis建立的項目中把文件上傳路徑設置為“upload”(通過Web方式),這樣上傳的文件就會存放在upload目錄中
    3、修改上傳文件的大小限制:
            config_inc.php 中添加 $g_max_file_size = 5000000; # 5MB(根據自己的需要修改)
            php.ini中修改upload_max_filesize = 5M 和 post_max_size = 5M
    4、如果upload文件夾安全性高,不具備寫權限,上傳文件時會有問題,這時需要給此文件夾增加可寫權限。(方法:右鍵點圖片保存的文件夾,選擇"屬性"->"安全",點"添加"->"高級"->"立即查找",在查找結果中選擇"everyone"后點"確定",在點"確定",然后把"everyone"的"完全控制"鉤上,最后點"確定")
    6、設置附件瀏覽功能:
            比如,在提交一個bug的時候,有時候會有截圖提交附件情況,如果想直接看到錯誤截圖而不想自己下載后再看,這也是需要設置就能實現的。但是這個功能只是針對bmp, png, gif, jpg格式的圖片文件而言,提交的doc等文件就不在之列了。只需將config文件中de $g_preview_attachments_inline_max_size 進行設置即可實現此功能。當將這個設置為0的情況,那么查看bug的時候是永遠不會出現附件貼圖的,但是如果你將這個設置為一個足夠大的尺寸,那么就會在bug里直接出現圖片,這個數值是以字節計算,如果圖片上傳為32210字節,則你把$g_preview_attachments_inline_max_size=32211,而且任何小于這個字節大小的bmp, png, gif, jpg格式的圖片文件直接顯示了。
    配置統計報表
    下載Jpgraph:http://www.jpgraph.cn/soft/jpgraph-2.3.4.rar
            注意:JPGraph 1.x 版本是針對php4,2.x 是針對php5的,請根據php的版本下載對應版本。
            下載后把它解壓到mantis安裝目錄下的core文件夾下的jpgraph文件夾內。
    在config_inc.php里添加如下語句:
            #統計報表
            $g_use_jpgraph = ON;
            $g_jpgraph_path = "D:/mantis/core/jpgraph/src/"; #設置jpgraph的路徑
            $g_graph_font = 'chinese_gbk'; 
    在php.ini將“;extension=php_gd2.dll”前面的分號刪除,這個模塊是JPGraph在顯示圖表和進行漢字編碼轉換是所必須的。
    修改mantis安裝目錄下的core目錄下的graph_api.php,搜索graph_get_font,在graph_get_font函數中添加:'chinese_gbk' => FF_SIMSUN
    修改jpgraph文件夾下的src目錄下的jpgraph_ttf.inc.php,將111行到118行注釋掉,如果版本不同,可能行數不對應,參考如下內容:
               /*        elseif( $aFF === FF_SIMSUN ) {
                        // Do Chinese conversion
                        if( $this->g2312 == null ) {
                            include_once 'jpgraph_gb2312.php' ;
                            $this->g2312 = new GB2312toUTF8();
                      }
                        return $this->g2312->gb2utf8($aTxt);
                    }*/
    解決CSV導出的中文顯示是亂碼: 
            假如到處的文件為administrator.csv,其中中文亂碼解決辦法:重命名administrator.csv為administrator.txt,另存時選擇編碼方式為ASCII改名過來,就可以了
    說明
    1、如果是在windows下裝,要特別注意,文件路徑的“/”,不能使用“\”,這在php配置文件中是注釋的含義。
    2、Mantis的設置是這樣保存的:在config_defaults_inc.php中保存這Mantis的默認設置,用戶自己的設置信息保存在 config_inc.php中,如果某個選項在config_inc.php中有設置,則系統使用config_inc.php中的設置,否則使用 config_defaults_inc.php的系統默認設置;config_inc.php.sample則是Mantis給出的一個用戶設置文件例子。
            所以我們需要修改config_inc.php文件中的設置,設置很簡單,各個參數的意義可以參見 config_defaults_inc.php,這里對每個參數都有詳細的解釋,雖然是E文,不過應該都能看懂;Sample中給出的一些設置是一定需要修改的,比如MySQL數據庫的連接參數,管理員的郵箱的;其他的要根據你的實際情況進行修改。

    posted @ 2011-10-27 17:43 順其自然EVO| 編輯 收藏

    Mantis深入學習

         摘要: 一、mantis的配置和開發環境  Mantis我用的1.2.5版,建議對mantis感興趣的,都看看doc目錄下的administration_guide和developers兩個文檔,自己試驗里面的參數和功能,對mantis的理解能加深不少。當然了,即使不深入了解,直接使用mantis也不會有什么問題。  二、mantis結構分析  下面的內容,僅僅代表本人的一些看法,可能有不對的地方,大家可...  閱讀全文

    posted @ 2011-10-27 14:57 順其自然EVO| 編輯 收藏

    Android開發資源完全匯總

    1、eoe Android開發者論壇


    目前國內最早的Android開發者社區,人氣非常旺聚集了不少Android開發方面的高手,開發中遇到的問題大都能在這里獲得解決,網站最大的特色是定期發布《eoe特刊》,問答頻道和資料分享做的也不錯。

     

    訪問地址:http://www.eoeandroid.com


    2、 AndDev


          國外非常好的一個Android開發者論壇,論壇版塊劃分完全面向開發者,從入門到進階話題很全面,版主的水平也非常高,經常會出一些教程。


    訪問地址:http://www.anddev.org/


    3、 helloAndroid


    以教程為最大特色的國外網站對大家系統學習Android知識非常有幫助


    訪問地址:http://www.helloandroid.com/


    4、 ACC 開發者論壇

     

    國內的Android開發論壇,相對eoe要冷清得多,不過國人開源項目CoolReader在這里發布,給論壇增色不少。


    訪問地址:http://androidos.cc


    5、 安卓視線 - Android開源項目分享平臺


    引用一下網站的介紹:Android 是Google開發的基于Linux平臺的開源手機操作系統。Android為我們勾畫了一個美好的移動互聯網前景,學習Android開源代碼是掌握 Android的一個最佳途徑,我們希望每個對Android感興趣的人都能夠在這里掌握更多的知識、獲得更多的靈感。

     

    每天都有最新的Android開源項目推薦,對于大家學習優秀開源項目,開拓思路非常有幫助。


    訪問地址:http://www.androideye.com/


    6、 幾個比較好的Android個人博客

     

     

    訪問地址:

    http://www.androidres.com/ 偏向資源分享

    http://www.williamhua.com/ 偏向開發分享

    http://www.moandroid.com/  偏向開發分享


    7、 官方被河蟹


    http://developer.android.com/   Android開發官網

    http://groups.google.com/group/android-developers  Android開發官網討論區


    還有一些排名不分先后隨時補充:

    http://stackoverflow.com/questions/tagged/android   Android問答系統

    http://www.javaworld.com.tw/jute/post/page?bid=26&sty=1&age=0&s=170   form 臺灣

    posted @ 2011-10-27 11:11 順其自然EVO| 編輯 收藏

    軟件測試理論之測試用例設計六把刀

    日常設計測試用例的時候,有許多經典的測試理論。比如邊界法、等價法,這些經常用到我們日常的工作中。當然也有許多的理論,比如正交分解法是使用起來非常費勁。往往轉化為實際的容易理解的測試語言就非常困難。

      測試的時候,我們也會碰到難堪的場景,那就是測試遺漏。

      我們來分析下,開發的過程。開發拿到需求后,就會開發相應的代碼,然后簡單的測試下功能。代碼之間有可能是互相調用的,代碼可能影響到的模塊,有些開發是知道的,有些是不知道的。如果是有關數據庫的操作,一個地方的改動有可能影響了多個模塊。所以問題的復雜性就體現在這里了。

      那么對于日常測試每個新功能,我們該怎么去構筑我們堅固的質量堡壘呢。

      根據開發過程的特點,總結了我們設計測試用例六把刀。

      一、功能

      關注頁面單個功能點驗證,充分考慮開發改動的每個點。這個是保證開發每個已知的修改點都能改對。

      二、關聯

      重點考慮修改點對其他模塊的影響,包括代碼的影響和操作數據引起的影響。

      比如新增加的功能增加了數據庫表的字段,必須關聯的驗證每個使用該表的該字段的模塊是否正常工作。難點在于需要分析出已知和未知的影響模塊,考慮的越多,往往遺漏的問題就越少。

      三、流程

      很多系統是有流程的,比如工作流系統。當修改了一個點的時候,我們必須考慮整個流程是否能夠正常運轉起來。

      四、升級

      我們大部分系統都是對已有的系統進行升級。對于升級前的數據,我們必須保證能夠正常工作。升級之前,需要模擬好各種情況。同時,也需要對升級的數據庫腳本進行充分的檢查。

      五、安全

      比如菜單功能權限等。

      六、性能

      有的時候需要對性能進行考慮,比如升級腳本的執行效率,功能點的響應時間,事務交易的時間。

      這六把刀現在已經應用到了我們日常設計測試計劃,測試用例工作中去了,成為了大家思考的一個入口點。后來大家發現有如下特點:

      1)實踐證明,該方法非常靈活。

      在不同的顆粒度設計測試用例都可以作為我們思考的一個切入點。比如站在測試計劃的角度,站在每個測試用例的角度都可以使用。

      2)平易近人

      道理非常簡單,非常容易理解,可操作性非常高。不再是只能在課堂上講,在實踐中用不上的理論了。

      3)功能和關聯使用頻率最高

      實踐證明這兩個理論幾乎可以用到每輪的測試中。同時為我們發現了不少的BUG。(以上言論僅代表作者的個人觀點,不代表51Testing觀點)

    posted @ 2011-10-26 15:34 順其自然EVO| 編輯 收藏

    如何提高測試用例的復用性

    問題描述:系統測試階段編寫的測試用例少則幾百,多則過萬,花費時間很多,而且有相當一部分用例只執行一兩次,復用性不佳。這里想討論一下如何提高用例的復用性,尤其是不同項目之間。

    精彩答案:

    會員 yolander :

      對于測試用例的復用,我想很多測試工程師都會非常有話說,系統變更頻繁,業務變化大,工作流 不統一等等,很多現實存在的問題,都阻礙了測試用例的復用發展進程,但是金融風暴下,越來越多的IT公司都在為了降低成本而做不屑的努力,如解決方案的產 品化、搭建軟件系統的可復用平臺、開發可復用的功能組件等等,毫無疑問的,這些都會為了我們能夠提高測試用例的復用性打下了基礎,拋開開發人員的因素不 談,而我們在這里也只針對如何從測試人員自身來提高測試用例的復用性來討論吧:

      這里需要首先區分一下,是手動測試用例還是自動測試用例?

      一、對于自動測試用例,首先就是要改變腳本的開發方法,如:

      1.數據驅動腳本:將測試數據從腳本中分立,保存在外部文件中,當數據發生變化時,就不再需要更改代碼,腳本的維護成本也比較低

      2.關鍵字驅動腳本:把腳本中的檢查點和執行操作的控制都維護在外部文件中,同樣的,數據也會與代碼分離開,可以說是結合了數據驅動的腳本開發方法,提高了測試腳本的共享和復用,缺點就是腳本開發需要更多的編程經驗和設計能力

      二、對于手動測試用例,那么我們就需要解決如下問題:

      1.測試用例管理工具:之前看到很多討論,都沒有提到這個,但我想說的是,工欲善其事,必先利其器,良好的測試用例管理工具,絕對會為測試用例的復用帶來簡單、方便和快捷,也比office文檔更適用于測試用例庫的建設和維護

       2.測試用例的設計策略:測試策略無非有兩種,基于功能和基于風險,之前也在論壇里提到過,還有筒子回貼說,測試策略就是基于功能的,這點我不敢茍同, 基于風險的測試用例,往往才是最能被復用的,對于任何同類型產品來說,無論如何進行功能升級,其失效模式也一定大同小異,比如:汽車的失效模式之一——剎 車失靈,這個不論是小汽車、三輪車、還是大卡車,都會存在同樣的問題,但是功能和性能上,三者之間的差異就比較大了,所以我才會提到我們需要在測試開始前 考慮這樣一種基于風險的測試策略

      3.業務抽象:對于測試來說,同樣需要跟研發的系統分析師有相當水平的測試設計師存在,他們的工作職責 是分析系統需求、抽象業務用例、設計測試方案來指導測試用例的進行,測試用例的復用也應該在這一環節被考慮,因為一條一條的去查找和審閱相同和相似的測試 用例,對于龐大的系統來說,由于海量測試用例的存在,無疑為大海撈針,但是從更高層次的業務用例中去尋找相似性,一定是更快捷的方法,但這也同時需要清晰 合理的、能夠與分解后業務用例對應的、可跟蹤可追溯的測試用例庫結構,基于此,我才把管理工具放在了第一位

      以上是我對于“如何提高測試用例復用性”的問題答案,其中不考慮“如何正確編寫測試用例?”“如何進行測試用例設計”等問題。

    posted @ 2011-10-26 14:41 順其自然EVO| 編輯 收藏

    僅列出標題
    共394頁: First 上一頁 375 376 377 378 379 380 381 382 383 下一頁 Last 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久亚洲最大成人网4438| 亚洲免费精彩视频在线观看| 亚洲熟妇无码一区二区三区 | 一级毛片免费在线| 四虎永久在线精品免费影视 | a毛片全部免费播放| 亚洲色大成网站www永久一区| 高清永久免费观看| 亚洲AV无码不卡在线播放| 免费无码黄网站在线看| 亚洲AV无码一区二区乱孑伦AS | 亚洲免费二区三区| 免费人成网站在线观看10分钟| 激情五月亚洲色图| 性做久久久久免费观看| 无码免费又爽又高潮喷水的视频 | 99免费在线视频| 亚洲国产高清人在线| 最近中文字幕mv免费高清视频8 | 在线观看亚洲精品国产| 男女作爱在线播放免费网站| 亚洲福利电影一区二区?| 插B内射18免费视频| 十八禁的黄污污免费网站| 亚洲AV区无码字幕中文色| 一色屋成人免费精品网站| MM1313亚洲国产精品| 亚洲午夜久久久久妓女影院| 91成人在线免费视频| 亚洲欧美日韩中文字幕一区二区三区| 免费大黄网站在线观看| a级毛片100部免费观看| 亚洲国产系列一区二区三区| 亚洲国产午夜福利在线播放| 一级毛片在线免费看| 亚洲中文字幕久久精品无码VA| 亚洲免费日韩无码系列| 99久久久国产精品免费蜜臀| 猫咪www免费人成网站| 亚洲电影国产一区| 免费国产a国产片高清|