天天看點

小型團隊的測試該何去何從

很不幸,我不知道自己應該不應該談論這件事,“小型團隊的測試該何去何從”,我沒有十足的經驗,更沒有十足的理論,然而回想起昨日大家一起的讨論結果,我到現在依然沉浸在失望和苦悶的滋味中,究竟是增強開發人員的自測能力以及自我驅動力還是增加測試人員來做問題的過濾?

首先,我們先抛開需求分析,為什麼這麼重要的環節要先抛開,因為國内的小型團隊面臨着無法避免的嚴重問題:

客戶壓根不懂需求,遇到一個稍微懂一些需求的客戶,那都是上天對你的恩賜。

時間太過緊迫,經常在客戶眼裡,這個什麼功能簡單的很,實作起來不就是一會兒時間的問題,都不需要什麼技術。

迫于市場壓力和成本考慮,前期做大量的需求分析壓根無從下手、也容不得你多做考慮。

當然,我們小型團隊依然會做需求分析,隻是占比太少,我們必須快速疊代,交出産品,讓客戶依據我們的做出的産品衡量他的需求。那麼問題來了,在快速開發的過程中,如何保證軟體品質呢,也就是所謂的測試,如何進展。

我在會上提出了自己這樣的觀點,從開發人員做起,而不是從需求分析處找問題,更不是留到測試人員找問題。怎麼從開發人員做起,那就是增強開發人員的自測能力,使開發人員的效率最大化。在小型團隊中,開發人員才是團隊的核心競争力,開發人員必須具有強大的自我驅動力,并且要海納百川,需要做的不是照着可能已經存在問題的需求分析書敲代碼,也不是自我感覺良好不進行代碼的自我review,更不是極不情願的不去做代碼測試、內建測試。然而我這樣的觀點在會上受到了嚴重的歧視或者反對,有如下觀點:

你所處的産品環境和我們組有着巨大的差别,你所處的環境中,你們組每個人對自己的子產品很清楚,而我們組每個人對彼此的子產品不清楚;你們組的代碼量加起來不及我們組的十分之一,你所能看到的問題不能和我們組相提并論。

我們開發人員無法做太多的測試,因為在我測試的時候,可能資料庫表結構都不存在了,其他人壓根不會告訴我,你讓我怎麼測試,我隻能留到測試人員發現。

由于需求經過多次傳遞,需求在開發人員處已經不再明确,開發人員必須按照自己的了解去做出結果,開發人員沒有責任,需求分析也沒有責任。

測試人員其他工作過多,導緻不能把所有的時間用來做測試。

而所總結出來的解決方案是,開發人員自測雖然是個好觀點,但是可實施性不大,減少測試人員的其他工作,專心做測試,如果一個人員不夠增加人員。

對于以上觀點和理由,我不做過多評價,我想是我自己鼠目寸光,見識短淺,沒有去體會别組的難處。也許在他們眼裡,我們組的情況是這樣的“項目複雜度遠遠不夠,人少問題就少,并且每個人都懂得其他人的子產品”。

我很失望,我失望的不是自己的觀點得不到認同,而是我們項目組的很多成員無法意識到自己的問題,這樣久而久隻會積勞成疾。我不是說自己有多優秀,我自己從前也厭惡做測試,測試不就是測試人員的專利嘛,我幹嘛要自己測試,況且很多人開發的子產品我也不清楚,我幹嘛去了解其他人的開發内容,況且那麼複雜,我根本了解不到,況且很多問題都是需求上出現了問題,又不是我自己的責任。

在現實中,是這樣的。就我自己而言,我接到我目前的項目馬上就有一年的時間了,在這期間,上司給予了我很大幫助,我的同仁們也給予了我很大幫助,時至今日,基本上能夠把控整個期貨交易平台的開發以及品質。我們組從一開始就沒有需求分析師,更沒有所謂測試人員,如何能做到問題越來越少呢,我想這多半和自己的些許努力是分不開的。我剛接手項目時,項目雖然已經上線運作,但是存在問題我都不敢回首。期間兩個原來開發的核心成員都早早的離職了,我必須承擔很多角色,以前别人說,我們小組人員少,是以在靈活開發中的角色定位也就不存在任何問題,一人身兼多職理所當然。我要做需求分析,和客戶讨論,自己琢磨方案,自己參與調查,參與架構,參與大量的開發工作,尤其是還有大量的測試工作,然後還有不停的修改bug,我曾經很痛苦為什麼我要幫别人擦屁股,為什麼我的成員對自己的代碼如此不負責任,幾乎都是一遍開發,能夠自測是我不能太多奢求的。那麼這就要求我,要做好自測,同時做好其他人的測試,當然我自己開發的也曾在上線後出現低級的問題,這也更加鍛煉了我的自測能力。

我認為,小型團隊,如何排程開發人員的效率最大化,才是公司發展的最強生命力。很多時候,很多成員抱怨自己時間多麼緊迫,任務多麼積壓,但是我所看到的現象是,大多數時間成員無所事事,也許如果我們組一開始也有一個測試人員,那麼我也會形成一種他人測試的依賴症。雖然我不能說我們小組的測試有多麼好,成員的自測能力有多強,我隻是想讓團隊推廣“自測”、“自我驅動力”的意識,然而這種觀點并沒有多少人認可。

總結:說了上面這麼多廢話,有些話也不知道自己應該說不應該,把這些事情記錄下來,不是抱怨團隊,而是為自己立下警鐘,無論以後身處何地,必須高舉“自測”、“自我驅動力”的旗幟,而不是抱怨需求分析沒做好,然後把問題留給測試人員,更不是歸咎于項目的難度而去規避開發人員的責任。