About虛擬&實際

@分享虛擬與實際的世界中所遊玩的心得紀錄,從物理化學到生命科學、從人文藝術到現代科技、從虛擬介面到實際生命體。享受的只是一種學習與體驗。若文章內容有誤,歡迎提出以供修改,對文章的回饋,歡迎寄信給我!一起分享,互相學習成長的環境。
@個人簡介在『關於韃靼』
@我是韃靼~我的信箱:chenyuquan at gmail dot com

2016年12月19日 星期一

自動化軟體測試&非自動化軟體測試

前言:
撰寫了許多Code,還需要人為一項一項測試嗎?可能非常的耗費人力、時間,而且“也不能確保每次的”再現性、重複性。這時候利用軟體本身的優點,使用軟體進行軟體的測試就是一種必須行為。網路上討論自動化軟體測試的文章千千百百種,以下參考另一篇文章所提及的關鍵點。

三個原因:Regression, Some tasks cannot be done manually, Parallel testing.

其中第一項的『Regression』,利用軟體自動化地去重復複雜、重復的行為,以得到低誤差性的測試,是很關鍵的一點,因為人為測試總是會無法百分百遵行“(精密)標準操作流程”,而軟體則可以使程序依照所傳寫好的法則去運行數百數千萬次以上而有著非常低的誤差(正常條件下*)

第二項與第一項其實也是有點相似,但著重在測試項目的複雜性質,文中提出類似影像判別(某方面而言也是一種極大量數據)。

第三項則是建立虛擬的使用者,而非真實的使用多測試者去進行測試。

以上三點是大多建議、推崇、遵循自動化軟體測試中的幾項,其它還有更多原因就不在此討論,不過同時我想提出的則是相反的建議:什麼情況下則不適合自動化軟體測試。

1. 沒有被妥善定義的最終需求。

2. 沒有被良好設計的精密與精確標準操作流程(PPSOP)。

第一點的提出,則是衍生於醫療器材的發展,醫材法規專家林秋雄博士曾說:『Drug by discovering; Device by designing』,而推廣醫療開發領域的Stanford教授-Dr. Mochly-Rosen,在其衍生的Bio-design課程裡面也提到,『Intended Need』,在還沒被妥善定義的需求前,設計與做過多的自動化軟體測試是不恰當的。

第二點我特別定義PPSOP則是一般SOP著重在儀器/設備/實驗的成熟操作流程,但一個成熟的SOP早已經過不斷的測試與驗證,但在專案開發初期,其實定義這種SOP容易疏忽掉細節(魔鬼藏在細節裡)。所以我認為開發初期,更重要的是精密與精確標準操作流程(PPSOP),而PP的意思是包含所有操作流程的細節外,如基本的順序、時間、數量外,還有與前後相同試驗的相關性、先後順序、測試者/研究者的操作習慣等等,都必須被記錄下來。而這就回歸到Design of Experiment (DOE)的設計是否正確、測試者/研究者是否遵循以及回饋等等。

其實第二點與第一點有重復到,都是著重在需求(Intended Need or DOE)的定義,而這兩點則分別屬於兩個不同開發階段,而這兩個階段與自動化軟體測試的交集仍然有一段距離。

此篇文僅描述一些方法概念,如何進行則又有許多眉眉角角。希望藉此記錄下來提醒自己也提醒自己參與的團隊,勿過度技術化,所謂Garbage in, garbage out,設計不良的架構/DOE,用了再好的自動化軟體測試,得到的也只是一堆”無用的大數據“而已。

*不考慮撰寫不良的程式碼、錯誤的演算法等等

Ref:
1. 3 reason to automate software testing
2. Biodesign

2016年12月7日 星期三

Blondies, 不同口感的Brownie系列~

今日點心,Gordon James Ramsay的家常食譜-
Brownie的姊妹=>Blondie,外酥內鬆軟。
二廚技能達成~~


參考書籍:
Gordon Ramsay's Home Cooking: Everything You Need to Know to Make Fabulous Food