1. 程式人生 > >軟件工程網絡15個人閱讀作業2(201521123044 吳敏烽)

軟件工程網絡15個人閱讀作業2(201521123044 吳敏烽)

提升 單元測試 更多 為什麽 壓力 山寨 文章 閱讀 OS

軟件工程網絡15個人閱讀作業2(201521123044 吳敏烽)

Q1:

在第2章P23和P25中提到:
“運行單元測試,查看代碼覆蓋為百分之百” 經過對未考慮情況,如:處理空的字符串,長度為零的字符串,都是空的字符串...... 處理後,代碼覆蓋測試就會報告代碼覆蓋率為85%

  • 我的疑問是在修改未考慮的情況前,代碼覆蓋率是百分之百的,為什麽添加完修改的情況後,覆蓋率不提升(至少應該也是百分之百吧!),反而降低了?
  • 對於單元測試的代碼覆蓋率我從網上查找了一些資料,其中在
    單元測試代碼覆蓋率的淺談
    我了解到:

a. 覆蓋率數據只代表你所測試的代碼的情況,而往往會遺漏程序本身沒考慮到的問題。(比如文章中的第一個案例“除零Bug”)。
b. 不要只拿語句覆蓋率(行覆蓋率)來考核程序的好壞(因為有可能出現測試人員為了達到你想要的覆蓋率而寫出專門的測試案例)。
c. 路徑覆蓋率 > 判定覆蓋 > 語句覆蓋(考慮的完整性依次降低)

  • 通過學習,對於上述的疑問,我懂得了經過修改後(增加了條件),對於有些情況沒有測試到,那麽代碼率就會降低。

Q2:

在第16.1.1中:
“迷思之一:靈光一閃現,偉大的創新就緊隨其後” 文章中提到:
阿基米德在洗浴城泡澡後發現浮力定律,牛頓在樹下被蘋果砸後發現萬有引力...

  • 我突然產生對創新的困惑,前人是在對現象的分析而創新出一些定律、理論,這些創新就是從無到有,但是那都是在漫長的歷史長河中,出現在少數智商爆棚的人身上;那麽就敢說除了這些之外就沒了創新麽,我覺得創新的定義應該是更為廣泛的,隨著社會快速的發展,人們對於事物的認知、追求、渴望,也是快速的,有需求就會有創新,就像我們每天用的Windows系統,它的“思路”是cosplay Linux的,在它的基礎上發揚光大。它idea就是建在有的基礎上,那麽我覺得它也是一種創新。所以我們說的“山寨”其實也可以定義為一種創新,只要能在有的基礎上發現新的功能,那不也是一種創新麽!

Q3:

在第16.1.4中:
“迷思之四:創新者都是一馬當先”

  • 我覺得這個標題取得不好,創新者的包括先行者還包括後起者,那麽都能說一馬當先?相信大多數人都會持反對意見,為什麽呢?根據歷史的發展,許許多多成熟、廣為人知的作品都不是先行者創造的,因為當先行者發布一種前所未有的東西後,這種思路激發成千上萬好奇的人們去研究他,在此基礎上,創新出更多、更強大的東西,那麽這些後起的創新者就成了這些作品的權威,成為代表。

Q4:

在第16.1.7中:
“迷思之七:成功的團隊更能創新”

  • 對於作者的這個說法,在某些方面,我其實是不太贊同的,一個成功的團隊在多數情況下的確會更具有創新的優勢,因為在商業化的發展中,利益的驅使、社會的呼聲都會督促團隊去創新出更多的產品,但是,往往在這些情況下前進的阻力就會越大,當你的曝光度,關註度增加時,你的精神上的壓力增加,專註度可能就趨向於成功、利益。而減少對產品本身的專註,反而會減緩對它的創新。其實不會發現,好的創新大多在默默的進行,當它完成了,才浮現出來。

Q5:

在16.5.2的(3)中:
“大公司裏,是不是團隊越大越好?管理專家建議,在工作需要的基礎再減掉一位,這才是最優的數字。這樣能讓剩下的團隊成員更有空間做事情,更有創意,也更能幫助別人”

  • 從理想的狀態下講上述的情況是成立的,事實上,大公司裏團隊不是越來越大麽(哈哈哈),而且經營得紅紅火火的,你能質疑說它團隊人太多麽,團隊越大,從側面上說它的發展肯定較之前更大,發展大了事情就多了,那就更需要人處理,這是成正比的。至於後者所說的,留有空間,想想看,當你忙忙碌碌下來一天,整個人精疲力盡,你還會考慮去協助其他人的事情麽,引用一句話“月虧則盈 水滿則益”,留有空間讓大家去調整,而不是充分體現價值,價值的體現的日益漸進的。

【附加題】:請將問題提交至豆瓣, 並在博客中給出鏈接

  • 讀書筆記鏈接:https://book.douban.com/annotation/54373511/

技術分享圖片
技術分享圖片

軟件工程網絡15個人閱讀作業2(201521123044 吳敏烽)