<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/

    淺談手機軟件測試用例設計方法

     手機產品和用戶交互非常緊密,手機的軟件質量就顯得尤其重要。要使最終用戶對手機軟件感到滿意,必須要在手機軟件發布之前進行充分的測試。而不完全、不徹底是軟件測試的致命缺陷,但是我們又不可能進行窮舉測試,任何程序只能進行少量而有限的測試。為了節省時間和資源,提高測試效率,我們必須要從數量極大的可用測試數據中精心挑選出具有代表性或者特殊性的測試數據進行測試。測試用例在此情況下產生。
    測試用例是為特定的目的而設計的一組測試輸入、執行條件和預期的結果。簡單地說,測試用例就是設計一個場景,使軟件程序在這種場景下,必須能夠正常運行并且產生程序所設計的執行結果。

      Grenford J. Myers在《The Art of Software Testing》一書中提出:一個好的測試用例是指很可能找到迄今為止尚未發現的錯誤的測試,由此可見測試用例設計工作在 整個測試過程中的重要地位。測試用例設計的好壞直接影響到測試的效果。目前很多公司的測試用例都是依據需求或者規范規格,測試用例設計人員根據經驗來寫測 試用例,這種情況就會導致測試用例覆蓋面不全、測試用例規劃不合理,甚至存在測試用例冗余的情況。測試用例覆蓋面不全會導致出現漏測少測,將問題直接流向 用戶;測試用例規劃不合理、測試用例冗余會造成人力浪費,導致測試效率低下。因此不能只憑借一些主觀或直觀的想法來設計測試用例,應該以一些比較成熟的測 試用例設計方法為指導,再加上設計人員個人的經驗積累來設計測試用例。

      目前業界比較成熟的測試用例設計方法主要有:等價類劃分法,邊界值分析法,錯誤推測法,因果圖法,正交實驗設計法等。

      等價類劃分法

       等價類劃分法是測試用例設計中一種重要而常用的設計方法,它將不能窮舉的測試用例進行合理分類,從而保證設計出來的測試用例具有完整性和代表性。等價類 劃分是把所有可能的輸入數據,即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例。

      邊界值分析法

       邊界值分析法就是對輸入或輸出的邊界值進行測試設計的一種方法。通常邊界值分析法是作為對等價類劃分法的補充。長期的測試工作經驗告訴我們,大量的錯誤 發生在輸入或輸出范圍的邊界上,而不是發生在輸入輸出范圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。使用邊界值分析方法設計測試用 例,首先應確定邊界情況。應當選取正好等于,剛剛大于或剛剛小于邊界的值而不是中間值作為測試數據。

      錯誤推測法

      錯誤推測法是指在測試程序時,人們可以根據經驗或直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例的方法。錯誤推測方法的基本思想是列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據它們選擇測試用例。例如, 在單元測試時曾列出的許多在模塊中常見的錯誤、以前產品測試中曾經發現的錯誤、輸入數據和輸出數據為0的情況、輸入表格為空格或輸入表格只有一行等。這些都是容易發生錯誤的情況,可選擇這些情況下的例子作為測試用例。

      因果圖法

       因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。等價類劃分法和邊界值分析方法都 是著重考慮單個輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關系。這樣雖然各種輸入條件可能出錯的情況已經測試到了,但多個輸入條件 組合起來可能出錯的情況卻被忽視了。而如果在測試時必須考慮輸入條件的各種組合,則可能的組合數目將是天文數字,因此必須考慮采用一種適合于描述多種條件 的組合、相應產生多個動作的形式來進行測試用例的設計,這就需要利用因果圖來設計。

      正交試驗設計法

       正交試驗設計法。利用因果圖來設計測試用例時,作為輸入條件的原因與輸出結果之間的因果關系,往往因果關系非常龐大,以至于據此因果圖而得到的測試用例 數目多的驚人,給軟件測試帶來沉重的負擔。為了有效地、合理地減少測試的工時與費用,可利用正交試驗設計方法進行測試用例的設計。正交試驗設計方法依據 Galois理論, 它是根據正交性,按照 “均勻分散,齊整可比”的特點從大量的(試驗)數據(測試例)中挑選適量的,有代表性的點(例),從而合理地安排試驗(測試)的一種科學實驗設計方法。它 簡單易行,計算表格化,使用者能夠迅速掌握,是一種高效率、快速、經濟的試驗設計方法。

      以上這些方法各有優缺點,在設計過程中可以疊加使用,取長補短,使得設計出來的測試用例規劃合理,裁剪得當,既能保證覆蓋面,又能保證測試的效率,所以在測試用例的設計過程中得到了廣泛的應用。

      OPhone測試團隊在測試用例的設計階段充分運用這些方法,在測試用例的設計過程中極大的減少主觀因素的影響,并在保證測試用例完備性和有效性的前提下,對測試用例進行有效裁剪,減少無效測試用例和冗余,在很大程度上提高了測試效率,從根本上確保測試的質量。

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

    怎么寫好測試用例

     測試用例是測試執行的指導;是測試執行的實體,是測試方法、測試質量、測試覆蓋率的重要依據和表現形式;是團隊內部交流以及交叉測試的依據,便于測試工作的跟蹤管理,包括測試執行的進度跟蹤,測試質量的跟蹤,以及測試人員的工作量的跟蹤和考核;在測試執行工作開展前完成測試用例的編寫,可以避免測試工作開展的盲目性;測試用例是說服用戶相信產品質量的最佳依據,同時也可以提供給客戶作為項目驗收的依據。以上可以看出測試用例在整個測試工作中的地位和作用,以下編寫了關于如何寫好測試用例的一些個人建議:

      1、要參與需求評審,評審需求的過程實際也是熟悉業務需求的過程。只有對業務比較熟悉了,才能更好的,更充分的設計出高質量的測試用例。

      2、要多閱讀文檔,其中包括產品策劃書、規格說明書、需求文檔,接口文檔等,我們可以收集一切相關的文檔來幫助理解所要測試的產品需要完成的目標。

      3、盡量多參加項目組內的會議。比如需求討論、設計討論、計劃討論等會議,這樣在討論過程中也能加深對產品的理解。

      4、要善于溝通,多和客戶、開發、測試人員進行溝通。遇到不明確的問題、有疑問的需求,可以咨詢項目負責人或者客戶等。這樣才能提前解決需求理解偏差等。

      5、測試用例名稱,也叫測試用例標題,一定要寫得簡潔、明了,需要用概括的語言描述該用例的出發點和關注點,使得測試人員第一眼看到測試用例名稱就能夠明白測試用例的目的。用例名稱中一般要求不能存在假設性的語句,并且原則上每個用例的名稱不能重復。

      6、預置條件要明確,包括測試環境、測試數據、測試場景。因為許多BUG只有在特定的環境、特定的場景下才可以重現。沒有正確的前提條件,就無法進行后面的測試步驟或無法得到預期的結果。

      7、測試步驟描述要簡單、清晰,并且要清楚每一個步驟的描述,我們平常的鼠標和鍵盤的每一動作都代表一個操作步驟。比如:第一步,輸入用戶姓名;第二步,輸入登錄密碼;第三步,用戶點擊登錄。步驟寫的明確時就利于提高用例的可操作性。

      8、用例的預期結果要完整而且清晰,并且要將各個輸出的結果寫出來,包括:返回值的內容、數據庫相關字段的記錄、界面的響應結果、輸出結果的規則符合度、日志的檢查和對其它業務影響的檢查。

      9、測試用例級別要劃分清楚,這樣在測試執行時有主次之分。

      10、測試用例的劃分也要單一,一個測試用例只檢查功能點的一種情況。一個用例檢查的情況太多,會導致用例的目的不明確。而且這樣組織用例,有利于需求覆蓋率的統計。一個功能點我們測試了哪些情況,以及哪些功能點我們在重點測試,一目了然。

      11、評審用例很關鍵,因為經過測試用例的評審可以發現:用例設計的結構安排是否清晰、合理;是否覆蓋所有的需求功能點;是否存在冗余的用例;是否具有很好的可執行性;是否存在對需求理解上的差異等。評審需要項目經理、需求分析人員、架構設計人員、開發人員和測試人員都參與,也需要客戶方的開發人員和測試人員。

      12、召開測試用例評審會議,在會議上大家可以提問互答,對模糊不清的地方可以進行討論。這樣可以站在不同的角度,站在很多人的思維和思考方式下設計用例。

      13、站在用戶的角度來設計用例,以用戶的使用邏輯及操作習慣為出發點,從用戶實際可能的操作場景考慮,一定要脫離系統提供功能。

      14、測試用例需要不斷更新和維護,不要認為測試用例的設計是一個階段,測試用例的設計也需要迭代,在軟件開發的不同的階段都要回來重新審視和完善測試用例。并且需要在測試執行時利用發散思維不斷的構造和完善測試用例。

      總的來說,寫出好的測試用例需要我們不斷的積累和完善,需要我們不斷的在工作中去總結。寫出好的測試用例沒有簡單的公式或規定可以遵循。即使是多年以來在測試方面感興趣的人也很難做到這一點。

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

    安裝筆記本win7系統

    http://acerbbs.zol.com.cn/38/218_378001.html

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

    java連接sqlserver

    java連接sqlserver  

    2009-12-27 22:42:58|  分類: Java淺談 |  標簽: |字號 訂閱

    用Java連接SQL Server2000數據庫有多種方法,下面介紹其中最常用的兩種(通過JDBC驅動連接數據庫)。

    1. 通過Microsoft的JDBC驅動連接。此JDBC驅動共有三個文件,分別是mssqlserver.jar、msutil.jar和 msbase.jar,可以到微軟的網站去下載(://www.microsoft.com/downloads /details.aspx?FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A& displaylang=en),如果你下載的是setup.exe,還需要安裝它,安裝后會生成上面的三個jar文件。此JDBC驅動實現了 JDBC 2.0。
    驅動程序名稱:com.microsoft.jdbc.sqlserver.SQLServerDriver(即下面的classforname)
    數據庫連接URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname(即下面的url)

    2. 通過JTDS JDBC Driver連接SQL Server數據庫,此驅動的文件名為jtds-1.2.jar,下載路徑為(http://sourceforge.net/project/showfiles.php?group_id=33291),此驅動支持Microsoft SQL Server (6.5, 7.0, 2000 和2005) 和Sybase,并且實現了JDBC3.0,是免費的。
    驅動程序名稱:net.sourceforge.jtds.jdbc.Driver(即下面的classforname)
    數據庫連接URL:jdbc:jtds:sqlserver://localhost:1433/dbname(即下面的url)

    JDBC連接SQL Server數據庫的Bean代碼網上大把的有,下面摘錄其中的一部分:(請將localhost和1433改成你實際應用中的SQL Server服務器地址和端口號,dbname改成你實際的數據庫名)

    import java.sql.*;
    public class DatabaseConn {

     private Connection conn;
     private Statement stmt;
     private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname";
     private String classforname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
     private String uid = "sa";
     private String pwd = "password";
     
     public DatabaseConn(){}
     
     
     public Connection getConnection()
     {
      try
      {
       Class.forName(classforname);
       if (conn == null || conn.isClosed())
        conn = DriverManager.getConnection( url, uid, pwd);
      }
      catch (ClassNotFoundException ex)
     
      catch (SQLException ex)
     
      return conn; 
     }

    }

    當然,在做上述工作之前,你得先檢查自己的SQL Server設置是否有問題,步驟如下:

    首先打開“命令行窗口”,也就是MS-Dos窗口,輸入
    telnet localhost 1433  (當然,用SQL Server所在的服務器地址替代localhost,端口改為SQL Server的實際端口,默認是1433)

    如果成功了,表明你的SQL Server是可以連上的,如果沒成功(一般是對于Win2003或者WinXP SP2),請進入控制面板,打開“管理工具”中的“服務”,啟動“SQLSERVERAGENT”服務(當然,你也可以打上SQL Server的SP3補丁包),再繼續上面的操作,應該會成功的。

    其次,檢查你的用戶名和密碼是否能登陸SQL Server服務器,當然,最直接的辦法就是打開SQL Server的“查詢分析器”,輸入用戶名和密碼,點擊確定

    如果成功了,表明你的SQL Server登陸設置沒問題,如果失敗了,請打開SQL Server的“企業管理器”,在你注冊的SQL Server服務器上(也就是左邊的“SQL Server組”下面的那東東)也就是點擊右鍵,選擇“屬性”,在“SQL Server (屬性) 配置”對話框中選擇“安全性”,將身份驗證設為“SQL Server和Windows(S)”,再用查詢分析器測試一次,如果還連接不上,就去檢查你的用戶名和密碼是否有誤。重復測試,直至成功。

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

    測試用例編寫規范

      以前在這里看到一篇文章說,要積累各個常用模塊的測試點,然后到需要測試的時候就根據這些測試點設計測試用例,我覺得這是一個好方法,就決定總結一下。我的實際經驗不多,根據我在論壇中學到的零散的東西和自己的想象,總結出以下幾點,歡迎各位繼續補充。

      1、登陸
      2、添加
      3、查詢
      4、刪除

      1、登陸
      ① 用戶名和密碼都符合要求(格式上的要求)
      ② 用戶名和密碼都不符合要求(格式上的要求)
      ③ 用戶名符合要求,密碼不符合要求(格式上的要求)
      ④ 密碼符合要求,用戶名不符合要求(格式上的要求)
      ⑤ 用戶名或密碼為空
      ⑥ 數據庫中不存在的用戶名,不存在的密碼
      ⑦ 數據庫中存在的用戶名,錯誤的密碼
      ⑧ 數據庫中不存在的用戶名,存在的密碼
      ⑨ 輸入的數據前存在空格
      ⑩ 輸入正確的用戶名密碼以后按[enter]是否能登陸

      2、添加
      ① 要添加的數據項均合理,檢查數據庫中是否添加了相應的數據
      ② 留出一個必填數據為空
      ③ 按照邊界值等價類設計測試用例的原則設計其他輸入項的測試用例
      ④ 不符合要求的地方要有錯誤提示
      ⑤ 是否支持table鍵
      ⑥ 按enter是否能保存
      ⑦ 若提示不能保存,也要察看數據庫里是否多了一條數據

      3、刪除
      ① 刪除一個數據庫中存在的數據,然后查看數據庫中是否刪除
      ② 刪除一個數據庫中并不存在的數據,看書否有錯誤提示,并且數據庫中沒有數據被刪除
      ③ 輸入一個格式錯誤的數據,看是否有錯誤提示,并且數據庫中沒有數據被刪除。
      ④ 輸入的正確數據前加空格,看是否能正確刪除數據
      ⑤ 什么也不輸入
      ⑥ 是否指出table鍵
      ⑦ 是否支持enter鍵

      4、查詢
      精確查詢:
      ① 輸入的查詢條件為數據庫中存在的數據,看是否能正確地查出相應得數據
      ② 輸入正確的查詢條件以前加上空格,看是否能正確地查出相應的數據
      ③ 輸入格式或范圍不符合要求的數據,看是否有錯誤提示
      ④ 輸入數據庫中不存在的數據
      ⑤ 不輸入任何數據
      ⑥ 是否支持table鍵
      ⑦ 是否支持enter鍵
      模糊查詢:
      在精確查詢的基礎上加上以下一點
      ① 輸入一些字符,看是否能查出數據庫中所有的相關信息

      設計功能和界面測試用例

      1.1 文本框、按鈕等控件測試

      1.1.1 文本框的測試
      如何對文本框進行測試
      a,輸入正常的字母或數字。
      b,輸入已存在的文件的名稱;
      c,輸入超長字符。例如在“名稱”框中輸入超過允許邊界個數的字符,假設最多255個字符,嘗試輸入 256個字符,檢查程序能否正確處理;
      d,輸入默認值,空白,空格;
      e,若只允許輸入字母,嘗試輸入數字;反之;嘗試輸入字母;
      f,利用復制,粘貼等操作強制輸入程序不允許的輸入數據;
      g,輸入特殊字符集,例如,NUL及\n等;
      h,輸入超過文本框長度的字符或文本,檢查所輸入的內容是否正常顯示;
      i,輸入不符合格式的數據,檢查程序是否正常校驗,如,程序要求輸入年月日格式為yy/mm/dd,實際輸入yyyy/mm/dd,程序應該給出錯誤提示

     

      在測試過程中所用到的測試方法:
      1,輸入非法數據;
      2,輸入默認值;
      3,輸入特殊字符集;
      4,輸入使緩沖區溢出的數據;
      5,輸入相同的文件名;

      命令按鈕控件的測試
      測試方法:
      a,點擊按鈕正確響應操作。如,單擊確定,正確執行操作;單擊取消,退出窗口;
      b,對非法的輸入或操作給出足夠的提示說明,如,輸入月工作天數為32時,單擊”確定“后系統應提示:天數不能大于31;
      c,對可能造成數據無法恢復的操作必須給出確認信息,給用戶放棄選擇的機會;

      單選按鈕控件的測試
      測試方法:
      a,一組單選按鈕不能同時選中,只能選中一個。
      b,逐一執行每個單選按鈕的功能。分別選擇了“男”“女”后,保存到數據庫的數據應該相應的分別為“男”“女”;
      c,一組執行同一功能的單選按鈕在初始狀態時必須有一個被默認選中,不能同時為空;

      控件文本框的測試
      測試方法:
      a,直接輸入數字或用上下箭頭控制,如,在“數目”中直接輸入10,或者單擊向上的箭頭,使數目變為10;
      b,利用上下箭頭控制數字的自動循環,如,當最多數字為253時,單擊向上箭頭,數目自動變為1;反之亦適用;
      c,直接輸入超邊界值,系統應該提示重新輸入;
      d,輸入默認值,空白。如,“插入”數目為默認值,點擊“確定”;或,刪除默認值,使內容為空,單擊“確定”進行測試;
      e,輸入字符。此時系統應提示輸入有誤。

      組合列表框的測試
      測試方法:
      a,條目內容正確,其詳細條目內容可以根據需求說明確定;
      b,逐一執行列表框中每個條目的功能;
      c,檢查能否向組合列表框輸入數據;

      復選框的測試
      測試方法:
      a,多個復選框可以被同時選中;
      b,多個復選框可以被部分選中;
      c,多個復選框可以都不被選中;
      d,逐一執行每個復選框的功能;

      列表框控件的測試
      測試方法:
      a,條目內容正確;同組合列表框類似,根據需求說明書確定列表的各項內容正確,沒有丟失或錯誤;
      b,列表框的內容較多時要使用滾動條;
      c,列表框允許多選時,要分別檢查shift選中條目,按ctrl選中條目和直接用鼠標選中多項條目的情況;

      滾動條控件的測試
      要注意一下幾點:
      a,滾動條的長度根據顯示信息的長度或寬度及時變換,這樣有利于用戶了解顯示信息的位置和百分比,如,word中瀏覽100頁文檔,瀏覽到50頁時,滾動條位置應處于中間;
      b,拖動滾動條,檢查屏幕刷新情況,并查看是否有亂碼;
      c,單擊滾動條;
      d,用滾輪控制滾動條;
      e,滾動條的上下按鈕。

      各種控件在窗體中混和使用時的測試
      a,控件間的相互作用;
      b,tab鍵的順序,一般是從上到下,從左到右;
      c,熱鍵的使用,逐一測試;
      d,enter鍵和esc鍵的使用;

      在測試中,應遵循由簡入繁的原則,先進行單個控件功能的測試,確保實現無誤后,再進行多個控件的的功能組合的測試。

      ps:密碼輸入框測試時要特別注意進行字母大寫輸入的測試。

      查找替換操作

      案例演示:打開word中的"替換"對話框

      測試本功能有通過測試和失敗測試兩種情況

      通過測試:
      1,輸入內容直接查找,或查找全部
      2,在組合框中尋找已經查找過的內容,再次查找并確認文檔的內容正確,如,已經查找過"測試用例",再次進入不用重新輸入查找內容,直接在文檔中搜尋就可以。

      失敗測試:
      1,輸入過長或過短的查詢字符串.如,假設查詢的字符串長度為1到255,那么輸入0,1,2,256,255和254進行測試;
      2,輸入特殊字符集,如,在word中.^g代表圖片,^代表分欄符,可以輸入這類特殊字符測試;

      替換測試大體相同。

      關于編輯操作窗口的功能測試的用例:
      1,關閉查找替換窗口.不執行任何操作,直接退出;
      2,附件和選項測試.假如,設定"精確搜尋","向后"搜索等附件選項等等來測試;
      3,控件間的相互作用.如,搜尋內容為空時,按鈕"搜尋全部","搜尋","全部替換","替換"都為灰色。
      4,熱鍵, Tab鍵.回車鍵的使用。

      插入操作

      1,插入文件
      測試的情況
      a,插入文件;
      b,插入圖像;
      c,在文檔中插入文檔本身;
      d,移除插入的源文件;
      e,更換插入的源文件的內容;

      2,鏈接文件
      測試方法:
      a,插入鏈接文件;
      b,在文檔中鏈接文檔本身;
      c,移除插入的源文件;
      d,更換插入的源文件的內容。

      3,插入對象
      要測試的內容
      a,插入程序允許的對象,如,在word中插入excel工作表;
      b,修改所插入對象的內容.插入的對象仍能正確顯示;
      c,卸載生成插入對象的程序,如,在word中插入excel工作表后卸載excel,工作表仍正常使用。

      編輯操作

      編輯操作包括剪切,復制,粘貼操作。

      測試剪切操作的方法
      a,對文本,文本框,圖文框進行剪切;
      b,剪切圖像
      c,文本圖像混合剪切

      復制操作方法與剪切類似。

      測試時,主要是對粘貼操作的測試,方法是:
      a,粘貼剪切的文本,文本框及圖文框;
      b,粘貼所剪切的圖像;
      c,剪切后,在不同的程序中粘貼;
      d,多次粘貼同一內容,如,剪切后,在程序中連續粘貼3次;
      e,利用粘貼操作強制輸入程序所不允許輸入的數據。

      界面測試用例的設計方法

      1,窗體
      測試窗體的方法:
      a,窗體大小,大小要合適,控件布局合理;
      b,移動窗體.快速或慢速移動窗體,背景及窗體本身刷新必須正確;
      c,縮放窗體,窗體上的控件應隨窗體的大小變化而變化;
      d,顯示分辨率.必須在不同的分辨率的情況下測試程序的顯示是否正常;

      進行測試時還要注意狀態欄是否顯示正確;工具欄的圖標執行操作是否有效,是否與菜單懶中圖標顯示一致;錯誤信息內容是否正確,無錯別字,且明確等等;

      2,控件
      測試方法:
      a,窗體或控件的字體和大小要一致;
      b,注意全角,半角混合
      c,無中英文混合

      菜單
      進行測試時要注意
      a,選擇菜單是否可以正常工作,并與實際執行內容一致;
      b,是否有錯別字:
      c,快捷鍵是否重復;
      d,熱鍵是否重復;
      e,快捷鍵與熱鍵操作是否有效
      f,是否存在中英文混合
      g,菜單要與語境相關,如,不同權限的用戶登陸一個應用程序,不同級別的用戶可以看到不同級別的菜單并使用不同級別的功能;
      h,鼠標右鍵快捷菜單

      特殊屬性
      1,安裝界面應有公司介紹或產品介紹,有公司的圖標
      2,主界面及大多數界面最好有公司圖標
      3,選擇"幫助"->"關于"命令,應 看見相關版權和產品信息

      實際中經常用到的幾個用例

      login
      1、鏈接地址是否正確。
      2、產生輸入/輸出錯誤時,系統是否進行檢測并處理.
      3、密碼輸入框是否按掩碼的方式顯示。

      menu:
      1、各模塊鏈接地址是否正確。
      2、鼠標無規則點擊時是否會產生無法預料的結果。

      browse:
      1、瀏覽信息是否存在文字書寫錯誤和語法錯誤。
      2、瀏覽信息是否和數據庫中對應的字段及信息相一致。
      3、瀏覽頁面中的鏈接按鈕是否可以正確鏈接并顯示。
      4、其他功能按鈕按下后,數據是否按既定規約處理。

      add,modify:
      1、產生輸入/輸出錯誤時,系統是否進行檢測并處理。
      2、列表框是否能夠進行選擇。
      3、單選組內是否有且只有一個單選鈕可選。
      4、多選組內是否能夠進行多數據項選擇。
      5、多項列表框是否能夠進行多數據項選擇。
      6、控件是否存在默認輸入值,若存在,默認值是否得到顯示和提交。
      7、Cancel之類的按鈕按下后,控件中的數據是否清空復原或按既定規約處理。
      8、Submit之類的按鈕按下后,數據是否得到提交或按既定規約處理。
      9、其他頁面按鈕按下后,數據是否按既定規約處理。
      10、異常信息表述是否正確。

      search:
      1、輸入信息中是否存在和代碼中的字符產生沖突的字符,系統是否進行檢測并處理。
      2、異常信息表述是否正確。
      3、查詢的結果是否正確。
      4、列表框是否能夠進行選擇。
      5、單選組內是否有且只有一個單選鈕可選。
      6、多選組內是否能夠進行多數據項選擇。
      7、多項列表框是否能夠進行多數據項選擇。
      8、Submit之類的按鈕按下后,數據是否得到提交或按既定規約處理。

      Statistic:
      1、產生的文件和數據表的計算結果是否正確。
      2、圖表結果數據顯示是否正確。
      3、瀏覽頁面中的鏈接按鈕是否可以正確鏈接并顯示。
      4、其他功能按鈕按下后,數據是否按既定規約處理。
      5、產生輸入/輸出錯誤時,系統是否進行檢測并處理。
      6、列表框是否能夠進行選擇。
      7、單選組內是否有且只有一個單選鈕可選。
      8、多選組內是否能夠進行多數據項選擇。
      9、多項列表框是否能夠進行多數據項選擇。





     

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

    以測試用例為核心的軟件測試

    目前國內出版的軟件測試方面的書,深入講解編寫軟件測試用例方法的很少,而且大多數方法都是很理論的描述。另外,最大的問題是把測試用例的確定輸入數據的方法說成是測試用例的設計方法。

      例如,關于測試用例設計方法,最常用的說法是:等價類,邊界值,因果圖等。實際上這些只是軟件測試用例設計中如何確定測試輸入數據,對于對話框中的數據控件輸入值有效。如果把確定輸入數據的方法,描述成測試用例的方法,那么,這樣設計出來的測使用例就很有局限性。

      實際上,編寫測試用例包括兩個方面:第一是編寫測試用例輸入數據,第二是編寫測試用例實體(即包含測試目標,測試步驟,測試期望結果)。

      為此,有必要把編寫測試用例的工作分解成兩個階段:第一階段稱為“測試用例設計”,第二階段稱為“測試用例實現”。第一階段的任務是如何確定測試用例的組織結構(模塊化、階段化),模塊化即把被測軟件分解成各個模塊,每個模塊組織成測試用例組。階段化即按照軟件開發的不同階段分別編寫軟件測試用例,例如單元測試用例、系統測試用例、驗收測試用例等。

      編寫軟件測試用例的過程如圖所示。

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

    用例設計心得---新人之路系列

    目前很多新加入測試行業的朋友在剛接觸測試的時候十分茫然, 經理的三言兩語就安排了我們的工作性 質“**啊,你去**這個項目組幫著測試下”,“**,
    你來測下這個系統,有問題就和我說,”。這種情況很多很常見,對于一個新人來講,怎么測呢?測試這個行業我一直覺得是易學難精,某種角度來講,測試比開發還要難,比開發還需要動腦子,相信大多數人都看過玄幻小說,在這里我做一個比喻,我們把BUG和開發任務比作對手,整個團隊比作自己,那么開發人員就是殺敵的利劍,開發人員所掌握的技術,就是這把劍的長度和鋒銳度,那么我們測試人員呢?測試人員則擔任 了眼睛的任務,要通過我們來尋找對手的破綻,從而一招勝敵,這里除了找出缺陷同時還有一個工作,給缺陷定位,我們測試員掌握的技術,就代表了大腦運作的速度,代表了眼神的犀利,很多新人朋友知道自己要去找BUG但是常常忘記了給BUG進行一個定位,其實定位是很重要的,就好比你發現對手的破綻在兩眼之間,你卻告訴你手中的利劍,對手的頭上有破綻,試問,假若你直接將BUG定位在兩眼之間,哪個更有效率呢?

      再來談一下測試人員應該掌握的技術,就我個人來看,測試最核心的技術還是測試用例的設計,不論是純手工測試,自動化測試,黑盒測試白盒測試,功能測試還是性能測試都離不開測試用例的設計,至于更牛的測試專家他們所掌握的諸如開發測試工具這樣的技術,仔細想想,也只是為了更方便的設計和實現測試用例。

       只要接觸過測試的人不難發現,其實用例不難,大家或多或少都接觸過用例,可真正明白用例的用途的還是在少數,以下我將用例的設計分為4個階段當然只是給 新人朋友的一點建議,與我以前發過得一片新人朋友看的博文是同樣效果的,只是給新人朋友指引一條測試的道路,所謂條條道路通羅馬,也希望更多的朋友能夠分 享自己的一些心得和體會。

      第一個階段,茫然

      在這個階段的朋友多半是第一次接觸到測試用例,雖然用例的格式都有,但總是自己設計不出來或者設計出來的用例效果很差,其實用例的格式并不重要,有時候可以根據你自己的實際項目,所采用的設計方法,思維模式而改變,如果你感到無處下手,那么你應該去看一看有哪些用例的設計方法,同時仔細的分析下你現在的狀態和手上的系統比較適合什么方法。

      第二階段,用例過多,覆蓋面積雖然達到但是工作量太大

       這個階段的朋友,你們已經掌握了1種或2種基礎的用例方法,比較常見的諸如場景法,等價類劃分法,邊界值法,你會發現,像是場景法一條比較復雜的業務流 程能夠分出10多20條備選流,而場景法和等價類結合確實能夠實現一個較為客觀的覆蓋面積,但是你會發現要達到這個效果所需要用的測試用例實在太多,這就照成了工作量增大,無意義的用例和重復的用例也會直接造成你的工作有百分之20甚至更多是無效的,這個時候你就應該嘗試去了解一下高級的用例設計方法了,比如因果圖判斷。

      第三階段,用例大瘦身,覆蓋面積依然可觀

       這個階段,其實你在用例的方向已經頗為厲害了,至少掌握了三種用例設計方法的你,已經能在短時間內對一個一般的系統做出一個較為完整的測試用例了,通過 2中基礎的用例設計方法,將整個系統所有功能點都包括起來,再通過因果圖判斷,將重復的測試功能點排除掉,可以說你現在設計的測試用例已經是優秀的用例 了,完全能夠達到使用盡可能少得用例覆蓋盡可能多的面積,那么這個時候你應該繼續提高自己的能力,可以嘗試著將用例進行復合,進行復合用例的設計了,難度 頗高哦

      第四階段,這個階段實際上你已經是達人了,我也就不在達人面前獻丑了,只是借助這個階段,提 醒一下新人朋友,不要認為自己的技術已經很好了,要知道第一階段巔峰的人是比不上第二階段初級的,你覺得自己很優秀了,只是因為你不知道在你之上還有很多 層面是你沒接觸到得,千萬不要止步不前。其實測試這個行業,要做好很不容易,常??匆姾芏嗳俗隽?,5年還是覺得自己還是什么都不知道一樣,從這也能看出 測試的難度,國內的測試,還不夠成熟,最直接的體現就是測試的易學,還有和開發工資的對比,為什么測試易學而我卻說測試很難呢,因為所謂的易學的測試,甚 至不需要去學,有些公司直接就是讓你東點一下西點一下,看看報不報錯,這不算測試,至少在我看來真的不算入行, 測試難學,難就難在測試是純思維上得職業,我們不需要一直敲代碼,不需要一直去設計系統,但是我們必須要在思維了模擬很多場景,模擬很多操作,我們的工作 實際上核心部分都是在腦子里進行的,是不能通過肢體來表達的,你在思考新增人員的操作時,如果你直接就操作了,那么抱歉,你還不合格,如果想到什么就做什 么,你的測試效果會很差,因為這一個節點可能的情況你還沒考慮清楚就充充開始操作,照成結果不外胡兩點,一,大面積遺漏,二,工作量增加,有經驗的測試 員,會在腦子里將所有可能的情況都考慮到最后形成文檔,在依照文檔來進行測試,這份文檔也就是測試用例,能夠保證覆蓋面就又不讓我們過多的重復操作,更能 讓開發或經理清楚的了解到這個系統哪些地方已經測了哪些地方已經遺忘了,我們從最初做測試的時候應該就會了解到,不存在百分百測試,也不存在2個人設計的 用例百分百相同,這個時候 用例文檔的好處就體現出來了,即使開發人員在看了你的文檔后也有可能提出一些你沒有考慮到的地方,畢竟這些系統的核心還是開發人員自己開發出來的,同時開 發也是人,開發考慮的角度也代表著一部分用戶的角度。即使你所在的項目組,公司不重視用例,但是如果你想在測試這個行業有所成就,那你就要注意這些地方, 我在上一篇博文里也提到過,公司不給你安排,并不代表不允許你做,不要等著公司給你安排任務,學到的技術學到的經驗都是你自己的,能力提高的也是你自己, 相應的,能力提高了,工作量減少是必然的,同樣的一個項目,別人要用1周測完,而你只需要1天,多余的4天,就是你自己努力的獎勵。

      期待同行參與討論,我始終相信,分享自己的心得能讓自己收獲更多,一人一年的工作經驗,雖然不能讓你直接擁有5年10年的這樣累加,但是也能讓你的一年工作經驗比別人的一年經驗充實5倍,10倍。

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

    如何管理自己的測試團隊

      最近,我也在網上看了一些貼子有關測試團隊的管理問題,覺得在測試管理方面確實是個難題,這也可能測試團隊確實不太好管理的原因吧,但我想只要自己去思考、去探索,總會找到適合自己團隊管理的理念和模式吧。

      我自己總結了一下,也結合自己的一些管理經驗跟大家分享一下吧,歡迎大家把自己的提意見并把自己的經驗也分享出來吧, 也算是大家相互學習的一個機會吧!

      1、作為一個團隊的管理者,最起碼的是要自己懂自己產品或項目的業務。這一點很重要,第一這樣有助自己分配工作給團隊中的成員,要不然自己都搞不清楚業務難度和業量就分配工作給team member是件很讓人難以接受的事情。第二,有助于自己和其它team或department的合作和溝通,不至于其它team提出的問題,自己還不清楚就答應或否定要做。

      2、作為一個管理者,要懂更多的技術,至少是了解更多的測試技術,要了解其工作原理,這樣有助于自己幫助團隊成員research或者說技術的應用到實際的測試工作中來。也可以提高自己在測試團隊中的威性,自己懂得多能讓更多的同學認可和信服。

      3、平衡按特長分配工作任務給team member。對于senior的測試員我們分配更多的任務是design test case的,junior的測試員可能更多的是分配執行測試。分配工作也是看看哪位測試員的特長,有些測試員對GUI比較敏感,有些測試員對Logic比 較關注,有些測試員對整個系統的流程更清楚,這些都是作為測試管理者分配任務的一個基線,這樣可以更好地帶好一個團隊,提高軟件測試的水平和質量。

      4、做好測試風險的管理。一 般來說我們要盡可能降低測試風險,也是測試管理中一個很重要的課題,我也只能講講自己的一些片面的觀點。測試風險從軟件需求分析開始就存在,我們要更好地 在前期發現這些潛伏在需求或開發設計中的風險:1)如需求提出無法達到的功能,或有違背現有功能的需求我們在需求分析時一定要提出來;2)軟件需求設計中 的有些無法測試的功能或要點,也要在測試需求分析中提出來;3)開發設計文檔的靜態測試,這一點我覺得很重要,很多小公司基本上會忽略這一點,靜態測試 (主要是指文檔方面的測試),對開發設計文檔或原型設計文檔的Review或測試有助于測試風險的降低,也能發現一些與需求沖突的設計,爭取錯誤在前期發 現。同時我們測試用例在 測試方面也可以更好地與其配合,設計更好的的測試用例去測試,無論是從GUI,還是開發測試技術上測試都是有益的;4.對測試用例的Review或靜態測 試,這樣有利于優化測試用例,補充更多有用的測試用例和除去一些無用或重復的用例,這樣能提高測試執行效率。5.監測測試執行及bug管 理,Bug算是測試員的成果之一,我們作為管理者一定要管理好,同時也能讓我們清楚看到測試風險的存在,可以通過現有的Bug趨勢判斷系統中未來還有多少 bug存在,可以通過bug的類型分析fix bug還要多長時間還可能會產生多少bug,這樣我們就能清楚知道當前測試人員和開發人員什么時候哪些人要開始加班了或要加派人手了...,我們還要關注 測試執行進度,測試執行初期bug趨勢圖,哪些類型的bug多些,此時會不會影響到測試中期,Logic的bug多的話一定會影響到測試中期的質量和測試 效率的,此時要提醒開發團隊要注意logic類型bug的fix,不能把這類bug拖到后期fix,這樣會影響質量。

      當然軟件質量風險還有其它的因素影響,如項目或產品時間評估,我想這部分大多是硬性的,我們可以協商測試的項目時間;還有人員請假或離職,以及測試組人員的變動,還有測試人員情緒波動都會影響到測試質量風險的。

      5、合理評估測或衡量測試人員的績效和水平。相 信這一點也是很難做到的一點,做得不好,不僅無法讓整個團隊好好工作,內部矛盾多,造成員工離職都會有,是讓一個團隊最頭痛的事情,那么我們如何合理評估 測試人員的工作呢?首先我覺得公開硬性績效標準,讓大家都明白一個標準,也是團隊共同發展的目的,這樣做到公正,不會有私心。我覺得我們可以從幾個方面去 衡量:a)工作態度及積極性 b)工作量和工作質量的一個線性比較,工作量大的一定是最辛苦的,但要與其工作質量作參考的,當然我們不能把一個員工發現的Bug量作為其工作成績好壞的 標準,我記得以前一位測試經理就是這么做的,這是很要命和害了整個公司的做法,因為測試的對象不同或開發人員水平不一樣及項目大小和難易程度,都是影響 bug數量是不一樣的因素,我覺得一個比較好的標準是從中多方面來看的,測試執行過程和測試用例兩方面,執行測試過程中bug趨勢圖和bug類型分布圖及 軟件交付后bug反饋率,測試員應在測試執行過程中發現各階段中應當發現的bug,不能說很明顯的bug而在最后才發現,這些都可以看出測試員的水平;另 外測試用例的設計也是一個很重要的標準,很好的測試用例,會盡可能早地發現bug,當然測試用例的設計可操作性、詳細度等都是衡量的標準。

      6、凝聚團隊和激發團隊成員的潛力。這 一點,雖說是有點大話,但真的也是很重要的,我覺得很重要的一點就是讓團隊中的每一個人都在成長,安排合理的工作角色很重要,讓他們能更好的看到自己的成 長空間,如讓比較junior的測試員設計比較簡單的測試項目或需求的測試用例,這樣讓他也覺得自己也能設計測試用例;讓很Senior的測試員負責項 目,讓他覺得是項目中的主角而不是測試經理的身影,這樣讓團隊中的成員也會更有責任心;安排比較空閑的測試去Research更新的技術或測試技巧并通過 講課的形勢分享給所有的成員;在項目執行中,安排測試員在執行這程中去交換測試,這樣可以讓參與這個項目的成員對整個系統了解,這樣項目的每一部分都相當 于有backup人員,不擔心項目哪位請假而為難了,也培養了測試人員的業務知識。多多讓成員之間溝通,一起參加工作之外的活動。

      7、溝通成員,了解成員的心態。作為一個管理者要多多關心成員的心態問題和成長問題,為什么工作不太積極?為什么項目質量不高?....都可以通過私下聊天談心來了解,并幫助他們解決!

      好了,我也暫時只總結了這么幾條,希望以后的工作中能總結更好的經驗分享給大家,也希望大家來提提意見,分享一下自己的觀點吧??!謝謝各位了,我們一起成長中....

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

    LoadRunner性能測試基礎知識問答


      Q1:什么是負載測試?什么是性能測試?

      A1:負載測試是通過逐步增加系統負載,測試系統性能的變化,并最終確定在滿足性能指標的情況下,系統所能承受的最大負載量的測試,例如,訪問一個頁面的響應時間規定不超過1秒,負載測試就是測試在響應時間為1秒時,系統所能承受的最大并發訪問用戶的數量。

      性能測試:指在一定的約束條件下(指定的軟件、硬件、網絡環境等),確定系統所能承受的最大負載壓力。

      Q2.性能測試包含了哪些測試(至少舉出3種)

      A2:性能測試包含負載測試、壓力測試、大數據量測試、疲勞強度測試等。

      Q3.簡述性能測試的步驟

      Q4.簡述使用Loadrunner的步驟

      A4:制定性能測試計劃—>開發測試腳本—>設計測試場景—>執行測試場景—>監控測試場景—>分析測試結果

      Q5.什么時候可以開始執行性能測試?

      A5:功能測試通過;一般需要進行性能測試的系統,都是用戶量比較大、業務使用比較頻繁、比較重要的功能模塊。

      Q6.LoadRunner由哪些部件組成?

      A6:主要有三部分組成:

      Q7.你使用LoadRunner的哪個部件來錄制腳本?

      A7:使用Virtual User Generator錄制測試腳本

      Q8.LoadRunner的哪個部件可以模擬多用戶并發下回放腳本?

      A8:LoadRunner的Controller組件。

      Q9.什么是集合點?設置集合點有什么意義?Loadrunner中設置集合點的函數是哪個?

      A9:在性能測試過程中,需要模擬大量用戶在同一時刻,訪問系統并同時操作某一任務,可以通過配置集合點來實現,多個用戶同時進行某操作;

      集合點可以在服務器上創建密集的用戶負載,使LoadRunner能夠測試服務器在負載狀態下的性能。

      設置集合點函數:lr_rendezvous("Meeting");  // Meeting是集合點名稱

      Q10.什么是場景?場景的重要性有哪些?如何設置場景?

      A10:場景用于模擬用戶實際業務操作;

      LoadRunner中場景有手工場景和面向目標的場景。

      設置場景:選擇場景類型、設置運行時設置、模擬用戶數、加減壓方式、持續時間,配置負載生成器。

      Q11.請解釋一下如何錄制web腳本?

      A11:利用Virtual User Generator錄制測試腳本,錄制步驟:

      1、選擇合適的協議

      2、設置錄制選項

      3、開始錄制

      Q12.為什么要創建參數?如何創建參數?

      A12:LoadRunner在錄制腳本的時候,只是忠實的記錄了所有從客戶端 發送到服務器的數據,而在進行性能測試的時候,為了更接近真實的模擬現實應用,對于某些信息需要每次提交不同的數據,或者使用多個不同的值進行循環輸入。 這時,在LoadRunner中就可以進行參數化設置,以使用多個不同的值提交應用請求。

      【參數化】:使用指定數據源中的值來替換腳本錄制生成的語句中的參數。

      【參數化好處】

      ● 減少腳本的大小

      ● 提供使用不同的值執行腳本的能力,更加真實的模擬現實應用。

      【參數化步驟】

      ● 用參數替換Vuser腳本中的常量值

      ● 為參數設置屬性和數據源

      Q13.什么是關聯?請解釋一下自動關聯和手動關聯的不同。

      A13:【關聯的定義】簡單的說:就是把腳本中某些寫死(固定)的數據,轉變成動態的數據,或者說將前面語句的結果數據保存下來,然后在后面的語句提交請求時使用這些數據。

      【需要關聯的前提條件】:

      客戶端需要從服務器端返回數據中獲取部分數據,并將這些部分數據處理后作為自己下一次請求的一部分發出。

      【自動關聯與手工關聯的不同】:自動關聯是在腳本錄制過程中,VuGen會根據已經制定好的規則,自動找出需要關聯 的值或腳本錄制完成后,執行腳本一次,通過Correlation Studio自動找出需要關聯的數據,并建立關聯;而手動關聯是需要錄制兩份相同業務流程的腳本,輸入的數據要相同,利用WinDiff工具,找出兩份腳 本之間不同之處,也就是需要關聯的數據,再通過web_reg_save_param函數手動建立關聯,將腳本中用到關聯的數據參數化。

      Q14.你如何找出哪里需要關聯?請給一些你所在項目的實例。

      A14:

      1、錄制兩份相同業務流程的腳本,輸入的數據要相同

      2、利用WinDiff工具,找出兩份腳本之間不同之處,也就是需要關聯的數據

      3、通過web_reg_save_param函數手動建立關聯,將腳本中用到關聯的數據參數化。

      示例:

      通過錄制兩份腳本,進行對比,可知jsessionid、sap-ext-sid、sap-wd-cltwndid、sap-wd-tstamp需要進行關聯。

      Q15.你在哪里設置自動關聯選項?

      A15:錄制選項中進行設置,如下圖所示:

      Q16.哪個函數是用來截取虛擬用戶腳本中的動態值?(手工關聯)

      A16:Web_reg_save_param函數主要根據需要做關聯的動態數據前面和后面的固定字符串來識別、提取動態數據,所以在做關聯時,需要找出動態數據的左、右邊界字符串。

      1.函數原型:

      int web_reg_save_param (const char *ParamName, <List of Attributes>, LAST);

      2.參數說明:

      ParamNam:存放動態數據的參數名稱

      List of Attributes:其它屬性,包含Notfound、LB、RB、RelFrameID、Search、ORD、SaveOffset、Convert、SaveLen。

      ● Notfound:指當找不到要找的動態數據時,怎么處理。

      ● Notfound=error,當找不到動態數據時,發出一個錯誤信息,為LoadRunner的默認值。

      ● Notfound=warning,當找不到動態數據時,不發出錯誤信息,只發出警告,腳本會繼續執行下去不會中斷。

      ● LB:動態數據的左邊界字符串,該參數為必選參數,并區分大小寫。

      ● RB:動態數據的右邊界字符串,該參數為必選參數,并區分大小寫。

      ● ORD:指提取第幾次出現的左邊界的數據,該參數為可選參數,默認值是1。假如值為All,則查找所有符合條件的數據并把這些數據存儲在數組中。

      ● Search:搜尋的范圍??梢允荋eaders(只搜尋Headers)、Body(只搜尋Body部分,不搜尋Headers)、 Noresources(只搜尋Body部分,不搜尋Header與Resource)或是All(搜尋全部范圍,此為默認值),該參數為可選參數。

      ● RelFrameID:相對于URL而言,欲搜尋的網頁的Frame,此屬性可以是All或是具體的數字,該參數為可選參數。

      ● SaveOffset:當找到符合的動態數據時,從第幾個字符開始才存儲到參數中,該參數為可選參數,此屬性值不可為負數,其默認值是0.

      ● Convert:可能的值有兩種:

      ● HTML_TO_URL:將HTML-encoded數據轉成URL-encoded數據格式。

      ● HTML_TO_TEXT:將HTML-encoded數據轉成純文字數據格式。

      ● SaveLen:從Offset開始算起,到指定長度內的字符串,才儲存到參數中,該參數為可選參數,默認值為-1,表示儲存到結尾整個字符串。

      Q17.你在VUGen中何時選擇關閉日志?何時選擇標準和擴展日志?

      A17:在測試場景執行時,關閉日志,因為日志信息過多,也會影響性能測試結果;在調試測試腳本時,可以選擇標準或擴展日志,用于輸出調試信息。

      可以在運行時設置中,進行日志設置,如下圖所示:

      Q18.你如何調試LoadRunner腳本?

      A18: 通常采用以下方法調試LoadRunner測試腳本

      ● 斷點

      【方法】在腳本的任意一行上按右鍵菜單或F9增加斷點。

      ● 單步跟蹤

      【方法】通過菜單命令VUser—>Run Step by Step或F10,可以控制腳本以語句為單位執行。

      ● 日志輸出

      【方法】通過日志輸出函數lr_message、lr_log_message、lr_output_message輸出。

      ● 對話框輸出

      綜上,在實際測試工作中,基本上使用前三種方法,對話框輸出基本上沒用過。

      Q19、你在LR中如何編寫自定義函數?請給出一些你在以前進行的項目中編寫的函數。

      A19:在編寫用戶自定義函數之前,需要首先為函數創建外部庫(DLL)文件,將這些庫文件放在bin目錄下,一旦庫文件已經被添加并且將用戶自定義函數作為參數,函數應該為以下格式:__declspec (dllexport) char* (char*, char*)

      Q20.在運行設置下你能更改那些設置?

      A20:可以修改Run Logic、pacing、Log、Think Time等,見下圖;可以測試實際需要,修改相關選項。

      Q21.你在不同的環境下如何設置迭代?

      A21:在“運行時設置”中設置,如下圖所示:

      Q22.你如何在負載測試模式下執行功能測試?

      A22:在負載測試模式下,可以通過同時運行數個虛擬用戶,通過增加虛擬用戶數,確定服務器在多大的負載量下,仍然可以正常運行,我一般進行核心功能操作,驗證核心功能運行是否正常。

      Q23.什么是逐步遞增?你如何來設置?

      A23:虛擬用戶數隨著負載時間逐漸增加,可以幫助確定系統響應時間減慢的準確時間點。

      可以在“加壓”選項卡中進行設置:如下圖所示,將設置更改為:“每 30 秒啟動 2 個 Vuser”

      Q24.以線程方式運行的虛擬用戶有哪些優點?

      A24:以線程方式運行的虛擬用戶,在默認情況下,Controller為每50個用戶僅啟動一個mmdrv進程,而每個用戶都按線程方式來運行,這些線程用戶將共享父進程的內存,這就節省了大量內存空間,從而可以在一個負載生成器上運行更多的用戶。

      Q25.當你需要在出錯時停止執行腳本,你怎么做?

      A25:取消運行設置中的“Continue on error”復選框。

      或者使用lr_abort函數。

      Q26.響應時間和吞吐量之間的關系是什么?

      A26:當系統吞吐量未達到系統處理極限時,系統性能不會衰減,交易平均響應時間一般也不會遞增,當系統達到吞吐量極限時,客戶端交易會在請求隊列中排隊等待,等待的時間會記錄在響應時間中,故交易平均響應時間一般會遞增。

      Q27.說明一下如何在LR中配置系統計數器?

      A27:以windows資源監控為例,可右鍵點“添加度量”,輸入系統IP、選擇平臺類型,確定即可,詳細參加LR自帶操作手冊^_^。

      對于監控不同類型的操作系統,需要做一些準備工作,可參見監控操作系統資源部分。

    Q28.你如何識別性能瓶頸?

      A28:性能瓶頸分為:硬件瓶頸和軟件瓶頸

      性能瓶頸可以通過監控器來分析發現,這些監控器包括應用服務器監控、web服務器監控、數據庫服務器監控器和網絡監控器;它們可以幫助分析導致響應時間增加的原因;性能度量一般包括響應時間、吞吐量、每秒點擊率、網絡延遲等等。

      Q29.如果web服務器、數據庫以及網絡都正常,問題會出在哪里?

      A29:問題可能出在系統本身或應用服務器、或為應用編寫的代碼編寫中。

      Q30.如何發現web服務器的相關問題?

      A30:可以利用web資源監控器發現web服務器相關問題,在場景執行過程中,可以利用監控器分析web服務器吞吐量、每秒點擊率、每秒HTTP響應數、每秒頁面下載數,以及web服務器硬件資源使用情況等。

      Q31.如何發現數據庫的相關問題?

      A31:可以通過數據庫監控器和數據資源圖發現數據庫相關的問題,例如在運行Controller之前,可以指定需要度量的資源,之后可以根據監控的數據,分析數據庫相關的問題。

      Q32.解釋所有web錄制配置?

      A32:選擇錄制協議、設置錄制選項、選擇瀏覽器、選擇存放路徑、開始錄制。

      Q33.解釋一下覆蓋圖和關聯圖的區別?

      A33:覆蓋圖:合并兩個圖的內容,使用同一個X軸,合并圖左Y軸顯示當前圖的值,合并圖右Y軸顯示被合并圖的值。

      關聯圖:當前活動圖的Y軸變為合并圖的X軸,被合并圖的Y軸變成合并圖的Y軸。

      Q34.你如何設計負載?標準是什么?

      A34:負載測試計劃多少用戶數量、使用什么類型的機器、以及在什么環境下進行。主要基于兩個重要的文檔,任務分布圖和事務信息,任務分布圖告訴我們在負載時間段內,某一個事務使用的用戶數,高峰使用率及低峰使用率均來自該文檔;

      事務信息告訴我們事務名及優先級,在設計場景時可以參考。

      Q35.Vuser_init中包括什么內容?

      A35:Vuser_init中包含在腳本執行過程中只需執行一次的腳本。一般來說,所有需要初始化的都可以放在vuser_init里面,比如登錄。

      Q36. Vuser_end中包括什么內容?

      A36:vuser_end中一般包含退出的過程,比如退出系統,主要在腳本執行完成或停止時運行,在設置了迭代次數時,vuser_end和vuser_int均只執行一次。

      Q37.什么是think time?think_time有什么用?

      A37:思考時間:用戶在各步驟之間停下來進行思考的時間,由于用戶基于其經驗水平和目標而與應用程序進行交互操作,因此技術水平更高的用戶工作起來可能會比新用戶要快。

      通過啟用思考時間,可以使 Vuser在負載測試期間更準確地模擬其對應的真實世界用戶。

      Q38.標準日志和擴展日志的區別是什么?

      A38:標準日志:腳本執行過程中,將函數集及信息發送到日志文件中

      擴展日志:可以將詳細的腳本執行信息輸出到日志文件中,可以選擇以下三種擴展日志信息:

      ● 參數替換:腳本運行過程中,可以將參數及當前參數值輸出到日志文件中

      ● 服務器返回的數據:將服務器返回給客戶端的數據輸出到日志文件中

      ● 高級跟蹤:所有的虛擬用戶信息和函數調用輸出到日志文件中

      Q39.解釋以下函數及他們的不同之處。

      A39:lr_debug_message:發送調試信息到輸出窗口或業務監控日志文件中

      lr_output_message:發送日志信息到輸出窗口或業務監控日志文件中

      lr_error_message:發送錯誤信息到輸出窗口或業務監控日志文件中

      lrd_stmt:賦予一個SQL語句用于處理

      lrd_fetch:獲取結果集中的下一行數據

      Q40.什么是吞吐量?

      A40:客戶端每秒從服務器接收到的數據,或系統服務器每秒能處理通過的交易數。一般隨著虛擬用戶數的增加,吞吐量也增加,說明網絡帶寬比較充足,反之,吐過隨著虛擬用戶數的增加,吞吐量比較平穩,呈直線狀態,則說明網絡帶寬成為瓶頸,限制了數據傳輸。

      Q41.場景設置有哪幾種方法?

      A41:面向目標的場景設置和手動場景



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

    測試三問——新手必看

    測試三問——新手必看


      在進入軟件測試行業之初,很多人都會存在下面最原始的問題,我稱之為“測試三問”:

      1、什么是軟件測試?

      2、為什么會有或會需要做軟件測試?

      3、軟件測試的目的是什么?

      答:

      一、什么是軟件測試?

      軟件測試是一個過程。是一個質量保證中的一個環節,是一個驗證被測產品是否符合客戶需求的過程。而且是一個有計劃、有規律、有組織的活動。

      二、為什么會有或需要進行軟件測試?

      先簡單來描述一個邏輯:

      第一、隨著信息化的發展,我們在各行各業使用了越來越多的軟件。一方面為我們提高工作效率,一方法豐富了我們的生活,甚至在有些行業已經離不開相關的專業軟件;

      第二、既然這些軟件為我們工作,我們就需要它正確的為我們工作,否則會給我們帶來不必要的麻煩甚至是危害;

      第三、既然如此,我們在使用軟件之前,就需要知道它能不能如我們所需要的那樣工作。

      這樣,就產生一個需求:對軟件進行測試。

      有需要就會產生使其存在,以上簡單的回答了上面第二個的問題。

      不僅如此,在很多軟件在從程序員手中開發完之初,都會有或多或少的問題,更是提出了軟件測試的必要性,隨著時間推移,逐漸催生了軟件測試行業。

      軟件測試是為了保證我們的軟件產品的質量。那么什么是我們軟件產品的質量?如何才能說我們保證了我們軟件產品的質量呢?

      我們說如果我們實現了客戶的所有要求,同時保證了程序運行的效率,保證了程序的可讀性,可維護性,那么我們就保證了我們軟件產品的質量。

      前面這些點是我們軟件測試的最最核心的思想。我們的一切軟件測試活動都是為了保證這個核心思想而存在的,為了保證這個核心思想,出現了軟件測試工程,出現了軟件測試這個專門的學科。

      三、軟件測試的目的是什么?

      在談到軟件測試目的時,許多人都引用grenford j. myers在《the art of software testing》一書中的觀點:

      1、軟件測試是為了發現錯誤而執行程序的過程;

      2、測試是為了證明程序有錯,而不是證明程序無錯誤;

      3、一個好的測試用例是在于它能發現至今未發現的錯誤;

      4、一個成功的測試是發現了至今未發現的錯誤的測試。

      這種觀點可以提醒人們測試要以查找錯誤為中心,而不是為了說明軟件的正確性,實際上大部分未經過測試軟件產品都或多或少的存在著錯誤。

      但是僅憑字面意思理解這一觀點可能會產生誤導,認為發現錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實并非如此。

      首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產生的原因和錯誤的分布特征,可以幫助項目管理者發現當前所采用的軟件過程的缺陷,以便改進。同時,這種分析也能幫助我們設計出有針對性地檢測方法,改善測試的有效性。

      其次,沒有發現錯誤的測試也是有價值的,完整的測試是評定測試質量的一種方法。

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

    僅列出標題
    共394頁: First 上一頁 385 386 387 388 389 390 391 392 393 下一頁 Last 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 麻豆69堂免费视频| 亚洲一本一道一区二区三区| 全黄A免费一级毛片| 夜夜嘿视频免费看| 亚洲欧美黑人猛交群| 国产情侣激情在线视频免费看| 亚洲国语精品自产拍在线观看| 日本在线看片免费| 亚洲综合无码一区二区| 免费无码VA一区二区三区| 无码久久精品国产亚洲Av影片| 91免费在线视频| 亚洲精品天天影视综合网| 无人在线观看免费高清| 久久亚洲中文字幕精品有坂深雪| 久久久久久久99精品免费| 亚洲另类精品xxxx人妖| 最近中文字幕免费mv视频8| 亚洲日韩av无码中文| 亚洲国产精品成人一区| 国产99久久久国产精免费| 亚洲大尺度无码无码专区| 69av免费观看| 亚洲成a人无码亚洲成av无码 | 久久综合亚洲鲁鲁五月天| 亚洲美女视频免费| 国产精品亚洲专区无码WEB | 亚洲成在人天堂一区二区| 亚洲电影免费观看| 精品国产亚洲AV麻豆| 亚洲国产精品成人精品无码区| 97性无码区免费| 一级毛片视频免费观看| 亚洲AV日韩AV永久无码久久| 青青在线久青草免费观看| 黄页网站在线免费观看| 亚洲免费精彩视频在线观看| 午夜寂寞在线一级观看免费| 一级人做人a爰免费视频| 亚洲欧洲精品久久| 亚洲精品第一国产综合境外资源 |