發表文章

bug跟蹤

Bug 跟蹤是報告、安排優先級以及處理 bugs 和問題的過程。它聽起來不怎麼有趣,但是如果想要提供良好的服務,除了建立一個 bug 跟蹤和修複流程,别無它途。 當你意識到需要在你的公司中內建一個 bug 跟蹤流程時,你需要實作一個特定的工作流。 你可以從實作 内部 bug 報告 政策開始。在釋出任何新的或更新的軟體之前,它要通過一個内部測試階段。你的 QA 或軟體開發人員能夠手動測試應用程式來發現 bugs。 另外一個途徑是從你的使用者那裡知道 bugs——這是外部 bug 報告。對於這種類型的報告,你可以使用不同的工具。 跟蹤 bugs 最簡單的方法是一個基本的電子表格。你可以跟蹤 bug 相關資訊並解決它們。如果這個表格變得很大,那麼你就會崩潰。需要使用特定的 bug 跟蹤工具。Bug 跟蹤軟體不僅僅是一個資料庫。它還是一個工具,能讓你團隊中的每一個人都看到 bug。 下一步是搭建一個 bug 跟蹤漏鬥。其基本安裝遵循如下規則: 新 Bug 拒絕或確認 安排優先級並配置設定 修復中 測試 測試中 修復完成 優秀的 bug 跟蹤軟體會給你很大的靈活性,包含盡可能多的 bug 相關的的資訊,進而安排優先級且修復它。這意味需要包含以下資訊選項: 發生了什麼。螢幕截圖、螢幕記錄或工作流程都會非常有用; 問題的時間和日期; 嚴重程度; 複現細節; bug 狀態; bug 負責人 來源

手動測試與自動測試

手動測試時會檢查每個新任務的細節,除了正常使用情境與介面檢查外,也會測試極端情況、錯誤使用方式的處理、不同版本或權限的管理等等。 自動測試的環節出現在新版本的功能、優化、bug fix merge 到主要分支後、準備上線前的最後一道關卡,跟 DevOps、SRE 密切合作。主要測試項目為目前線上已有的功能與模組,例如註冊、登入、加入購物車、結帳流程等等,避免新的版本影響到原有功能。而新功能的自動化測項則是會邊開發邊加進去,逐漸提高代碼覆蓋率(code coverage)。 QA 主管負責掌管龐大的測試項目(Test Cases)資料庫,使用如 TestRails 這類型的工具將測試項目分類、互相關聯、複製、移動,同時跟工程師、產品經理溝通新的功能開發的測試項目、資源、時程。 手動測試和自動測試都很重要,前者強調使用情境、使用流程、UIUX的具象狀況,後者則是能快速檢查與盤點大部份重要功能的實作與邏輯運作狀況。 來源 自動化測試 測試:通過探索和實驗來學習產品來評估產品的過程,其中包括在某種程度上:質疑,研究,建模,觀察,推理等。 檢查:通過將算法決策規則應用於產品的特定觀察來進行評估的過程。 以體檢來比喻測試: 體檢很類似軟體檢查,透過體檢,得知人體是否有生病的可能性。 我們在體檢時,測量體重、高血壓、白血球數量等等,超過某個「標準」,就會出現紅字,提醒我們該注意飲食、增加運動量等等。 這些「標準」是經歷過數十年的實驗或是醫療紀錄累積下來,讓人類得知超標後,生病的記錄很高。 因此,當新功能或新產品還不一定有明確的標準時,必須經歷反覆驗證或是與開發者溝通、確認標準,且經歷長時間的觀察,確認 behavior 不會再變動,才有機會變成自動化檢查的項目。 簡而言之,能夠有明確標準的case,才有機會變成自動化檢查的項目,而這種方式有助於減少 QA 進行 regression的時間。 最後,引用倡導海盜派測試的邰曉梅來台演講曾提出: 其實 Testing 是以一種探索的過程,每個人對於產品品質的定義是不同的,而透過探索、溝通、協調的過程中,達到共識。這過程稱之為 「Quality Alignment」。 而我認為: 不管手動、自動、腳動、眼動來測試,只要能夠預防及找到bug,且能夠清楚地描述 reproduce步驟,就是好 QA 畢竟,預防及找到bug、確保品質,才是QA的...

測試

  一般來說測試大概可以分成兩個面向,第一種是「正向流程」,也就是以使用者角度出發,從進入網站、註冊/登入、等等,各個使用步驟上有沒有什麼問題。 不同裝置版本有沒有問題,以及各權限對產品的使用流程是否無誤。也需要因應產品的新功能去撰寫、修改自動化測試(End-to-end testing),來將產品的測試流程中人為操作的部分以程式的方式跑過,避免人為操作上可能因為測試環境、測試步驟的變異而有問題。自動化讓產品的發布能夠更加敏捷,無需歷經漫長的測試才能上線。 正向流程完成之後,會進行「逆向流程」,需要故意做出一些不正確的操作,舉例來說,密碼輸入錯誤是否會跳出錯誤訊息、使用者重複註冊怎麼辦、在未連網的狀況介面要顯示什麼。 這兩種做完都沒問題才算測試完成。 來源: 1   2

Agile Development

圖片
Agile就像洗衣服/ 做家事:「今天之後所產生的髒衣服,不會在這次處理」。 因應環境及客戶需求快速變化的一種軟體開發能力。 例如:我們目前正在開發的功能,或許在它還沒上線的時候,客戶可能已經不需要了。因此,「敏捷開發」較能夠駕馭需求的變化,它主張可以接受變更,以做出更快的回應。 敏捷開發的計畫不會包括半年、甚至一年的事情,正是因為如此,所以非常具有彈性,深受大家喜愛。 實踐Agile的Scrum 3-5-3框架 3roles-5events-3artifacts 3roles: 1.Product Owner(產品負責人)   一般是由產品經理擔任 2.Scrum Master   主要負責確保開發團隊遵循正確的Scrum結構,同時也扮演開發團隊的教練或指導者,甚至是捍衛者。當團隊出現瓶頸時,Scrum Masters會立即積極地消除障礙,以確保團隊的工作順利進行 3.Development Team(開發團隊) 5events: 1.The Sprint(衝刺)      整個Scrum框架的核心就是 Sprint(衝刺)。每個Sprint都以計劃會議開始,在此期間,產品負責人和開發團隊就Sprint期間將要完成的工作達成一致。而每個Sprint的周期(長度),由Scrum Master決定,可以是一周到一個月不等(通常建議是兩個星期),如果沒有Sprint,Scrum將缺乏節奏感,工作流程勢必受到干擾。      此外,一旦Sprint開始後,產品負責人將回到管控的角色,負責專案最後的驗收,而開發團隊的實際運作則由Scrum Master負責。 2.Sprint Planning(衝刺計畫)      Sprint Planning(衝刺計畫)的主要任務在於確定高價值的工作。在衝刺計畫過程中,必須決定要關注的重點,並製定計劃以有效地完成工作。      此外,衝刺計畫在整個Scrum運行過程當中是不可或缺的重要過程,因為它是對可交付成果和流程的正式協議。 3.Daily Scrum(每日 Scrum 會議)      Scrum是團隊每天舉行的15分鐘站立會議(Stand-up meeting)...

QA的工作

1. 預防缺陷:在產品/ 功能尚未開發時,QA就會開始研讀相關資料、設計test startegy、test plan 及 test case。同時,QA也會參加 developer 會議,提出可能的risk。在這階段,QA所做的工作是最有價值的,因為在產生bug之前,就已經先避免bug的出現。 2. 找缺陷 3.  Support Training:  協助處理客戶/ 使用者遇到的問題,想辦法reproduce,若到這時候才發現的bug,成本非常高,最主要是因為會延宕 release時間,一天無法 release,就是損失一天的錢。此外,這時候才發現的gating issue,會使得開發者、QA及 PM壓力非常大,因為只要一天不解掉,客戶就不會滿意,甚至影響到未來的合作計畫。 QA工程師需要細心與高度溝通能力,他們需要站在使用者的角度去驗證產品,找出不合理之處;在日常中也需要和產品經理、工程師,或是業務團隊進行跨部門的協作,因此一個敏銳且溝通能力強的人十分適合從事這個職業。 來源