[爆卦]單元測試整合測試系統測試是什麼?優點缺點精華區懶人包

雖然這篇單元測試整合測試系統測試鄉民發文沒有被收入到精華區:在單元測試整合測試系統測試這個話題中,我們另外找到其它相關的精選爆讚文章

在 單元測試整合測試系統測試產品中有34篇Facebook貼文,粉絲數超過1萬的網紅91 敏捷開發之路,也在其Facebook貼文中提到, 【從學員練習影片觀察到一個關於 TDD 的有趣現象】 極速開發的課後練習作業,雖說重點是放在極速開發要學習的技巧與刻意練習的模型,但開發的方式、順序也是刻意安排成類似 TDD 的進行方式,來讓生產力最大化(TDD 本來就是幫助開發的,不是幫助測試的) 我從2位第一次上我課的學員(當然就是 #極速...

 同時也有1部Youtube影片,追蹤數超過1萬的網紅李庭冰,也在其Youtube影片中提到,馬祖風氣區管理處 空拍機性能測試 想最快看到最新影片 請訂閱~ 小冰 https://www.facebook.com/Bboy.shaobin/ Once in a lifetime 團隊 https://www.facebook.com/Once-in-a-lifetime-%E4%B8%8...

  • 單元測試整合測試系統測試 在 91 敏捷開發之路 Facebook 的最佳解答

    2021-09-26 14:17:31
    有 57 人按讚

    【從學員練習影片觀察到一個關於 TDD 的有趣現象】

    極速開發的課後練習作業,雖說重點是放在極速開發要學習的技巧與刻意練習的模型,但開發的方式、順序也是刻意安排成類似 TDD 的進行方式,來讓生產力最大化(TDD 本來就是幫助開發的,不是幫助測試的)

    我從2位第一次上我課的學員(當然就是 #極速開發,代表他們沒上過#單元測試 跟 #TDD與持續重構),雖然他們是照著示範影片、上課教學用 TDD 在寫整個 tennis 的過程,但從他們執行測試的時間點就可以發現:

    「他是用測試來驗證 production code 的正確性」,即使他先寫了測試,也不先執行,沒有看到紅燈,每次都等到 production code 寫完了,應該要綠燈時,才執行測試。

    而其他上過 TDD 課的同學 ,或是上過單元測試的同學,知道測試是用來描述情境,如果現在「加入的這個情境是新的需求或需求異動,代表目前 production code 還不支援這個情境,執行測試跑出的紅燈,就是等等 production code 要完成的 #目標」

    test-frist 從來都只是 TDD 其中一個小小的衍生產物,而不是全貌。TDD, 測試驅動開發 從來都是一種開發方法,而不是測試方法。

    總有些人老愛把 TDD 拿來跟測試相提並論,就總是喜歡把 test-first 當作靶子打,覺得違反人性跟直覺,覺得先寫測試在很多情況下是浪費時間或是不 work,可能拿來跟一堆測試的方法論相提並論,或總是只拿回歸測試的效益來當作 TDD 的整體。抑或是陷入 isolation unit test 與 integration test (其實就是非 isolation 等級、有實際依賴的自動測試)之爭。

    ```
    註:TDD 事實上是可以不是單元測試等級的。
    ```

    要比較正確看待 TDD 的角度,首先要知道它是幫助開發的、它是一種開發方式(當然不是唯一一種,甚至也不會是最好的一種,因為根本沒有最好,只有剛好)

    接著要了解 TDD 可能用 IPO 模型還比較貼切,input-process-output,在你開發任何功能之前,你總要先想過這件事。而先想這件事,才是 TDD 的最基本精神。

    接著是怎麼把你想好的東西,變成可執行的 spec,我們只是用測試程式來「描述」你腦袋中的「IPO模型」,把 process 的過程當作一個黑箱子。

    而這個 IPO 模型在結合成「使用情境」,就會帶來「高易用性 API 的好處」,只有在一開始就先想好怎麼給別人用,最後才會好用。所謂的一開始想好,指的不是預先設計一堆 class,而是 input/output 想清楚期待(一般會結合實例化需求,搭配 Given/When/Then 的 gherkin style 來把前置條件、資料、前提想好,當發生什麼事,應該是怎樣的結果),然後描述它。在紅燈定義清楚目標,綠燈完成 input/output 關係且沒弄壞前面的所有情境後,來針對 process 進行重構(事實上 Kent Beck 的 TDD by Example 更多是用 refactor 來 #完成 process。

    ```
    註:所謂的 output 不一定只有回傳值,包含外部依賴狀態、資料的改變,甚至顆粒度小一點,針對物件導向設計的話,物件內部狀態的改變也算,只是物件內部狀態改變,驗證點要嘛是拿得到內部狀態,要嘛就是要驗證物件哪個行為會因這個內部狀態而有所不同。
    ```

    ## 戰 TDD 之前該先做好的功課
    要戰 TDD,是不是至少要把 Kent Beck 的 TDD by Example 看完?

    要戰 TDD,請不要拿它跟測試方法論來比,那只是一下就被人看破手腳。因為它是個開發方法論。

    要戰 TDD,請不要把它的好處只限縮在跟回歸測試、自動測試的比較,因為那只是它的衍生好處,當你試過在白海報紙上 TDD 就懂,TDD 是在釐清你的思緒的同時,又可以以終為始,確保你在 production code 的每一個動作都是為了滿足某個期待的情境。

    要戰 TDD,請不要去把 單元測試、整合測試捲進來,那是測試的顆粒度,那是測試的分類,TDD 從來都不是只能限於單元測試。

    要戰 TDD,請不要在那邊戰他是 bottom-up ,是直接從程式/class 的角度出發,事實上 TDD 既不是 bottom-up, 也不是 top-down, (書裡面就有講這件事咩),實務上的 TDD 結合倫敦派(GOOS)跟芝加哥派(Classic TDD),會更像 Outside-In 的進行方式,先定義好驗收情境,接著從最外部(也就是使用者看得到的部份)一路把依賴往另一邊的系統邊界推,直到推到系統以外的依賴資源(persistence 或 external API/service)

    ```
    註: ATDD by Example 中 ATDD by Example, Kent Beck 寫的序最後的一段話。

    Kent Beck:
    「就像我曾說過的,TDD的一個缺點是,它可能會退化為一種用來滿足開發人員需求的編程技能。某些開發人員從更廣泛的角度來看待TDD,輕易在他們測試的不同抽象級別間跳躍。然而在ATDD中不存在歧義,這是一種加強與非編程人員溝通的技術。我們之間良好的協作關係,以及作為這種關係基礎的溝通,能夠使軟件開發更有效率。採用ATDD是向著溝通更清晰這個目標邁進的重要一步,而此書是一本全面又平易近人的入門讀物。」
    ```

    要戰 TDD,請不要只關注在 test-frist,因為他只是用 test 來幫助你 think-first,不要邊寫邊想。然後不要過份依賴或相信你腦袋的能力,把你想好的東西具體化出來,最好可以被直接執行,最好除了你以外每個人執行出來的結果都會一樣(不管是對的,還是錯的)

    要戰 TDD, 請不要把論點放在見樹不見林,如果你有看 TDD by Example 的 Part 1, Part 2 那兩個加起來共 24 個章節,就知道一開始就得把當下想到的全貌紀錄在一個「紙本」的 backlog (所謂的紙本,只是要講這並不依賴於任何工具)

    而這個需求輪廓的全貌,會隨著你逐漸完成一部分一部分的情境,設計逐漸浮現後,而隨時跟著增減調整。

    但不代表 TDD 就是先想到一個測試案例,就直接先幹下去了,那根本是亂搞。

    以上這些,都還不是在列 TDD 的好處,而是針對那些從來沒搞懂 TDD 但又愛戰 TDD 的人一點提醒,你戰的很可能是「你誤解的 TDD」。

    TDD 還有許多實務上的用途,列上我在譯者序中的一小段:

    >> 測試驅動開發(Test-Driven Development, TDD)!一種以測試為開發輔助、以測試來描述需求情境、以測試來當作目標、以測試來表達期望、以測試來驗證疑問、以測試來實驗學習、以測試來溝通協作、以測試來協助設計高易用性 API 的「開發方法」。

    譯者序有開放給大家看,請見:https://tdd.best/book/tdd-by-example/

    拜託,要戰之前去看一下祖師爺 Kent Beck 對 TDD 的原始見解:https://www.tenlong.com.tw/products/9789864345618?list_name=srh

    如果你想正確的使用 TDD 來幫助你在實務上產生許多的價值,帶來許多的好處,尤其是需求釐清、持續重構、小步快跑的部份,最好理解的培訓課就在這:https://tdd.best/courses/classic-tdd-by-example-video-training/

    最後我想講一段話:
    TDD 從來都不該被導入到團隊中,但它是一種很好的自我鍛鍊與學習的方式,也是一種能用很低的成本來帶來很多好處的開發方法(見下方註腳),然而它也不是適用所有的情況,但它可以讓『完美』變成一個動詞,而非不變的形容詞。

    ```
    註:
    Kent Beck 在 DHH 靠腰:《TDD is Dead》 之後寫的一篇反串文:《RIP TDD》
    https://www.facebook.com/notes/1063422864115918/

    我幾年前的簡易翻譯,通常也是 TDD 可以幫助你解決的問題,如下:

    - Over-engineering (過度設計)
    - API feedback (改善API的設計與可用性)
    - Logic errors (想的跟寫的不一樣,寫的跟需求不一樣)
    - Documentation (寫跟維護文件是痛苦的)
    - Feeling overwhelmed (找不到切入點)
    - Separate interface from implementation thinking (抽象設計)
    - Agreement (確保已修正問題的證據)
    - Anxiety (改東壞西的擔心受怕)

    ```

    很久沒對 TDD 發表這種長篇大論了,因為不理解、不想理解、不同角度理解的人居多,能真的到各自的塔上用不同角度來看原義,以及實務上用它來幫助解決的問題有哪些的人,真的太少。

    大部分人只想針對這個詞彙來攻訐以博得流量跟吸引目光,而不是想著「我可以用它來幫助我什麼」

    問題跟需求是中性的,解決問題跟滿足需求的手段與方式有千萬種,不會只有一種,也不會有所謂的對錯,多點角度去了解不同的方法、方式,然後融會貫通,發揮綜效,在實務上用最少的成本與風險來產生最大的價值,這才是真正的目標。

    導入敏捷不該是目標,導入 TDD 也不該是目標,目標永遠都是在實務上產生價值、解決問題、滿足需求。

  • 單元測試整合測試系統測試 在 Analog Devices台灣亞德諾半導體股份有限公司 Facebook 的精選貼文

    2021-09-24 16:17:14
    有 17 人按讚

    新聞搶先報:ADI無線BMS助力Lotus重新定義電動車機動性

    Analog Devices, Inc. (Nasdaq: ADI)宣佈英國知名品牌Lotus汽車計畫在其下一代電動車(EV)架構中採用ADI的無線電池管理系統(無線BMS)。ADI的無線BMS憑藉不斷提升的設計彈性、更高的電池可維護性及更輕量而獲得Lotus青睞。此次合作將助力Lotus安全穩步擴展其未來電動車平台,持續突破設計和技術邊界。

    ADI無線BMS技術省去傳統線束,減少高達90%的線束和15%的電池組體積。此外,並提高設計彈性及可製造性,同時不影響電池使用壽命內的里程數和充電精度。ADI 無線BMS簡化了電池組的裝配與拆卸過程,確保快速高效地移除,並修復故障電池電芯。

    Lotus 動力與底盤工程總監Richard Lively表示:「我們與ADI密切合作將無線BMS整合至全新的輕量化電動車架構(LEVA)中,未來,所有Lotus 電動車均將基於此架構設計。無線BMS透過省去傳統線束協助Lotus 提供輕量化解決方案,在優化車輛性能的同時,也契合我們『以優秀技術賦予卓越性能』的品牌理念。」

    Lotus 汽車車身架構的設計目標是使其發揮超高性能。無線BMS的設計彈性讓Lotus 的工程師在進行車輛設計時能夠更自由,使電池組融入整車設計,而非讓整車設計去適應電池組。此外,ADI的無線BMS可最大化每個電芯的能量利用率,進而優化車輛續航里程,其與Lotus 對耐久性的專注要求一致。

    ADI電動汽車事業部總經理Roger Keen表示:「Lotus 在製造高性能、持久耐用的賽車和道路車輛方面享有盛名,其多款車型榮登經典之列。我們攜手重新設想了可能性,為電動車產業開發了一款變革性方案:全新的超輕量化傳動架構和無線電池管理系統,在協助汽車達到優異性能的同時,也為環境的永續發展和低碳地球作出貢獻。」

    此外,電池必須能跟上Lotus 汽車的使用壽命。無線BMS能夠測量電池組健康狀態,簡化裝配和拆卸過程,確保故障的電芯能快速高效地拆卸並修復。由於電池模組是軟體可編程的,因此可實現快捷的線上升級,使得道路車輛與賽車的維護更加輕鬆快捷。電芯控制器與電池模組作為一可維護單元使用,可進一步簡化服務模式。
    欲瞭解ADI無線BMS詳情,請瀏覽:www.analog.com/electrification
    欲瞭解Lotus 汽車詳情,請瀏覽:www.lotuscars.com/en-US/

    Analog Devices 簡介
    Analog Devices, Inc. (NASDAQ: ADI)於現代數位經濟之中心發揮重要作用,憑藉種類豐富之類比與混合訊號、電源管理、RF、數位與感測技術,將現實世界之現象轉化為具行動意義的洞察。ADI為全球12.5萬家客戶提供服務,涵蓋工業、通訊、汽車與消費市場之產品超過7.5萬種。ADI公司總部位於麻塞諸塞州威明頓市。更多資訊請瀏覽:www.analog.com

    關於Lotus
    Lotus 汽車全球總部位於英國諾福克郡海瑟爾,是賽車和超級跑車生產營運、Lotus 先進性能中心和Lotus 指標性的2.2英里測試跑道的所在地。Lotus 汽車打造高性能賽車,成就賽道上的成功傳奇,其賽車曾斬獲13年國際汽聯世界一級方程式錦標賽冠軍及其他多項冠軍殊榮。Lotus 於2021年7月推出全新的Emira跑車,為其最後一款高階汽油動力賽車,首批客戶預定車輛將於2022年交付。2019年7月,Lotus 推出了全球首款全電動英國超級跑車Evija,客戶車輛交付將於2021年開始。

  • 單元測試整合測試系統測試 在 COMPOTECHAsia電子與電腦 - 陸克文化 Facebook 的最佳解答

    2021-09-01 14:30:09
    有 3 人按讚

    #汽車電子 #微控制器MCU #電子控制單元ECU #ISO26262

    【汽車 ECU 大軍集結,多核心 MCU 強勢出線】

    汽車各種網域及區域控制器將與現今分散式系統的邏輯軟體功能整合,因此開發複雜度問題也將由具有眾多個別電子控制單元 (ECU) 的車輛網路,轉移至中央網域/區域 ECU 的軟硬體架構。其中除了要將運算能力擴充為 15k DMIPS (Dhrystone 每秒百萬指令),也需要依據 ISO26262 彈性整合不同 ASIL (車輛安全完整性等級) 的各種功能,讓系統可用性成為需要克服的技術挑戰。

    Gigabit 乙太網路可在網域電腦之間交換大量資料,與感測器和致動器通訊的部分可繼續使用 CAN、Flexray 及 LIN 等傳統網路技術。最後的關鍵因素在於密碼安全性。不論是在外車輛軟體更新的安全性、偵測網路操控及保護私密資料,都需要在所有 ECU 類別提供強大的安全功能。凡此種種皆增加對微控制器 (MCU) 的需求,讓微控制器系列的可靠度 (亦即強固程度及擴充能力) 成為重要標準。

    所謂的強固電腦,必須具備可證明的決定性行為,處理時間急迫的功能,並在故障時快速回復。具備最佳化架構的「多核心 MCU」,在此能以即時控制功能展現自己的強項——傳統處理器具有複雜的記憶體管理和多種快取層級,通常無法可靠預測最大的功能執行次數。技術可靠度也是強固電腦系列的基本特性,若具備嚴格的開發程序、廣泛模擬老化效應,以及提供測試能力的特殊功能區塊,運作時就可達到 ppb (十億分之一) 程度的錯誤率。

    此外,整合式快閃及 RAM 記憶體與其安全機制,則可確保整個生命週期過程中的強固度。快速調整因應未來需求擴充能力也扮演重要角色。在不從頭開始開發的前提下,能以多快速度因應市場需求變化?如果是複雜的多核心系統,依據 ISO26262 的軟體架構及功能安全概念,需要投入高度的研發工作。現今需要符合成本效益的單核心 ASIL-D 電腦,也需要六核心電腦配備 16 MB 以上的快閃記憶體、大型功能安全 RAM 區塊,以及應用程式專屬的特殊加速器。

    最後則需要全方位的安全架構,因應所有的功能元素,例如運算核心、記憶體區塊、匯流排及通訊介面等項目。處理器上隔離的「安全孤島」不足以排除可能發生的安全關鍵故障事件。在網域電腦的 ECU 概念中,需要結合處理器和具備ASIL-D功能的微控制器以保證最高的功能安全。全新的車輛 E/E 架構可支援在外車輛的軟體更新,其中需要強大的硬體安全模組,以提供保護避免更新遭到操控,並對抗攻擊維護車輛內部網路流量的安全。

    延伸閱讀:
    《適合汽車 ECU 的微控制器,為未來車款提供可靠的運算能力》
    http://www.compotechasia.com/a/feature/2021/0813/48766.html

    #英飛凌Infineon #AURIX TC3x

  • 單元測試整合測試系統測試 在 李庭冰 Youtube 的最讚貼文

    2016-11-16 13:45:33

    馬祖風氣區管理處 空拍機性能測試

    想最快看到最新影片
    請訂閱~
    小冰
    https://www.facebook.com/Bboy.shaobin/

    Once in a lifetime 團隊
    https://www.facebook.com/Once-in-a-lifetime-%E4%B8%80%E7%94%9F%E4%B8%80%E6%AC%A1-%E6%B4%BB%E5%8B%95%E5%9C%98%E9%9A%8A-913634415380449/


    DJI Mavic Pro 智能飛行篇


    外觀部分
    Phantom 從第一代就延續了一致的四軸設計風格,也因為只有白色,所以 Phantom 也被暱稱為“小白” 空拍機,Phantom 4 這次當然還是延續了主要 Phantom 系列的設計風格,但明顯因為電池容量加大而相對前幾代肚子變大了,因為肚子變大相對四個軸也變得更加短小,而加高的四個馬達除了對於動力有所提升,也讓槳轉動時對相機的干擾也相對變小,但可惜的是腳架還是延續舊有一貫設計無法收起,所以當然雲台也只能俯仰而無法左右旋轉,畢竟上面還有老大哥 DJI Inspire 系列需要尊重一下。

    另外原本霧面的白色在 Phantom 4 看來也改成亮面Glossy,這對拍攝者會產生反光效果,還有亮面應該比較容易刮傷,看來飛機的包膜生意會很好。

    而重量部分 Phantom 3 是 1280g, 這次的Phantom 4 微幅增加100g到 1380g,當然電池應該貢獻不少重量。





    動力系統
    Phantom 3 的動力系統是水平 16m/s,垂直上升與下降5m/s & 3m/s,Phantom 4 也增加了一個運動模式提升動力到 72Km/h, (20m/s),垂直上升與下降也提升到各為 6m/s & 4m/s,是一個把空拍機拿來當 FPV 競速機來操的概念,但如果空拍還是建議回到一般模式,免得飛太快避障系統來不及反應喔,另外槳的部分也改用快拆槳的設計更加快速與安全。


    電力部分
    Phantom 3 使用的是 4S 15.2V 容量為 4480mAh的智能電池,可以飛行時間是23mins,這次 Phantom 4 一舉將電池放大為 15.2V 5350mAh的智能電池,在新的視覺定位與避障系統 (共五個相機)應該更費電的狀況下,飛行時間小幅增加五分鐘延長到 28 mins,這讓原先猜測 Phantom 4 可以飛行到 35mins 的人應該會有點小失望。


    相機部分
    Phantom 3 的採用的相機是 Sony Exmore BSI 1/2.3" CMOS傳感器,鏡頭為F2.8定光圈,最高可以錄製 4K影像 30f/s,Phantom 4 看來沒有很大升級還是維持 1/2.3" CMOS傳感器,鏡頭為F2.8定光圈,最高可以錄製 4K影像 30f/s,而主要的改變是支援 1080P 120f/s 拍攝,當需要拍攝一些慢動作運動或風景畫面很好用,向 GoPro 致敬。


    雲台部份
    Phantom 4 雲台系統最大改進是採用雙臂設計,主要考量應該是比較強固也更穩定,畢竟已購買 Phantom 3 的消費者撞壞雲台而破費維修的不在少數,看來售後維修部門的 Big Data 有用在產品設計部門改良。另外新的雲台外觀也看不到類似舊的四個防震球的機構防震,到底是取消還是藏在內部還要再觀察,不過整體防震效果應該是要更優的。




    視覺定位系統
    Phantom 3 的視覺定位系統外觀有點不太協調,像是一個硬是外加的模組,這次 Phantom 4 把視覺定位系統重新設計,整合性更佳,也把本來兩個超音波定高與一個相機定 XY 軸設計變成兩個相機的“雙目”視覺定位,當然辨識效果也更好了讓室內戶外也更安全,原本辨識高度為30~300cm, 速度最高8m/s 提升到辨識高度為10m, 速度最高10m/s。



    圖傳部分
    Phantom 3 使用的是大疆獨步全球的 LightBridge 技術,可以最遠到 5000m外傳輸 720p 30f/s 影像,這次 Phantom 4 的圖傳看來沒有提升,畢竟後面的追兵對此項規格還很遙遠。

    遙控器部分
    Phantom 4 此次遙控器採用與 Phantom 3 相同的設計,畢竟前一代遙控器質感不錯,也沒有必要改變,但能不能與 Phantom 3 共用而只買飛機?以大疆的策略上應該不會這樣做幫消費者想?(根據原廠說明把 P3 P-A-F 模式在 P4 改成 P-S-A S:Sport)



    避障功能
    避障系統應該是此次 Phantom 4 最重要的功能,也是今年無人機的發展重點,包含對手零度 XPlorer 2 與 Yuneec Typhoon H 都提供類似或不同技術的避障功能,Phantom 4 主要提供的是前方雙鏡頭60度避障礙物偵測,有效距離為 10m,當然障礙物必須是很明顯的大面積物體,一般對於電線,繩子等可能就無法偵測了,另外當然側飛或倒著飛也無法避障,360度避障礙物可能要等到更高階或下一代的產品了。


    其他功能
    智能飛行這次新增了視覺追蹤 (ActiveTrack) 功能,過去是用手機或遙控器GPS來做 Follow Me 跟隨功能,這次 Phantom 4 可以直接利用相機鎖定人物來跟蹤,所以被跟蹤對象就不一定要拿遙控器,大幅增加拍攝移動人物的方便性,不過最先導入這項技術可是零度喔,實際測試過程中人物移動太快當然也會跟丟喔。


    另外這次有把指南針與慣性單元 IMU雙重設計,避免一組損害時另一組還可正常運作,只是如果兩組都受干擾時呢?

    指點飛行 (TapFly) 功能是可以利用手指在螢幕滑動直接控制飛機飛行方向,最神的是遇到障礙物可以懸停或自動拉高避過障礙物喔!

你可能也想看看

搜尋相關網站