不穩定測試 Flaky Test
不穩定測試會在程式沒變時忽好忽壞。常見原因有時間、順序、共用狀態、隨機值或外部系統。
↗認識建立網站會用到的技術,以及確認網站能正常運作的測試。
開啟一個術語,就能看簡單解釋、例子、使用時機、正式程度和程式名稱。
不穩定測試會在程式沒變時忽好忽壞。常見原因有時間、順序、共用狀態、隨機值或外部系統。
↗元件測試會把一個使用者介面元件放進真實渲染環境,提供可控制的輸入和資料,再檢查它的行為。
↗文件物件模型(DOM)會把文件變成由節點組成的樹狀物件。程式可以用它提供的標準功能讀取和修改文件。
↗可觀測性訊號是系統為了說明自身行為而送出的證據。常見訊號包含追蹤、指標、日誌,以及在服務間傳遞少量背景資訊的 `Baggage` 背景資料。
↗本機優先同步會在裝置上保留一份可用資料。使用者可以離線讀寫,連線後再和其他裝置的資料合併。
↗先用舊快取再更新,會立刻顯示允許使用的舊快取,同時在背景檢查最新回應。
↗迴歸測試會檢查後來的程式變更,是否破壞原本正常的行為。
↗伺服器狀態是由伺服器管理的遠端資料。畫面只保留副本,也要適時更新。
↗伺服器端渲染(SSR)會在每次收到請求時,由伺服器產生 HTML,再把完成的頁面傳給瀏覽器。之後可以再接上客戶端互動。
↗定時輪詢會按照計時器重複讀取,檢查資料有沒有改變。等待時間可以調整、暫停,也能在完成後停止。
↗非同步競態會在多個工作重疊,而且完成順序不如預期時發生。較舊的結果可能蓋掉較新的結果。
↗冒煙測試是一小組快速檢查。它確認建置是否能繼續接受深入測試或使用。
↗這組教學連結三種瀏覽器端技術。HTML 提供文件語意,CSS 控制外觀,JavaScript 或 TypeScript 則加入行為。這是一種系統整理方式,不是單一標準技術。
↗前端狀態管理會決定畫面要記住什麼、資料放在哪裡,以及誰能改動它。
↗契約測試會檢查兩個可分開部署的系統,是否仍按照雙方約定的格式交換訊息。
↗客戶端渲染(CSR)是等 JavaScript 和所需資料載入後,再由瀏覽器建立大部分應用程式畫面。
↗建置會把原始檔和列出的相依套件轉成經過檢查的輸出。輸出可執行、測試或部署。
↗查詢失效會把符合條件的快取標成已過期。畫面正在使用的相關資料接著可在背景更新。
↗負載測試先規劃使用者、請求或工作數量。也要規劃流量方式,再檢查系統速度和可靠性。
↗原始碼轉譯器(transpiler)是一種編譯器,會把某種語言版本或語法的程式碼,轉成另一種原始碼。
↗套件管理器會尋找、安裝、記錄、更新和發布軟體套件,也會管理套件所需要的其他套件。
↗效能預算是在開始工作前,先為檔案大小、時間或使用體驗訂出上限,讓設計和程式選擇有清楚限制。
↗視覺回歸測試會在相同瀏覽器條件下,比較目前畫面和已核准的參考圖片。
↗終端機是執行命令列和工具的文字視窗。它可查看檔案、執行指令和自動化工作。
↗這組教學比較三種測試範圍。Unit Test 會單獨檢查邏輯;Integration Test 檢查各部分之間的邊界;End-to-End Test 則實際操作使用者會接觸的系統。這個組合不是單一標準測試層級。
↗單元測試會單獨檢查一小段程式,不讓緩慢或不穩定的外部系統影響結果。
↗測試案例會檢查一個行為或風險。它要寫明初始設定、動作和預期結果。
↗測試替身會代替真實系統元件。Stub、Fake、Spy 和 Mock 可提供控制或觀察。
↗測試資料和 Fixture 是已知輸入與設定步驟。它們讓每次測試都從相同狀態開始。
↗測試涵蓋率顯示測試檢查了哪些程式、需求、狀態或風險。百分比只是粗略訊號。
↗測試驅動開發(TDD)會重複三個步驟:先寫一個會失敗的小測試,再寫最少的程式讓它通過,最後在不改變行為下整理程式。
↗這組教學放在一起說明三個品質領域。無障礙檢查不同使用者能否操作產品。效能檢查回應速度和資源成本。可觀察性則協助了解執行中系統的行為。這個組合不是單一標準品質指標。
↗無障礙測試會用工具和人工方式,檢查內容與控制項是否符合無障礙需求,也包含鍵盤和輔助科技測試。
↗SEO 幫助使用者和搜尋引擎找到並看懂公開頁面。它也讓頁面容易抓取和收錄。
↗資安測試會依照清楚計畫,檢查安全規則並找出攻擊者可能利用的弱點。範圍包含設計、程式碼、設定和系統運作。
↗資料取得生命週期會追蹤一次讀取請求。它會經過等待,再到成功或錯誤。成功結果可能有資料,也可能是空的。
↗資料異動會新增、修改或刪除伺服器資料。畫面要追蹤等待中和最後結果。
↗資料預取會在畫面開啟前,先載入很可能需要的資料。快取仍是最新時,下一個畫面會更快出現。
↗端對端測試(E2E)會走過完整流程。它會使用已組裝、已部署的系統。流程可以是使用者任務或商業流程。
↗語意化版本(SemVer)用「主版號.次版號.修訂號」(MAJOR.MINOR.PATCH)表示公開 API 如何改變,也規定預發布和建置標記的寫法。
↗樂觀式介面會先顯示預期結果,再等待伺服器確認。失敗時要回復原本結果,並說明發生什麼事。
↗模組打包工具會沿著程式模組之間的連結,產生可部署的檔案,也常會切分、轉換和最佳化這些檔案。
↗請求去重會讓相符的呼叫共用一個正在執行的請求。每個呼叫都會收到同一份結果。
↗請求取消會告訴尚未完成的用戶端工作:結果已經不需要了。支援的 API 會收到中止訊號。
↗整合測試會檢查系統中的兩個以上部分,能不能透過真實介面一起正常運作。
↗錯誤邊界會接住元件樹中一小部分的畫面錯誤。它只在出錯位置顯示安全替代內容。
↗Lint 不執行程式就能檢查程式碼。它會找出可能錯誤、不安全寫法、格式問題和違規內容。
↗靜態網站生成(SSG)通常會在建置時,先為每個網址產生 HTML。訪客開啟頁面時,伺服器只要送出做好的檔案。
↗Core Web Vitals 是 Google 的網頁體驗指標。它用真實使用者資料,衡量載入速度、互動反應和畫面穩定度。目前包含 LCP、INP 和 CLS。
↗CSS 是一組控制網頁元素外觀和排列方式的規則。它可以設定顏色、間距、版面、不同螢幕的變化和視覺狀態。
↗HTML 是用來建立網頁內容和結構的標準標記語言。它會告訴瀏覽器哪些內容是標題、連結、圖片、表單等。
↗Hydration 是把瀏覽器端的行為和狀態,接到伺服器或建置流程已做好的 HTML 上,讓指定的頁面區塊可以互動。
↗JavaScript 是依照 ECMAScript 標準建立的程式語言。它常用來讓網站和其他程式回應操作,並隨狀態改變。
↗Markdown 用少量符號排版純文字。這些符號可建立標題、清單、連結和程式碼區塊。
↗Next.js 是建立在 React 上的框架。它加入路由、伺服器和瀏覽器顯示、資料載入、資產最佳化和部署規則。
↗npm 是 JavaScript 套件庫和命令列工具。它可安裝、列出、發布套件,也可執行專案腳本。
↗Python 是用途廣泛且容易閱讀的程式語言。它可用於網路服務、自動化、資料和機器學習。
↗React 是用元件建立介面的 JavaScript 函式庫。資料、Props 或 State 改變時,畫面可更新。它不是 ReAct。
↗shadcn/ui 提供可編輯的介面元件原始碼。它常把無障礙基礎控制和 Tailwind CSS 結合。
↗Tailwind CSS 是工具類優先的 CSS 框架。HTML 中的小型 Class 會套用共用設計值和變體。
↗Vue 是用元件建立介面的 JavaScript 框架。Template 描述畫面,響應式資料負責更新。
↗