前言:做了第一講:軟體測試和測試環境的筆記,是我自己在萬門大學系統化學習軟體測試做的學習筆記。為啥要學呢?因為雖然從大三就開始接觸軟體測試,但是大學老師教的東西,其實更多是灌填式,老師講什麼,你就學什麼。不知道別人怎麼想,但是我坦白,常常會有為什麼要學這個,學哪個又能幹嘛的疑問。出了社會更講速成化,快快快,學學學,儘管已有三年工作經驗,也是常常一臉蒙圈地往前走。出於想系統地真正地學習軟體測試這門課程,所以記下這一系列的筆記。由於課程持續更新,所以目錄還處於草稿狀態,不過筆記得更新。希望自己能好好學習咯~~~
1.為什麼要了解軟體測試的含義
知道什麼是軟體測試,才能知道在做軟體測試的時候思考的點,以及思考的方向是什麼。
舉個例子:如果你或者你們的團隊認為軟體測試的含義是找bug,那你一系列的測試工作都將圍繞這個找bug而展開,你們整個團隊得側重點就會在這裡,從而會出現只屬於你們團隊的測試特色:比如重缺陷輕測試計畫等。那如果認為軟體測試的含義是檢驗開發的程式是否滿足需求,那你就得盯著這個需求,因為你得有乙個預期結果,而預期結果**於需求,如果需求寫得爛,你就得去爭取,去討論,這就是所謂的思考的方向。
而每乙個年輕的善於思考的測試人員相信都會有這樣煩惱的瞬間:團隊裡的測試,跟學的測試,感覺不一樣啊?首先,你就得看看,你們公司是怎麼定義軟體測試的。如果連定義都不一致,雙方的理解從一開始就產生偏差了,合作起來自然就很累了。anyway,通常是你要調整去配合團隊。但是你得知道自己調整的依據,不然你心裡會不舒服,工作起來就會不開心了~
2.為什麼要了解測試環境的含義
環境是分型別的,測試環境有別於開發跟線上環境。而只有先了解什麼是測試環境,才能知道後續如何去研究,如何去搭建,否則根本無從談起啊~同時也能知道為什麼要搭建這麼多不同的環境,分別有什麼作用,需要幾種環境才能有效保證質量,主要是解決這些問題。
3. 為什麼要掌握軟體的分類
軟體測試測的是軟體,但是軟體是有不同的分類的,所以需要使用不同的測試型別。而不同的測試型別,對應的測試方法又不同,這麼一路順下來,了解軟體的分類就顯得很有必要的。因為如果你了解了測試方法,什麼型別的軟體都一股腦用上,顯然就會出現問題。
4.為什麼要掌握數制的含義及轉換方法
計算機只認識二進位制,也就是只認識0和1,而我們人認識的是十進位制。所以如何將二進位制轉換為十進位制,十進位制轉換為二進位制,讓兩者可以進行對話,靠的就是數制之間的轉換。
5.缺陷產生的原因
1)技術問題
演算法錯誤(較多);
語法錯誤(較少、因為編譯時會提示,開發會及時修改);
計算和精度問題(較多);
介面引數傳遞不匹配;
web埠設定錯誤
2)團隊工作
誤解(對需求理解);
溝通不充分
3)軟體本身
文件錯誤;
使用者使用場合不同;
時間上不協調、或不一致性帶來的問題;
系統的自我恢復或資料的異地備份、災難性恢復等問題
(可以看出乙個bug的出現是有多種因素的,測試人員記錄詳細地bug5,進行分類統計,後續生成缺陷報告,進行缺陷分析,以從中得到有價值的經驗,輸出對測試團隊乃至整個團隊的合理性建議,多方面提公升軟體質量,才是發現缺陷的最終目的,而不僅僅是發現,記錄,修復,就完事兒了。後續的總結是非常重要的,也是形成個人經驗庫的這麼乙個積累過程。)
1.什麼是軟體測試
其實目前沒有乙個組織有權決定軟體測試的真正含義,目前廣受認可的有兩個定義:
1)2023年《軟體測試的藝術》一書中:在現有的軟體當中查詢隱含的缺陷或錯誤的過程,目的就是發現軟體當中的錯誤和缺陷-----但是並不能完整地說明軟體測試的含義
2)2023年ieee軟體工程標準術語:使用人工或自動的手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別
其中還有乙個:「在規定的條件下對程式進行操作,以發現錯誤,對軟體質量進行評估」
(哈哈,什麼是軟體測試?軟體測試的定義?軟體測試的目的?好亂啊~我是覺得不要慌,定義其實是有多種的,記住受認可大的幾個就行。但是定義跟目的確實是不一樣的,這個要區分清楚噢。是不是又要問了,那軟體測試的目的是什麼?好傢伙,又是有好幾套的,沒深入研究過暫不予置評,不過多比較總沒錯。)
2.不同階段缺陷的分布是怎樣的
(意思是說,其實越早發現缺陷越簡單,修改起來也簡單,等到真正的測試階段,其實修復成本已經變大了。什麼意思呢?想一下在需求階段,產品提出的需求是否真的是使用者想要的?實現上是否會造成什麼問題?各個細節都考慮清楚了嗎?改動是否過大因為太大的話質量肯定會不可控,這些風險是否是清晰的?當然了,在小公司或者小團隊裡尤其是所謂的敏捷團隊的,常常是拎著乙個不知道是哪來的需求,大家就開始幹活了,長此以往開發測試失去了熱情,淪變成實現與執行的工具,逐漸喪失表達與爭辯能力。其實這才是最大的乙個bug。這種bug是危險的,但你可以先嘗試修復。也就是說,你知道了這個知識點,你也去了解了對應的解決方案,那麼你就得積極去推。測試能做的事情先做著,團隊才能做的事情丟擲來就好。那麼可能會出現毫無進展的局面,那沒有關係,始終做好自己的本分,團隊可以換,但是要做正確的事情,這也是增值的一種方式。)
3.搭建測試環境測試人員需要具備什麼知識
1)硬體知識
2)軟體知識
3)網路知識
(乍一看有些籠統跟單調,其實是這樣:測試人員拿到軟體的第一件事情,就是搭建乙個用來執行軟體的測試環境,測試環境就是執行軟體必須具備的各種軟體和硬體的集合。仔細看看裡面有提到軟體跟硬體,那網路知識呢,沒提到啊?嗐!沒網你想測個qq都難,是不是這個理兒?)
(再來看看知道了這些知識能幹啥?硬體知識:其實著名的「bug名字**」事件就能夠說明了,不懂硬體,根本發現不了那只蟲子啊;軟體知識:你測的就是軟體完了你問為啥要懂軟體知識?好吧我知道你沒問;網路知識:你可能覺得軟體能用就行,網路自己看著辦,為什麼要去了解它呢?簡單點假設:不了解網路知識,介面測試該怎麼做呢?效能測試又怎麼分析效能點呢?得,還是得乖乖學~)
(那只學這三種就夠啦?夠夠的了,不要貪心,總得先學走再學飛呀~)
4.軟體的定義是什麼
軟體=程式+資料+文件,而軟體測試要同時測這三樣
(什麼意思?好巧,我也不知道,來個原始概念幫助理解一下)
(計算機軟體是指計算機系統中的程式、資料及其文件。程式是計算任務的處理物件和處理規則的描述,是由一系列程式組成,能夠實現某個或某些功能的程式集合。程式是由程式設計師開發的實現簡單功能的命令或者指令組合。文件是為了便於了解程式所需的闡明性資料。程式必須裝入機器內部才能工作)
(懂了,這麼個意思,就是不管簡單軟體還是複雜軟體,最後的最終產品都會包括這三樣東西。哇啊,好生硬的解釋噢哈哈~學業繁忙,告辭!)
5.軟體的分類是什麼
1)按功能用途分類
1.系統軟體(包括作業系統、語言處理程式、高階語言系統和各種服務性程式);
2.支援軟體(包括圖形使用者介面、軟體開發工具、軟體測評工具、資料庫管理系統。這類軟體的主要用途,一種是用來對作業系統進行控制,一種是用來開發應用軟體);
3.應用軟體(包括科學和工程計算軟體、文字和資料處理軟體、圖形影象處理軟體、事務管理軟體、遊戲娛樂軟體)
(慣例提問:知道這些分類有啥用?一看就沒認真聽題,前面不都說了不同型別的軟體測試型別也不同麼,導致測試方法也會不同的呀。而且,就算這個作用不明顯好了,好歹還是引出了b/s跟c/s結構,這個才是大頭呢!噢?那給我介紹一下這兩個結構唄,幹啥的?有啥區別?有啥用?奪命連環三問啊你這是!給你一張圖吧,不要也行,隨手一百學到吐~)
1.發現的錯誤越多,軟體質量是否就越好?
a:不是,提高軟體質量靠的是發現並修復。軟體測試只能發現存在的錯誤,並不能保證軟體的質量,並不是發現的錯誤越多,軟體的質量越好。實際上正好相反,測試人員在軟體當中發現的錯誤越多,往往證明軟體的質量越差,隱藏的錯誤越多。所以軟體測試的工作是:開展軟體測試、查詢缺陷,找到缺陷,監督缺陷修復完成
軟體測試的學習之路 軟體質量
為什麼需要軟體測試 1 一款軟體從無到有會經歷很多的開發階段由不同的人來參與開發,所以最終產出的軟體功能可能會存在問題。因此為了保證軟體的功能是可用的,我們必須要進行測試。2 當前的軟體件行業已經不在是功能為王了,不僅僅只盯著軟體的功能是否滿足需求,還會對軟體是否容易上手,執行效率是否 ok 等一系...
軟體測試 軟體測試
通用技能上 1.基本計算機知識 作業系統,資料庫,通訊協議原理,熟悉至少一門程式語言 2.基本軟體測試知識 各種測試理論,測試方 測試用例編寫,缺陷界定標準,軟體質量評估 3.簡單專案管理知識 產品 系統認知 1.熟悉所測產品功能,能夠將產品文件內描述的uc轉化成tc,這個最最基本 2.熟悉所測產品...
軟體測試之路1
測試實踐 一.客戶端測試 現在客戶端越來越豐富,所以測試的內容也越來越多,越來越複雜,如今對測試的需求也是看越來越大 例子 計算器 單機版本,沒有聯網 1.選單,點選客戶端介面的功能,測試功能點,對於不同人群可能有不同的需求,來測試不同的功能 二.web測試 特點 所有的操作都在瀏覽器進行 1.能不...