耐心
軟件開發一般被看做是建設性的活動,而軟件測試常常在一定程度上被看成是破壞性的活動。但是軟件測試的這種破壞性的活動并不是每次都能“破壞”成功的。在測試過程中經常出現這樣的現象:盡管運行了很多的測試用例,但是沒有在測試對象中發現任何的失效。這個時候,就要求測試人員具有足夠的耐心。開發人員的重要輸出是軟件產品的代碼,軟件代碼的數量會隨著開發的深入持續不斷地增長,這將極大地激發開發人員的成就感。但是測試人員不同,測試人員就像獵人一樣,要經過漫長的“狩獵”過程才可能發現一個“獵物”。即使測試對象出現了異常行為,也需要測試人員經過耐心地分析和研究,才可能最終確定是否是缺陷。通常來說,測試對象的異?,F象經常隱藏在大量的系統正常行為之中。因此,需要測試人員耐心檢查各種數據、操作和系統表現行為,才能夠發現其中的異常。
溝通技巧
所謂溝通技巧,對軟件測試者來說,是具有收集和發送信息的能力,能通過書寫、口頭與肢體語言的媒介,有效與明確地向他人表達自己的想法、感受與態度,亦能較快、正確地解讀他人的信息,從而了解他人的想法、感受與態度。 溝通技能涉及許多方面,如簡化運用語言、積極傾聽、重視反饋、控制情緒等等。雖然擁有溝通技能并不意味著成為一個有效的軟件測試者,但缺乏溝通技能又會使軟件測試者遇到許多麻煩和障礙。測試并不是獨立存在的,而是軟件開生命周期中的重要組成部分。實際的軟件項目通常是由各種不同角色的人合作完成的,這樣就難免會遇到需要和他人合作完成一項任務的問題,這個時候溝通就很關鍵。尤其是在當今全球化程度越來越高的情況下,很多項目由位于世界各地的團隊共同完成,溝通就更加重要。溝通的方式有很多,可以是面對面的交流、電話或 Email,也可以通過文檔和缺陷報告來交流信息。測試人員在整個項目開發過程中可能需要和項目經理、開發人員或用戶等多種角色進行交流,良好的溝通能力有利于測試活動的開展。
團隊精神
團隊精神,在軟件開發與測試周期過程中來說就是大局意識、協作精神和服務精神的集中體現。團隊精神的基礎是尊重個人的興趣和成就。核心是協同合作,最高境界是全體成員的向心力、凝聚力,反映的是個體利益和整體利益的統一,并進而保證組織的高效率運轉。隨著社會的發展,社會的分工越來越細化,這同樣適用于軟件開發和軟件測試,軟件開發生命周期中的任務通常都需要通過團隊來完成。團隊并不是一群人的機械組合,真正的團隊應該有共同的目標,其成員之間的行為相互依存和影響,并且團隊成員之間能夠很好地合作,從而追求集體的成功。團隊是一個有機整體,團隊成員除了具有獨立完成工作的能力之外,同時還需要具有與他人合作共同完成工作的能力。團隊的績效源于團隊成員個人的貢獻,同時永遠大于單個團隊成員貢獻的總和。團隊精神是大局意識、協作精神和服務精神的集中體現。團隊精神要求團隊成員有統一的奮斗目標或價值觀,而且需要相互信賴,需要正確而統一的企業文化理念的傳遞和灌輸。團隊精神強調的是組織內部成員間的合作態度,為了一個統一的目標,成員自覺地認同肩負的責任并愿意為此目標共同奉獻。在測試人員的工作中,團隊不僅是指測試人員之間應該有團隊意識,作為項目的一分子,測試人員和開發人員也是一個團隊。只有整個項目具備了團隊精神,項目才能獲得最終的成功。
工作熱情
測試活動充滿了艱辛和挑戰。測試人員只有始終保持積極的態度和工作熱情,才能夠出色地完成各種測試任務和接受各種挑戰。沒有激情的測試人員,只會滿足于完成基本的測試任務;而充滿激情的測試人員不僅能夠完成基本測試任務,還能夠用積極的態度思考測試過程中遇到的各種問題,努力尋找解決方案,創造性地解決這些問題。同時還可以積極地對自己進行反省,不斷地尋找團隊和自己的不足,從而進行持續的改進。
技術能力
就總體而言,大多數開發人員對那些不懂技術的人有時或許持一種輕視的態度。一旦測試小組的某個成員做出了一個錯誤的斷定,或者在沒完全正確理解產品特性的基礎上冒失的提出一個錯誤的軟件缺陷,那么測試團隊的可信度就會受到開發團隊以及項目經理的挑戰。測試人員必須既熟悉被測軟件系統的原理、流程又要掌握一定的代碼能力。既能讀懂開發人員寫的代碼,同時也要能發現代碼中存在的問題。
超強記憶力以及自我督促能力
一個優秀的軟件測試人員應該具備超強的記憶力。能夠把之前遇到過的各種產品缺陷深入理解后,進行分類記憶存儲。當在以后的測試中遇到與之前軟件缺陷缺陷類似的軟件缺陷時,從記憶深處快速挖掘出之前的軟件缺陷,相互比較,找到該缺陷的根源。這一能力在測試過程中的價值是無法衡量的。因為許多新出現的問題和我們已經發現的問題相差無幾。
同時干測試工作,尤其是經常用手工進行回歸測試時,由于該測試已經在各個場景下跑了太多的次數,所以會讓測試人員變得索然無味,同時很難調動測試人員的工作積極性,同時容易使你變得懶散。當測試人員是一個具有自我督促能力的人才能夠使自己每天正常地工作。認真全面的執行每一條測試。
持續學習能力
學習能力為智力結構中與學習密切相關的那一部分能力,主要包括理解力、記憶力、問題解決能力及評價能力。軟件測試人員必須保持不斷學習的狀態。計算機技術日新月異,無論從理論還是實踐,知識更新都非???。所以測試人員必須不斷學習,了解掌握最新的測試理論、測試技術、以及其他領域的計算機技術例如云計算、敏捷開發與測試等。并在測試中,將這些理論知識付諸實踐,讓測試人員的測試邊變得更有效、更高效。
原文轉自:http://www.ibm.com/developerworks/cn/rational/1310_lihuan_testerability/