A. 我是個程序員,但是我們經理讓我做QA! 我沒做過QA。請問轉QA好嗎我在的是個小公司!
你不可能在一個小公司一直做程序員,讓你做QA應該是不錯的選擇。
而且更多的是管理經驗。
B. QA這個職位主要做什麼重要麼
說起QA這個詞,很多人可能會感覺到陌生,但是如果我說質量保證的話,相信很多人就不會感覺到陌生了吧,對,質量保證,相信很多人在很多的地方都見過這個詞。
相信大家現在對於QA這個崗位有了初步的了解,那麼我在深入的分析一下其他行業的QA,比如說近幾年興起的互聯網行業也是需要QA的,好多人可能會問,互聯網行業沒有實體的產品,不需要提供合格的商品,為什麼也需要有QA呢。
其實,問題很簡單,我們不要僅僅把實體商品作為QA的研究對象,其實虛擬商品和虛擬的服務已經漸漸進入了人們的視野,這些虛擬的商品和虛擬的服務也是一種商品,當然也就需要質量保證了。甚至可以說,虛擬商品或者虛擬服務可能更加需要質量保證,因為實體的商品畢竟是可見的,但是虛擬的商品或者虛擬的服務卻是不可見的,讓人可以琢磨不到。
C. 你好,又冒昧的打擾了,現在我在做文件QA,領導想讓我去做注冊,我想知道哪個的發展空間比較大一些呢
肯定是注冊啊。。。
文件QA相對於其他QA來說技術含量低一些。。。然後工資也會低一些。。。
D. 在IT公司做QA有發展前途嗎有上升空間嗎
QA在軟體開發流程中是很重要的角色,是項目支撐人員中協助項目經理完成質量監控,質量審計,質量問題跟蹤以及項目關鍵流程的制定的角色。地位非常重要,而且需要掌握深厚的相關業務知識。做好了的話前途很大,主要還是看個人能力的情況。QA能夠做好的話,如果再懂一些對應的業務,都是可以向項目經理轉型的:)
E. 我們需要專職的 QA 嗎
有不同的觀點,有爭論總是一件好事,這樣可以引發大家的思考。所以,對於我的這篇博文,如果你贊同我的觀點,我會感到高興,如果你會去認真地深入思考,我也會高興,如果你反對,沒關系,可以討論。在此之前,我想說明一下我觀點里的這個「專職QA」是怎麼定義的。其是很多公司成立的專門做測試的技術人員,僅測試不開發。這些QA對於軟體開發技術並不熟悉,甚至不懂。我經歷過一些公司都有專職的QA團隊(專職的測試人員),自從上個公司我的開發團隊在一個項目上被QA部門搞得一團糟,我越來越懷疑專職QA存在在意義。我的觀點不一定對,但請讓我鮮明地表達一下——我覺得是不需要全職的QA的,甚至不需要QA這一專職角色或部門,因為,不懂開發的人必然做不好測試。就像不懂開發的研發經理必然管不好研發團隊一樣。我越來越覺得Dev應該應該是做測試最合適的人選,這必然是未來的趨勢 (因為我已經看到了中國程序員的進步,相比起10年前,今天的程序員已經是非常全面了,再來十年,必然證明我的觀點是對的)。在我正在展開說明之前,我想引用兩篇文章:兩篇文章一篇是 「On testers and testing」(中文翻譯),本文的作者Sriram Krishnan是一名程序員,曾在Yahoo和微軟工作過,開發過很多軟體,曾被紐約時報報道,寫過一本書,本文是他的一篇博客。他在文章中表達了這幾個觀點——大多數的開發團隊並不需要一個獨立的測試角色。即使要有,那麼所有的開發時間比上所有的測試時間應該 >20:1的。。證據嗎?光看看一些從古至今最成功的軟體開發團隊就知道了。不論是當今的Facebook,還是30年前最初的NT團隊,很多偉大 的產品都是出自沒有或很少測試人員的團隊。開發人員應該測試自己的代碼。沒什麼可說的。背後的道理並不重要。這包括單元測試,全覆蓋的自動化測試或手工測試或組合測試。如果你的開發人員不能/不願意或認為這「不歸我管」,那你需要更好的程序員。另一篇文章是鄒欣的「現代軟體工程講義 9 測試 QA 的角色和分工」,這是一篇很不錯的文章。他在文章里提到了分工的必要性,比如第三方的鑒定機構,並且也指出了分工的一些問題,比如,畫地為牢的分工,無明確責任的分工,等,這些問題直接命中了分工的要害。我隱約覺得,我和鄒欣的很多觀點是相同的,我們內容上是相同的,只是形式上還有分歧。另外,我的觀點太鮮明了,從而容易導向極端的理解。你看,我們都同意,Dev要懂測試,QA要懂開發,只不過分工不同,既然你中有我,我中有你,那就不要分彼此了,一起攜手開發測試吧。(另外,我個人覺得不懂開發的測試人員不可能測試得好) 我的故事我再說說我最糟糕的QA經歷吧,這個公司的QA部門只做測試,他們的leader覺得所有的test design和test 的過程都不需要Dev參與,他們是獨立於Dev之外的部門,他們幾乎不關心Dev的設計和實現,他們只關心能跑通他們自己設計的test case。但是去執行Test Case的時候,又需要Dev的支持,尤其在環境設置,測試工具使用,確認是否是bug方面,全都在消耗著Dev的資源,最扯的是,他們對任何線上的問題 不負責,反正出了問題由Dev加班搞定。我有一次私自review他們的test case的時候,發現很多的test case這樣寫到 –「Expected Result:Make sure every thing is fine」 ,WTF,什麼叫「Every thing is fine」?!而在test case design的時候,沒有說明test environment/configuration 是什麼?沒有說明test data在哪裡?Test Case、Test Data、Test Configuration都沒有版本控制,還有很多Test Case設計得非常冗餘(多個Test Case只測試了一個功能),不懂得分析Function Point就做Test Design。另外,我不知道他們為什麼那麼熱衷於設計一堆各式各樣的Negative Test Case,而有很多Positive的Test Case沒有覆蓋到。為什麼呢,因為他們不知道開發和設計的細節,所以沒有辦法設計出Effective的Test Case,只能從需求和表面上做黑盒。在做性能測試的時候,需要Dev手把手的教怎麼做性能測試,如何找到系統性能極限,如何測試系統的latency,如何觀察系統的負載(CPU,內存,網路帶寬,磁碟和網卡I/O,內存換頁……)如何做Soak Test,如何觀察各個線程的資源使用情況,如何通過配置網路交換機來模擬各種網路錯誤,等等,等等。測試做得也不認真,大量的False Alarm,都是環境問題,比如:安裝新版本後沒有重啟服務,沒有使用新的配置文件,網路配置,等等,等等。在項目快要上線前的一周,我又私自查看了一下他們的Test Result,我看到5天的Soak Test 的內存使用一直往上漲,很明顯的內存泄露,這個情況發生在2個月前,但是一直都沒有報告,我只好和我的程序員每天都加班到凌晨,趕在上線前解決了這個問 題。但是,QA部門的同學們就像沒發生什麼事似的,依然正常上下班。哎……為什麼會這樣?我覺得有這么幾點原因(和鄒欣的觀點一樣)給了QA全部測試的權力,但是沒有給相應的責任,QA沒有體會過軟體質量出問題後的痛苦(解決線上問題的壓力),導致QA不會主動思考和改進。QA對Dev的開發過程和技術完全不了解,增加了很多QA和Dev的溝通。QA對軟體項目的設計和實現要點不了解,導致了很多不有效的測試。註:我無意在這里貶低QA的能力工作。只是我看到了QA因為沒有參與開發的一些現實問題。我的觀點鄒欣對於分工出現的問題給出了兩點解決方法:充分授權和信任(Empower team members)各司其職,對項目共同負責(Establish clear accountability and shared responsibility)我的觀點是, 理論上正確,操作上太虛了。這就像我們國家喊的「為人民服務」的口號一樣,沒有具體的方法,根本無法落實。我無意在這里貶低QA的工作,我也無意因為這個事走向另一個極端。但是,我在現在公司的經歷,還有很多新興公司的做法,我越來越覺得軟體開發,真的不需要專職的QA,更不需要只寫代碼不懂做測試的專職的Dev。觀點如下:1) 開發人員做測試更有效開發人員本來就要測試自己寫的軟體,如果開發人員不懂測試,或是對測試不專業,那麼這就不是一個專業的開發人員。開發人員了解整個軟體的設計和開發過程,開發人員是最清楚應該怎麼測試的,這包括單元測試,功能測試,性能測試,回歸測試,以及Soak Test 等。開發人員知道怎麼測試是最有效的。開發人員知道所有的function point,知道fix一個bug後,哪些測試要做回歸和驗證,哪些不需要。開發人員的技術能力知道怎麼才能更好的做測試。很多開發人員只喜歡寫代碼,不喜歡做測試,或是他們說,開發人員應該關注於開發,而不是測試。這個思路相當的錯誤。開發人員最應該關注的是軟體質量,需要證明自己的開發成果的質量。開發人員如果都不知道怎麼做測試,這個開發人員就是一個不合格的開發人員。另外,我始終不明白,為什麼不做開發的QA會比Dev在測試上更專業? 這一點都說不通啊。2)減少溝通,扯皮,和推諉想想下面的這些情況你是否似曾相識?QA 做的測試計劃,測試案例設計,測試結果,總是需要Dev來評審和檢查。QA在做測試的過程中,總是需要Dev對其測試的環境,配置,過程做指導。QA總是會和Dev爭吵某個問題是不是BUG,爭吵要不要解決。無論發現什麼樣的問題,總是Dev去解決,QA從不fix問題。我們總是能聽到,線上發生問題的時候,Dev的抱怨QA這樣的問題居然沒測出來,QA也總會抱怨Dev代碼太差,一點也不懂測試,沒怎麼測就給hand over 給QA了。QA總是會push Dev,這個bug再不fix,你就影響我的進度了。等等,等等。如果沒有QA,那麼就沒有這么多事了,DEV自己的干出來的問題,自己處理,沒什麼好扯皮的。而一方面,QA說Dev不懂測試,另一方面Dev說QA不懂技術,而我們還要讓他們隔離開來,各干各的,這一點都不利於把Dev和QA的代溝給填平了。要讓Dev理解QA,讓QA理解Dev,減少公說公有理,婆說婆有理的只站在自己立場上的溝通,只有一個方法,那就是讓Dev來做測試,讓QA來做開發。這樣一樣,大家都是程序員了。3)吃自己的狗食真的優秀的開發團隊都是要吃自己狗食的。這句話的意思是——如果你不能切身體會到自己乾的爛事,自己的痛苦,你就不會有想要去改進的動機。沒有痛苦,就不會真正地去思考,沒有真正的思考,就沒有真正的進步。在我現在的公司,程序員要干幾乎有的事,從需求分析,設計,編碼,集成,測試,部署,運維,OnCall,從頭到尾,因為:只有了解了測試的難度,你才明白怎麼寫出可測試的軟體,怎麼去做測試的自動化和測試系統。只有自己真正去運維自己的系統,你才知道怎麼在程序里寫日誌,做監控,做統計……只有自己去使用自己的系統,你才明白用戶的反饋,用戶的想法,和用戶的需求。所以,真正的工程師是能真正明白軟體開發不單單只是coding,還更要明白整個軟體工程。只明白或是只喜歡coding的,那隻是碼農,不能稱之為工程師。4)其它問題關於SDET。全稱是Software Development Engineer on Test。像微軟,Google, Amazon都有這樣的職位。但我不知道這樣的職位在微軟和Google的比例是多少,在Amazon是非常少的。那麼像這樣的懂開發的專職測試可以有 嗎?我的答案是可以有!但是,我在想,如果一個人懂開發,為什麼只讓其專職做測試呢?這樣的程序員分工合理嗎?把程序分成兩等公民有意義嗎?試問有多少懂開發的程序員願意只做測試開發呢?所以,SDET在實際的操作中,更多的還是對開發不熟的測試人員。還是哪句話,不懂開發的人是做不好測試的。如果你說Dev對測試不專業,不細心,不認真,那麼我們同樣也無法保證QA的專業,細心和認真。在Dev上可能出現的問題,在QA也也會一樣出現。而出了問題QA不會來加班解決,還是開發人員自己解決。所以,如果QA不用來解決問題,那麼,QA怎麼可能真正的細心和認真呢?如果你說不要QA的話,Dev人手會不夠。你這樣想一下,如果把你團隊中現有的QA全部變成Dev,然後,大家一起開發,一起測試,親密無間,溝通方便,你會不會覺得這樣會更有效?你有沒有發現,在重大問題上,Dev可以幫上QA的忙,但是QA幫不上Dev的忙。第三方中立,你會說人總是測不好自己寫的東西,因為有思維定式。沒錯,我同意。但是如果是Dev交叉測試呢?你可能會說開發人員會有開發人員的思維定式。那這只能說明開發人員還不成熟,他們還不合格。沒關系,只要吃自己的狗食,痛苦了,就會負責的。磨刀不誤砍柴功。如果你開發的東西自己在用,那麼自己就是自己天然的QA,如果有別的團隊也在用你開發的模塊,那麼,別的團隊也就很自然地在幫你做測試了,而且是最真實的測試。你可能會說吃狗食就是個笑話,因為如果是我,我把干爛的事,就離職走人了,讓別人去吃我的狗食。這個在現實中 的確會發生,也是很現實的。但是想一想,你為什麼在一開始讓他把事干爛了?另外,如果你的團隊在設計評審和代碼評審里沒有把好關,讓某人把事給干爛了,那 么這個人的離職帶來的問題還是這個團隊來扛,於是整個團隊都在吃自己的狗食,挺公平的。痛苦過一次,你的團隊下次怎麼幹了,就不敢亂招人了,就不敢隨意評 審代碼了,就不敢讓人只做一塊東西了。最終還是沒有逃脫吃狗食的范疇。關於系統集成測試。所謂集成測試,就是把多個開發團隊開發的模塊集中起來測試。因為開發人員可以無法看到全 局,不了解別個團隊的系統,所以需要有統管全局的專職的QA進行測試。對這個方面,我並不反對,在實際操作過程中,好像的確用專職的做集成測試的QA更有 效一些。不過,這還是不能讓我停止去思考兩個問題,1) 如果開發人員看不到全局,他能開發出更好的軟體嗎?2)這個全職的做集成測試的QA難道不能是各個團隊的骨幹Dev來組成嗎?關於自動化測試。所謂自動化的意思是,這是一個機械的重復勞動。我想讓測試人員思考一下,你是否在干這樣的事?如果你正在干這樣的事,那麼,你要思考一下你的價值了。但凡是重復性比較高的機械性的勞動,總有一天都會被機器取代的。關於線上測試。我們都知道,無論自己內測的怎麼樣,到了用戶那邊,總是會有一些測試不到的東西。所以,有些公 司會整出個UAT,用戶驗收測試。做產品的公司會叫Beta測試。無論怎麼樣,你總是要上生產線做真正測試的。對於互聯網企業來說,生產線上測試有的在玩 A/B測試,有的玩部分用戶測試,比如,新上線的功能只有10%的用戶可以訪問得到,這樣不會因為出問題讓全部用戶受到影響。做這種測試的人必然是開發人 員。好吧,我暫時寫這么多,我會視大家的討論再補充我的觀點的。—– update —–一些人覺得我是在泄私憤,我能夠理解為什麼我會被這樣誤解,但是沒有關系,很多新東西新觀點總是會被誤解的,我坦然面對。(全文完)
F. 有誰能告訴我軟體開發中的QA主要做什麼的
QA是質量管理職位,很多大公司有專門的質量管理部。
在項目開發過程,會由QA進行全程的監督,查看是否按照CMMI的標准進行軟體開發。
文檔是否齊備,開發基線是否明確,是否存在風險,BUG的削減是否能夠完成目標之類的。
該職位的好處是加班沒有那麼多,有經驗的QA能夠協助項目經理管理好項目。
相當於一個監督員的身份。
CMMI全稱是Capability Maturity Model Integration,即能力成熟度模型集成(也有稱為:軟體能力成熟度集成模型)
G. QA的具體工作內容和職業發展前景
一、QA的具體工作內容:
1 .與新項目的項目經理一起確定項目組應使用的管理標准。
項目組的管理標準的來源主要包括4個:
(1) 國際、國家、行業等外部標准
(2) 企業內部標准
(3)客戶要求的標准
(4)項目經理擬定的標准
QA人員與PM一起協商採用哪些標准,需要做哪些裁剪。這個過程實際上是項目在定義自己的工作流程,在CMMI中將活動的輸出稱為項目已定義過程(PDP)。
2.制定項目組的質量保證計劃
主要定義檢查的工作量、活動、檢查時機、檢查標准、檢查方法、抽檢的原則、具體的
日程安排。
PPQA執行檢查的主要基礎和依據是項目定義過程(PDP)和項目計劃;
3.指導項目組的日程管理工作
QA應對項目擬採用的標准很熟悉,當項目組在實施過程中,會在執行某標准前向QA人
員咨詢如使用標准,QA人員應擔負起導師的責任。
4.檢查項目組的活動與工作產品
4.1定義項目的檢查計劃,如果在上述的第2個活動中,計劃沒有足夠詳細的話或者需
要進行調整。
4.2定義檢查單,根據具體的情況定義合適的檢查單,避免有遺漏或者做無效的檢查,
保證檢查的效率,可以針對項目的具體情況對檢查單進行裁剪。
4.3檢查活動與工作產品,記錄問題 。
4.4溝通問題並跟蹤問題的關閉。如果問題在底層無法及時解決,要逐級上報。
5.分析問題的原因,提出改進建議。
5.1針對某個項目進行縱向分析;
5.2針對多個項目進行橫向分析;
5.3形成質量報告,與PM、部分經理、高層經理、EPG定期溝通。
5.4幫助EPG組收集過程改進的信息和最佳實踐
6.優化組織級的QA過程與檢查單等。
7.檢查組織級非項目的管理活動,比如HR、EPG等。
二、QA職業發展前景
1、走QA技術路線,測試分析,自動化,白盒,或者專心走性能測試,安全測試,測試規劃等。
2、走RD技術路線,轉行做研發。這個例子也很多。開發肯定比QA更可靠。 已經有不少先例了。
3、走管理路線。有管理愛好的,可以往這個方向發展。
4、走業務路線。去做產品經理,規劃產品設計。也是蠻不錯的職位。
5、開發測試工具,測試解決方案,提供測試服務。類似於51testing和博為峰這樣的公司。
三、QA人員
QA(QUALITY ASSURANCE,中文意思是「質量保證」,其在ISO8402:1994中的定義是「為了提供足夠的信任表明實體能夠滿足質量要求,而在質量管理體系中實施並根據需要進行證實的全部有計劃和有系統的活動」。有些推行ISO9000的組織會設置這樣的部門或崗位,負責ISO9000標准所要求的有關質量保證的職能,擔任這類工作的人員就叫做QA人員 。
H. qa是什麼職位