1. 程式人生 > >介面測試開發學習總結

介面測試開發學習總結

介面測試開發學習總結

[APT@1907]_介面測試開發學習總結_190724

00. 文件介紹

  • 作者:立師兄Linty(劉挺立)(wx:13017716416)
  • 內容:針對【1907期】介面測試開發學習的課程總結以及筆記記錄
  • 時間:2019.7.24
  • 連結:https://mubu.com/doc/2LIGlptp0g

01. 敏捷流程

專案迭代

  • 敏捷:agile,是一系列的專案的方法論,如何專案做好
  • 目前的敏捷工具
    • TAPD:騰訊的 https://www.tapd.cn/
      • 專案:面向產品經理
        • 需求
      • 迭代:面向專案經理
        • 任務
        • 釋出
        • 計劃:在迭代中建立測試計劃
          • 用例:在測試計劃中編寫(或者關聯)測試用例
          • 缺陷:在測試計劃中執行測試用例,失敗的轉為BUG
          • 報告:在測試計劃中生成詳細的測試報告
    • 雲效:阿里的 https://www.aliyun.com/product/yunxiao<br>
    • JIRA:大公司最常用的,付費的,美國的
      • 定製能力很強
        • 根據公司的研發流程定製任何形式的軟體
        • 可以敏捷
        • 可以瀑布
        • 可以雙V
        • 可以螺旋
    • 禪道:青島的,前阿里員工開發的,免費的
      • 阿里的思路
        • 產品:產品經理關注
          • 計劃
          • 釋出
          • 需求
        • 專案(迭代)
          • 任務
          • 提測
        • 測試
          • 版本
          • 計劃
          • 用例
          • 缺陷
      • 偏基礎,大而全。
      • 用的公司多
      • 文件和視訊很全
    • Tuleap:https://www.tuleap.org/
    • Rally:https://www.ca.com/us/products/ca-agile-central.html

使用者故事

  • User Story,描述需求
    • 角色
    • 功能
    • 價值
    • 模板:作為一個xx使用者,我希望有xx功能,以便實現xx價值
  • Feature,特性
    • 一個特性可以有 多個 使用者故事

工件會議

  • Backlog
    • Product Backlog:產品的待開發清單
    • Sprint Backlog:迭代的待開發清單
  • kanban:任務進度
    • 未開始的
    • 進行中的
    • 已完成的
  • 燃燒圖,燃盡圖,burn down chart
  • 每日站會
    • 我昨天完成了什麼
    • 我今天要做好什麼
    • 我當前遇到什麼問題
  • 總結會:一個迭代完成以後,釋出了版本,總結
    • 我做的好的地方
    • 我做的不好的地方
  • 計劃會:產品經理 + 專案經理
    • 上半場:講需求,我們問需求的細節(輸入的標準,輸出的影響)
    • 下半場:分任務,我們要估計時間

參考筆記

02. 持續整合

程式碼管理

  • Git:分散式,只要 clone 了,就和伺服器的倉庫一樣
    • clone
    • pull
    • commit
    • add
    • push
    • revert : 撤回
    • cleanup:清理
  • SVN:集中式,無論怎麼做,伺服器是全的,其他人都是一部分。連不上伺服器,連你那一部分也看不到
    • check out
    • update
    • commit
    • add
    • push
    • revert : 撤回
    • cleanup:清理

持續測試

  • 敏捷模式的測試的常態
  • 持續
    • 新的功能
    • 修復缺陷
  • 接受變化
  • 小步快跑
  • 工具:Jenkins
    • 開發:構建版本,釋出版本
      • 開發提交程式碼
      • Jenkins 拉取程式碼
      • 構建程式碼(一般是 maven,ant,gradle)
      • 釋出 deploy:複製構建好的 *.war 到 tomcat 或者 jetty 這樣伺服器
        • 停止伺服器
        • 備份老的 *.war 包
        • 備份配置檔案
        • 備份資料庫指令碼
        • 更新新的 *.war 包
        • 變更配置檔案
        • 更新資料庫指令碼
        • 啟動 伺服器
    • 測試:冒煙測試,線上監控,迴歸測試(不多,手工居多)
      • 測試提交測試指令碼
      • Jenkins 拉取指令碼
      • Jenkins 執行指令碼
    • Jenkins 任務(工程、job、item)視角
      • 配置
        • 原始碼
        • 觸發構建
          • 提交程式碼就觸發構建(外掛支援)
          • 定時構建 periodically
            • TZ=Asia/Shanghai:時區
            • 五個部分
              • H(0-29)/10:分鐘
                • H 是hash,任意一次開始之後算起
                • 如果沒有執行,從 01 分開始
                • (0-29)/10 每個小時的 第 0分鐘 到 第29分鐘,每10分鐘執行一次
              • 9-19:小時,每天的 9點到19點執行,其他時間不執行
                • day of month:每個月幾號執行,* 是每一天
                • month:幾月執行,* 是每個月
                • week:星期幾執行,* 是星期1-7
            • <br>

          • 在別的指定的任務構建完成後,開啟
        • 構建
        • 構建之後
          • 發郵件

參考筆記

03. 需求分析

實體分析

  • Entity 實體
    • 被測試的物件有哪些實體
    • 關聯的物件有哪些實體
  • 對號入座:無論是被測試的,還是關聯的,每一個實體對應的
    • 增加
    • 刪除
    • 修改
    • 檢視
    • 列表
  • 被測試的有多少個實體
  • 被測試的每個實體都有哪些對號入座
  • 都有哪些關聯的實體
  • 下一步:確定測試範圍

測試範圍

  • 介面
    • 展示:純看
    • 操作:互動:滑鼠、鍵盤、掃描
  • 功能(重點)
    • 前提
      • 關聯
      • 登入
      • 許可權
    • 描述
      • 合法輸入
      • 唯一屬性
  • 資料
    • 資料庫表對應實體
    • 後臺資料檢視
    • 抓包資料:在客戶端的視角,看前端到後端的過程

參考筆記

04. 測試設計

測試場景

  • 有效
    • 合法輸入:輸入輸出(最基本的測試)
    • 複雜場景
      • 流程長,在中間的節點:放棄 或者 下一步
      • 使用關聯資料
      • 效果影響
  • 無效
    • 非法輸入
    • 合法輸入,業務不匹配
      • 使用了錯誤的關聯:導致髒資料:關聯
      • 前提不對:不登入,或者沒許可權:前提
      • 操作不存在(已更新的)資料:效果

測試方法

  • 手工
    • 覆蓋哪些場景
    • 工具
    • 方法
    • 造數
  • 自動化
    • 覆蓋哪些場景
    • 工具
    • 方法
    • 造數
  • 自動化測試的覆蓋率
  • = 自動化測試用例數 / 總用例數
  • = 自動化測試場景數 / 總場景數
  • 考慮
    • 成本:人工時間,裝置資源
    • 風險:技術難度
  • 介紹測試方法的維度
    • 黑盒、白盒、灰盒
    • 靜態、動態
    • 單元、整合、冒煙、系統、驗收
    • 功能、效能、安全、相容、易用、精準
    • 手工、自動化(從測試的執行角度)

參考筆記

05. 介面原理

介面場景

  • APP 呼叫自己的介面
    • 測試介面可以集中 “有效場景”
  • 使用第三方的介面
    • 測試介面要重點測“無效場景”

介面原理

  • 請求
  • 響應
  • 介面的協議:HTTP
  • 還有
    • dubbo
    • kafka

參考筆記

06. 測試工具

Postman

  • 輸入
    • 方法
    • url
    • params( 處理 URL)
    • authorization
    • body
    • test(JavaScript)
  • 環境變數 Environment
  • 線上監控

JMeter

  • JMeter 可以不會
  • 執行緒組
  • HTTP 請求
  • JSON 斷言
  • JSON 關聯
  • 檢視結果樹
  • 請求頭管理器
  • 測試報告
  • CSV
  • 迴圈控制器

定製方案

  • base:一大堆方法、封裝的各種類
    • build_request()
    • build_logger()
    • read_csv()
    • read_txt()
    • read_json()
    • read_yaml()
    • BoxRequest
    • JsonHelper
    • Logger
  • page:
    • ApiPage
      • 寫業務,要繼承ApiPage
      • _parse_http_resp()
      • _handle_params()
  • case:
    • ApiCase
      • 寫用例要繼承 ApiCase
      • 三個部分
        • 讀CSV
        • 準備:pytest.fixture
          • init_logger()
          • init_request()
          • yield
          • wait()
        • 步驟:pytest.mark.parametrize, allure.tag, title, testcase, story, feature, serverity...level
          • 解析 CSV 輸入
          • 呼叫場景
          • 寫日誌記錄 info()
          • 解析CSV 期望,場景結果:做斷言
            • assert_equal()
            • assert_int_equal()
            • assert_decimal_equal()
            • assert_in()
            • assert_json_equal()
            • assert_loop_equal()
            • 斷言失敗會截圖:
              • @allure.step
              • JSON
              • 請求
              • 響應
          • 可能會有關聯:場景結果作為下一個步驟的輸入
  • runner:bat 檔案
    • pytest
    • allure generate
  • 規則
    • 測試用例
    • 檔名一致
      • py
      • csv
      • yaml
    • 方法名 = 檔名
    • 類名 = 大駱駝(檔名):駝峰命名法
    • 全域性變數 可以用 _ 或者 __ 開頭
    • 方法:動詞 + 名詞 或者只有動詞
    • 程式碼要格式化
      • code | reformat code
      • 註釋:寫完整
        • 寫註釋:作用理順寫程式碼的思路

參考筆記

07. 資料驗證

SQL查詢

  • 重點是思路
  • 思路 = 分步思路 + 關聯
  • WHERE
  • ORDER BY
  • GROUP BY ... HAVING
  • INNER (LEFT)JOIN ... ON
  • 子查詢
  • 建立表、插入資料、刪除表、刪除資料、修改表、修改資料

備份恢復

  • 寫出 bat 指令碼
  • 備份:mysqldump
  • 恢復:source

Fiddler抓包

  • 抓包 HTTPS
  • 抓包 手機

參考筆記

08. 缺陷定位

前端後端

  • 前端:客戶端
    • 瀏覽器:只要在瀏覽器看到的部分,全部是前端
      • 後臺也是前端
    • APP:手機的部分,原生APP ,也包括 H5,都是前端
    • 桌面版程式
  • 後端
    • 應用伺服器
      • 日誌問題
      • Java 問題
      • PHP 問題
      • C#/ .NET (dot net)
    • 資料庫伺服器:資料庫問題
  • 區分:
    • 抓包區分
      • 請求錯誤:前端
      • 響應錯誤:後端
    • 分析日誌
      • 分析程式產生的日誌
      • 日誌包含了請求和響應

業務邏輯

  • 關聯
  • 前提
  • 效果

日誌分析

  • 看請求
  • 看SQL
  • 找ERROR(例如Java 的:exception)
    • ERROR
    • ERR
    • EXCEPTION

參考筆記

09. 求職面試

面試思路

  • 準備主要介紹什麼
  • 分別在什麼階段介紹
    • 自我介紹
    • 職責描述
    • 技術能力

詢問職責

  • 弄明白麵試的職位的需求:
    • 對方想招什麼樣人的
    • 對方想要解決什麼問題
  • 讓自己合適

轉移難題

  • 好的辦法:藉此問對方在專案中的使用情況
  • 進行反問:提供幾個你認為是類似的,讓對方選

針對發問

  • 人事:
    • 我們測試團隊規模怎麼樣
    • 我們公司人員流動性大麼
    • 我們公司社保公積金按什麼基數交,公積金的比例
    • 我們公司怎麼扣稅
    • 公司對測試崗位的職業規劃是怎麼安排的,級別,調薪
  • 技術
    • 開發
      • 目前開發和測試是一種什麼工作流程
        • 先開發好,集中測
        • 還是網際網路的敏捷,開發一點就測試一點
      • 會不會測試沒有時間執行測試,開發延誤
    • 測試主管
      • 團隊的測試有多少個人,開發有多少個人
      • 我們現在主要測試什麼專案?後端?資料庫?介面?APP的?WEB的?
      • 有沒有使用一些程式設計,工具,原始碼管理,Jenkins 這些?
  • 老闆
    • 製造一些機會,聽老闆吹牛
    • 公司用人看重哪些方面

參考筆記

10. Selenium

參考筆記

11. Linux

參考筆記

12. MySQL

參考筆記

13. Python

參考筆記