※ 本文是否可提供臺大同學轉作其他非營利用途?(須保留原作者 ID)
(是/否/其他條件):是
哪一學年度修課:107-1
ψ 授課教師 (若為多人合授請寫開課教師,以方便收錄)
王凡
λ 開課系所與授課對象 (是否為必修或通識課 / 內容是否與某些背景相關)
電機所 選修
δ 課程大概內容
基本上就是講述一些能夠應用在軟體測試上的基礎理論,像是 Control flow graph 的概念,
怎麼樣去分析一段程式碼,搭配一些 Coverage (node/path) 的理論計算等等。
課程後段也會包括一些邏輯運算技巧,像是卡諾圖化簡等等的工具。
Ω 私心推薦指數(以五分計) ★★★★★
想上涼課:★★★★★
想上甜課:★★★
想學東西:★★
整體私心:★
η 上課用書(影印講義或是指定教科書)
課程投影片幾乎都是拿參考教科書作者所發佈的投影片來上課,
相關資訊可以參考 https://reurl.cc/DXeGm
μ 上課方式(投影片、團體討論、老師教學風格)
上課的話老師幾乎就是照念投影片,因為選課人數非常少(上限 20 人),
所以就也沒什麼團體討論,老師偶爾講到無聊會問台下同學 “你知不知道 XXX ? ”
XXX 就像是多型、這段 code 哪裡怪怪的之類的問題,不會的話老師也會笑笑帶過這樣。
σ 評分方式(給分甜嗎?是紮實分?)
Hand-writing homework 10%
Project x 3 各 15%
Midterm report 20%
Final exam 25%
我覺得我不到真的很認真,最後拿 A。
ρ 考題型式、作業方式
手寫作業就是去寫老師勾的課本習題,不會公布分數或解答,共五份,每份 2% 。
三個 projects 都是要我們自己找測試的 library 或 function 之類的,再學著用 Junit、Selenium
自己寫測試腳本去測試你選的 SUT (System Under Test),比較不同的是第三個是要用老師實驗室開發
的工具去進行測試。
成績計算有個公式, rasScore = #bugs-found + line-coverage * log2(Total lines of your SUT),
最後 projectScore = 15 * rawScore / (所有學生中最高的 rawScore)。
期中報告就是挑一篇相關的 paper 在課堂上報告,蠻輕鬆的。
期末考原本講是考跟手寫作業 80% 相關的,但後來還是有不少作業裡的概念、計算都沒考...
基本上就是給一段 code 叫你畫 CFG 、計算各種 coverage 等等的。
ω 其它(是否注重出席率?如果為外系選修,需先有什麼基礎較好嗎?老師個性?
加簽習慣?嚴禁遲到等…)
雖然人蠻少但不點名,老師人很好,外系的話感覺還是要有一點程式基礎比較好。
Ψ 總結
我個人修下來是不推拉,其中一個不推的點是老師根本就照著念投影片念,雖然感覺老師是懂很多東西的,
但我預期的內容是要能夠將理論運用到實作上,而不是讀到後來感覺像是在背東西,覺得沒有帶走什麼知識。
作業的部分其實前兩份還不錯,可以學學怎麼使用 Junit、Selenium ,算是有點收獲,但最後一個要用老師
實驗室製作的測試工具,工具大致上是用 python 實作的,在自己環境執行需要自己裝很多套件,還限定版本,
我個人是覺得可以附個 requirements.txt 比較容易在新電腦重建環境。
這樣就算了,使用文件參差不齊,有時候執行還有 bug ,寫得很不爽...
另外就是助教感覺不太用心,最後一個 projecct 說明到 deadline 前一個禮拜才公布,還要同學去提醒他,
修到後來真的是有點傻眼...