Showing posts with label Agile. Show all posts
Showing posts with label Agile. Show all posts

Saturday, April 23, 2022

[Notes] 2022 不確定時代下的敏捷測試



一段時間沒充電了,報名了三叔公(David老師)的課程來好好了解敏捷測試。 上課內容很豐富也有分組討論,我自己非常喜歡有和老師及學員互動及經驗分享的課程,除了可以站在巨人的肩膀上,也可以了解一下其他團隊的做法和面臨的問題。

以下就記錄一下自己比較缺乏和未來需要加強的部分 😊

 

Agile Testing Manifest (By ThoughtWorks)

1.     測試人員的價值在於早期協助團隊釐清需求和建立系統,而非只是嘗試破壞系統和找出臭蟲。

2.     產品和團隊的質量由團隊所有人負責,並非只由測試人員負責。

3.     精準的自動化測試:應做到可選擇「只執行調整到的範圍」,自動化測試不在於多,而是必須準和穩定,而且必須做有效分層(種類和Priority)。

4.     實例化需求 (Spec By Example)。

5.     從產品的正式環境建立觀測、收集數據,作為開發和測試的參考。

6.     Living document: 持續性更新的文件。

7.     預防defect,而不是追求找到defect的數量。

8.     專案或產品Milestone前期,建立測試計畫,原則以簡單、易維護為主:

     a. 測試目標、項目、風險、策略及環境

     b. Resource and delivery.



快速交付產品

1.     團隊不要刻意分角色別(即多職能團隊)

2.     擔任QA角色的核心價值不僅於進行測試,而是要建立團隊的mindset,讓開發人員也可以做測試,而更複雜的測試再讓QA進行(因為自動化測試絕對無法覆蓋所有範圍,更不用說更複雜的測試可能無法自動化)。

3.     需要有對應的CI/CD流程。



敏捷產品需求處理

1.     Impact Mapping -> Story Maps  -> Spec By Example

2.     SBE (Spec By Example)

     a. User story

     b. Rule

     c. Example

     d. Questions

3.     SBE is like User Story Mapping, that are helping the Team to understand the requirement and give the feedback, we can create the actual test cases after it.

4.     測試左移

      a. Review requirement design

      b. SBE

      c. Code review

      d. Increase Testability (Observability + Controllability)


Automation Testing

1.     自動化測試程式視為軟體開發,需要做版控、Code review及安排重構。

2.     價值導向,重於做好做滿。

3.     及早開始就可以及早收到回饋。

4.     因為重要性通常會被產品功能開發壓低,所以建立初期就要讓資深的人先打底(架構),避免未來難以擴展或因為不穩定(false alert)導致不信任感。



測試右移

1.     開發後期的測試工作,通常在佈署後進行。

2.     Testing and Monitoring production

3.     Why

a.     Collect feedback from real users

b.     Improve product

4.     How

a.     Release: Feature flag, Blue-Green deployment, Canary deployment.

b.     Post release: Chaos test, A/B test, monitoring.

5.     Key of testing in production

a.     Distinguish from test data and real data.

b.     Controllable scope or isolation.

c.     Fast recoverable plan.

d.     Not only focus on the AP, but the statics of BI or Reporting must exclude the test data.

6.     Chaos testing

a.     Progressive

b.     Automation flow on testing and recovering

c.     Focus on few customers and regions.

d.     You do have a PLAN.

e.     Tools: Chaos Monkey


Q & A

1.     Production上發生的Edge case的測試策略?

Ans. 可以從兩方面思考:1. Hotfix後多久可以發佈上線?如果足夠快的話就不需要害怕edge case。 2. 要考慮該edge case的impact和severity,如果團隊覺得高的話,就需要放入regression test,但因為是edge case,也許不一定要以非常高的頻率去執行它。

2.     壓測/負載測試相當耗費人力及機器資源,安排的時機點?

Ans. 依據需求,在Sprint planning時確認是否排入Sprint backlog,建議自動化並讓它在機器不繁忙的時間測試。 實務上我們通常會排一個Hardening Sprint 來進行。
另外可先預估loading並在日常開發的CI做小規模測試,來快速檢視是否這一次的調整有Performance issue。

3.     DoD由誰去review真的有做到位?

Ans. 所謂上有政策,下有對策。 由管理層去看不是好的解決方式,重點是團隊有mindset。 DoD初期先訂寬鬆,再逐漸refine成團隊的文化;也可以透過Scrum master幫忙看和建立規則。

4.   當QA建立了完整的流程和自動化測試,如何展現自己的價值?

      Ans. QA最高的價值在於初期即協助團隊和PO/PM確認真實(或未發現)的需求,以建立更正確的設計;QA應該以指導團隊同仁測試觀念和架構為核心,一同改善團隊推動業務的資訊流程。 當老闆看到團隊邁向正軌,自然而然會看到團隊的每個人的價值。



Thursday, July 15, 2021

[PMI] PMP and ACP renewal

今天把 PMP 及 ACP 證照都 renew 了,雖然 PMI 近幾年來在敏捷的議題或是教材上飽受質疑,不過本人很推崇 PMI 系統化的教材和教學方式。 而且我也覺得瀑布式和敏捷都有其適用的場景,重點在於是否能活用並解決問題。 當然我身在的軟體業變化快速,Agile 會是比較有效率的方式囉 。

 

另外在 renew 的過程中,大家應該都會加入 PMI membership, 記得要在會員期間瀏覽並取得PMBOK® Guide and Standards (會員可免費下載。密碼是當時候你的 PMI 登入密碼)。

 

好吧,其實這一篇是廢文騙一下流量 😅😅。  請多按網誌旁邊廣告,勿戰。

 






Sunday, December 2, 2018

Agile Tour Taipei 2018 會後心得




這次是我第三次參加Agile Tour Taipei,今年參加了以下session:

1.  從乙方PM的角度看敏捷 – KC Liu
2.  當Scrum遇上Pattern – Teddy Chen
3.  Workshop: 利用顧客旅程地圖檢視服務體驗 – 葉致宏

快速分享一下部分心得…


從乙方PM的角度看敏捷

KC老師透過實務上擔任專案經理的經驗,來描述如何將敏捷的做法實踐於大型專案。



上圖是專案降低失敗風險的方式,如果您也是Project Manager的話,應該不用多說,做專案什麼鳥事都會發生; 當然每個專案風險管理的方式不同,在A專案適用的方法,不一定就可以套用在B專案。




「敏捷是PM的救命丹嗎?」
只有無限的預算和資源才是吧(笑)

我個人是很推崇Agile的,但是以專案經理的角度來看,我不認為所有的專案或團隊都適合”立即”、”完全”跑敏捷的方式(要配合天時地利人和阿!),但是iteration的開發方式是很有價值的,可以拉近USER溝通和減少領域知識的落差。



由於很多企業在前年已完成預算編列,傳統專案通常會簽Fixed Price(固定價款),也就是期望在固定的成本和時程中完成雙方確認的很模糊範疇; 但是這種簽約方式很不利於擁抱改變的敏捷方式。 因此PM需要思考如何在傳統合約加入敏捷友善的條款; 例如要求對方Key user/Stakeholder必須出席例會、以固定幾個Sprint作為Milestone的付款條件。

PS. 對於敏捷式合約的類型若有興趣,可參考PMI ACP在Domain 2 提到的Agile Contract Types (Reference: Domain 2. Value-driven Delivery)





Workshop: 利用顧客旅程地圖檢視服務體驗

顧客旅程地圖(User Journey Map)是UX其中一個定性研究(Qualitative research)的方法。
致宏老師先透過影片的方式介紹顧客旅程地圖。 這個影片主要是去記錄一位去診所掛號看醫生的病人,在求診的過程中是否有遇到非預期的情況,例如不曉得下一步要做什麼,或是等候但不知道還要等多久;目的在於理解使用者的UX。

而在Workshop我們是以上次去咖啡館的過程,從過程(故事)中的動詞挑選出:

l  活動:目的
l  互動:過程以達成目的
l  人
l  物
l  境:地點
l  情緒(感受)


例如 「打開手機APP查詢每日咖啡優惠代碼,以Line Pay支付金額」這個過程可拆解為:

活動
查詢咖啡優惠代碼
支付
互動
打開手機APP
打開Line Pay
人
自己
自己
店員
物
手機
手機
卡機
境
咖啡館
咖啡館
情緒
J
J

我們小組建立的User Journey Map如下圖,可以看出使用者在哪一個步驟的UX是不好的。



接下來利用以下方式,將User Journey Map整理成在每一個步驟所需要的資源或方法:


名詞
對應
描述
1
物理證據
人、物

2
顧客行為
活動

3
前台服務
互動

4
後台服務

使用者無法直接看到,但我們需要提供的服務
5
內部支援

由我們內部即可直接提供的服務或資源
6
外部支援

需由外部協助提供的服務或資源

其中 1~3 是使用者可實際看到的服務。

例如以上述User Journey Map例子:「打開手機APP查詢每日咖啡優惠代碼,以Line Pay支付金額」可整理如下:

物理證據
自己
手機
自己
店員
手機
卡機
顧客行為
查詢咖啡優惠代碼
支付
前台服務
打開手機APP
打開Line Pay

後台服務
APP開發
咖啡優惠管理
整合Line Pay
POS過帳
內部支援
咖啡優惠行銷
帳務系統
外部支援
外包廠商開發APP
Line Pay整合
卡機及POS整合

針對使用者UX不好的地方,可在此步驟思考及計畫如何優化?需要那些內外部資源?

最後我們小組整理如下:




以上是這次參與Agile Tour Taipei的一些記錄,明年再見!