• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Postgresql回歸測試

    發布: 2009-5-04 11:54 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 22次 | 進入軟件測試論壇討論

    領測軟件測試網 回歸測試是一套復雜完整的測試, 用來測試嵌入在 PostgreSQL 里的的 SQL 實現。 它同時測試標準SQL 操作和PostgreSQL的擴展SQL。

    運行測試

            回歸測試可以就一套已經安裝好并且在運行的服務器進行測試, 也可以就制作樹里面臨時安裝的服務器進行測試。 詳細些說,有"并行"和"串行"運行測試之分。 串行模式順序運行每個測試,而并行模式啟動多個服務器進程,并行地運行一組測試。 并行測試使我們對進程內部通訊和鎖的正確工作有足夠的信心。 由于歷史原因,串行測試通常對一個現存的安裝進行測試,而并行測試是"獨立"的,不過這么做沒有什么技術原因。

            制作之后和安裝之前運行回歸測試,你可以在頂級目錄鍵入

    gmake check

            (或者你可以進入 src/test/regress 然后在那里運行命令。) 這樣將先制作幾個輔助文件,比如一些用戶定義的觸發器函數,然后再運行測試驅動腳本。 最后你會看到類似下面的東西

    ======================
    All 96 tests passed.
    ====================== 
            或者是一些關于某項測試失敗的信息。先看看下面的 Section 26.2 然后再想想一個"失敗"是否代表嚴重的錯誤。

            因為這個測試方法運行臨時的服務器,所以如果你是 root 用戶, 那這個方法不能運行(服務器不能以 root 身份啟動)。 如果你已經以 root 身份制作了,你就什么也干不了。 這時候你應該把測試目錄的權限變成某個用戶可以寫, 然后以那個用戶身份登陸,再開始測試。比如

    root# chmod -R a+w src/test/regress
    root# chmod -R a+w contrib/spi
    root# su - joeuser
    joeuser$ cd top-level build directory
    joeuser$ gmake check
            (這里唯一可能的"安全隱患"就是那個用戶可能會背著你修改回歸測試的結果。用你的常識管理用戶權限。) 
            如果不是上面那樣,安裝后就可以運行測試.

            如果你配置 PostgreSQL 安裝到一個原來安裝有老的 PostgreSQL 的目錄里,然后在安裝新版本之前執行 gmake check, 那么你可能發現測試失敗,因為新程序試圖使用已經存在的共享庫。 (典型的癥狀是抱怨未定義的符號。) 如果你想在覆蓋老版本之間運行測試,那么你需要帶著 configure --disable-rpath 制作。 不過,我們不建議你使用這個選項編譯作為最終安裝的數據庫。

            并行的回歸測試會在你的用戶 ID 下啟動相當多的進程。 目前,最大的并發數是 20 給并行測試腳本,這意味著 60 個進程: 一個服務器進程,一個psql以及通常還有一個 shell 父進程用于每個測試腳本的psql。 因此,如果你的系統有每用戶的進程數限制,那么請確保這個限制至少是 75,否則你就可能在并行測試時看到隨機出現的失敗。 如果你沒有辦法提升該限制,那么你可以通過設置 MAX_CONNECTIONS 參數,把大的并行測試程度降低。

            在某些系統上,缺省的 Bourne 兼容的 shell(/bin/sh)在管理太多并行的子進程的時候會出亂子。 這可能導致并行測試鎖住或者失敗。 出現這種情況時,請在命令行上聲明另外一個 Bourne 兼容的 shell,比如:

    gmake SHELL=/bin/ksh check
            如果沒有可以替換的 shell,那么你可以象上面那樣通過限制連接的個數來繞開。

            安裝后運行測試, 初始化一個數據區然后啟動服務器,像我們在 Chapter 16 里面描述的那樣,然后鍵入

    gmake installcheck

    或者是跑一個并行測試

    gmake installcheck-parallel

            該測試將與在本地主機和缺省端口號上運行的服務器進行聯接, 除非你用PGHOST和PGPORT環境變量設置為其它值。

            有一些正確安裝并且具有完整功能的 PostgreSQL可能會在一些回歸測試中"失效", 這些主要是因為浮點數的形式和時區支持的問題。 目前的測試只是簡單的用 diff 與參考系統的輸出進行比較, 因而對一些細小的系統區別很敏感。 當一項測試報告"失敗"時,只要檢查一下預期和實際的結果, 你就會發現區別并不大。 當然,我們仍然在努力維護所有我們支持的平臺的準確的參考文件, 這樣我們就可以假定所有測試都通過。

            回歸測試的實際輸出是在 src/test/regress/results 目錄里的文件里。測試腳本使用 diff 以比較每個輸出文件和存放在 src/test/regress/expected 目錄里的參考輸出。任何區別都存放在 src/test/regress/regression.diffs 里面供你檢查。(或者如果你愿意的話,你也可以自己運行 diff。)

    錯誤信息差別

            有一些回歸測試涉及到有意的非法輸入值。 錯誤信息可能會來自 PostgreSQL 代碼或來自主機平臺系統過程。 對于后者,信息可能在平臺之間區別比較大,但應該反映相似的信息。 這些信息上的差別將會導致一個"失敗"的回歸測試, 我們可以通過檢查文件發現這一點。

    區域差別

        

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: PostgreSQL Postgresql

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>