軟體工程第三次作業——關於軟體質量保障初探
我也希望開發者一開始就了解使用者的需求,完美的分析文件入高屋建瓴般流出,軟體工程師在此基礎上開發了各種完美的功能,按時交付給使用者,使用者一看就特別滿意......但我們都知道現實的工作過程遠遠沒有這麼浪漫。現實就是「**太亂,全部推倒重寫後,結果同事卻說:你看到的就是你前任重寫過的」。這樣的情節。 qa、 test、dev……一大堆同事相愛相殺………..
一款軟體開發的過程往往都很漫長,「需求分析——設計——實現——發布——運營維護——退役」過程冗長得就像就像一朵花從種子的受授粉到下一代的花朵在苗圃中盛開。 軟體的質量保障也不是乙個人的事情,需要每乙個人都要努力做好,需要奮不顧身地加班,頭直到頂越來越清涼......但不管你是這個精密的儀器中的螺絲釘還是齒輪,都要做好分內的事情,盡自己最大的努力。
(2)如果你是乙個專案的qa,那麼你認為你的工作職責範圍是什麼?
職責一、了解你要審查和測試的內容
古人云:知己知彼,方能百戰百勝。我認為,要測試乙個軟體編寫得是否合格,就要明白如何編寫這些**。不然只站在外行的角度來評測別人的成果,會給雙方都帶來不必要的麻煩。
職責二、具備良好的溝通能力,及時且清晰地將問題與髮型很清涼的程式設計師溝通。
良好的溝通能力是團隊合作的關鍵,作為乙個「反饋機制」這一點尤為重要,如果你能夠發現問題,卻不能表述清楚問題的細節,恐怕你的隊友又要多掉幾把頭髮了。及時溝通也很重要,第一時間反饋問題能夠避免後期趕工的加班。
職責三、將對專案的干預控制在職責範圍內
qa的職責是發現並反饋錯誤,而不是對著專案指手畫腳,定義和實現的過程都有專門的部門負責,所以,盡量不要越俎代庖,不然可能越忙越亂。
(3)如果你是乙個專案經理,那麼你認為這你的專案中需要專職的qa麼?還是只需有test即可?如果一旦出現問題,你如何界定由誰擔責?
我認為乙個專案在交付之前需要進行大量且全面的測試,但不需要專職的qa。test是必須的,而且執行test的和寫下這些**的是同一批人,沒錯,同一批人。也就是說,在**的編輯整理結束之後,相人員直接轉入測試階段,誰負責開發**,誰就負責**的測試,誰就承擔**的責任。有問題部門內溝通解決,既節省了部門對接的時間消耗,又能夠更加快速全面地解決問題,最重要的是,這種執行模式可以把責任精準地分配到個人頭上,也解決了產品出現漏洞後的追責問題。
我們試想一下,如果乙個qa團隊不懂開發,那麼對底層程式設計師來說簡直是一場滅頂的災難,就像甲方經常會提一些奇奇怪怪的問題,比如 「根據手機殼的顏色自動更換桌布、」「五彩斑斕的黑」和「把影象翻過去,我要看背面」等等。不用細思考就知道以目前的科技水平這根本就不可能,但你還要浪費口舌和他解釋。這些看似專業的人員實際上只是增加了研發的時間以及人力、物力成本。或者這些專職的qa對開發有一定程度的了解,那麼與其養著一群懂開發,但從不開發的人才,而且是只在專案接近尾聲時才使用的人才,那麼不如讓負責開發的人才直接轉入測試,既節省了人力資源,又避免了一系列的問題。
分工明確會增加效率不假,但仔細觀察這類的文章你就會發現,這種文章舉出的例子基本上都是在流水線上,而軟體開發相比流水線更加扁平化,也更加複雜,每乙個模組的**都不同,也沒有具體的數字和條條框框標準來說明,多少行以上的就一定是好**,即便是覆蓋率也不能,因為程式裡很多的語句是用來處理種種異常的,這些情況大多都不會發生,但是如果這些語句未被覆蓋的話,這個模組的**覆蓋率就會下降,就很有可能打不到預期的覆蓋率。唯一能夠衡量一款軟體好壞的只有四個字——使用者體驗,這四個字還模糊到不行。所以,綜上所述:專職的qa是沒有必要的,我們需要的更多的是更精更全面的人才。
軟體工程第三次作業 關於軟體質量保障初探
一 對教材與參考資料閱讀後關於軟體質量保障你的體會是什麼?1 軟體質量保障 qa 的含義 在對教材閱讀前,我一直以為軟體質量保障僅僅是在軟體上線前對其進行測試,以保證其沒有bug,可以正常按時交付客戶上線運營即可。通過對教材的閱讀我們了解到軟體質量保障 qa 和軟體測試 test 是有很大區別的。軟...
軟體工程第三次作業 關於軟體質量保障初探
對教材與參考資料閱讀後關於軟體質量保障你的體會是什麼?40分 軟體質量 程式質量 軟體工程質量 軟體工程的質量保障 軟體開發過程的可見行要好。在軟體開發過程的風險控制。軟體內部模組,專案中間階段的交付質量,專案管理工具的因素。軟體開發成本控制。內部質量指標的完成情況。實施cmmi可以有效的保障軟體質...
軟體工程第三次作業 關於軟體質量保障初探
1 對教材與參考資料閱讀後關於軟體質量保障你的體會是什麼?軟體質量保障工作 軟體團隊為了讓軟體達到事先定義的質量標準而進行的所有活動,包括測試工作。軟體的質量保障和軟體測試是有很大區別的。軟體測試 test 運用一定的流程和工具,驗證軟體能實現預先設計的功能和特性,工作的 流程和結果通常是可量化的。...