電腦編譯軟體測試
❶ 編譯器本身是如何進行測試的
編譯器最重要的性質就是保證語義的正確。比如,從高級語言翻譯到機器指令之後,指令必須正確的表達原來程序的意思。所以一般編譯器測試都包含一些源程序,用來覆蓋可能出現的各種情況。基本的原則是:原來程序的結果 = 編譯後機器指令運行的結果。機器指令運行的結果很容易知道,運行一下就知道了。可是原來程序的結果你怎麼知道呢?
為了解決這個「原來程序語義」的問題,最好是寫一個解釋器,准確無誤的表達原來的代碼的語義。所以我們的要求就是:
高級語言解釋器(源程序) = 機器執行(機器代碼)
由於處理器其實就是一個用來執行機器代碼的解釋器,這里有一個很美好的對稱關系:
interp1(L1) = interp2(L2)
另外還有一個問題,就是編譯器一般需要經過多個轉化步驟(叫做 pass)才能最後編譯為機器指令。比如,
L2 = pass1(source)
L3 = pass2(L2)
L4 = pass3(L3)
Ln = passN(Ln-1)
machine_code = codegen(Ln)
由於源程序經過了很多步驟猜得到最後的機器指令,如果你使用上面的公式,就會出現以下一些情況:
1. 知道結果錯了,但是卻不知道到底是哪一個 pass 錯了。
2. 結果沒有錯,但是中間卻有 pass 實際上是錯的。但是由於之前的 pass 把輸入程序的一些結構給「優化」掉了,所以錯的那個 pass 其實沒能得到觸發錯誤的那個數據結構。所以測試沒能發現錯誤。如果以後前面的那個 pass 被修改,錯誤就會暴露出來。這是非常難以發現的潛伏的危險。
為了防止這些情況出現,一些編譯器(比如 Chez Scheme 和 Kent Dybvig 的課程編譯器)使用了對每一個 pass 進行測試的做法。具體的方法就是為每一個中間語言都寫一個解釋器,把這語言的語義完全的表示出來。這樣我們就需要檢查一組等式:
L2 = pass1(source)
高級語言編譯器(源程序) = interp2(L2) // 測試 pass1 的正確性
L3 = pass2(L2)
interp2(L2) = interp3(L3) // 測試 pass2 的正確性
這樣一來我們就能獨立的判斷每一個 pass 的正確性了。
這些是基本的語義測試原理。另外除了語義,可能還有一些「表面」一些的測試,它們看代碼本身,而不只看它的語義。比如尾遞歸優化的測試應該確保輸出程序的尾遞歸得到正確的處理,等等。這些是語義測試檢查不到的,因為尾遞歸沒有正確處理的程序大部分也能輸出正確的結果。
普通的單元測試方法也可以用來測試一些編譯器里的輔助函數,但那些不是編譯器特有的,所以就不講了。
另外,就像所有測試的局限性一樣,你沒法枚舉所有可能出現的輸入,所以以上的測試方法其實也不能保證編譯器的完全正確。
❷ 怎樣在筆記本上編譯滲透測試的軟體,並導入手機里
你好,其實我們要想在筆記本上面編輯滲透一些測試的軟體的話,並導入手機裡面都是可以通過程序來完成的,所以說有專業的程序賬號就可以
❸ 做軟體測試需要具備哪些技能
1、 軟體測試基礎知識:
測試計劃編寫、設計測試用例、編寫測試報告、編寫BUG報告單、跟蹤BUG修復情況、還需要良好的溝通能力、以及各種測試階段所使用的測試方法、單元測試、功能測試、集成測試、系統測試等等、CMMI /ISO9001
2、 各種測試工具的使用:
我們在測試的工作中為了能夠提高工作效率進程會用到很多工具、QTP、LR、QC、TD、Bugfree、VSS、SVN等等工具、雖然說工具不是萬能的但是工具能為我們提高工作效率所以不能吧工具當神一樣看待、但是必須得會熟練的使用
3、 操作系統相關知識:
Windows、linux、uinx這些都必須會使用、而且不僅僅是簡單的操作、一般的服務管理、注冊表編輯、命令行操作都需要會、可以想像下一個連apache服務都不會安裝配置的人、誰能想像你可以做好基於apache環境的測試工作、什麼?不知道怎麼查看磁碟壓力、IO數據。windows linux都有提供自帶的工具可用於查看這些數據、perfmon、top什麼的。
4、 資料庫知識:
現在Oracle的DBA待遇比一般的開發人員待遇還高就知道資料庫在企業中的重要性了、作為測試人員雖然不需要有DBA的能力、但是基本的資料庫操作你必須得會把、不管是Oracle、DB2、MSsql還是mysql最少都應該能熟悉使用其中的一二。
5、 計算機硬體知識:
做過性能測試的朋友都知道在性能測試過程中硬體性能也是一個非常重要的指標、CPU、內存、IO、帶寬等等、如果你是做硬體測試的。那麼就更不用說了。交換機、路由器、防火牆這些設備都需要有所了解。
6、 網路協議:
如果你還知道TCP和UDP有什麼不一樣的話請趕快去補充點知識吧、互聯網時代、一切都通過網路傳輸、常用協議必須得了解、曾經面試了一個測試工程師做了2年的測試居然不知道自己測試軟體使用什麼協議、這樣的人是你的話你敢招么?
7、 開發語言即代碼編寫能力:
雖然不會寫代碼也能做測試、但是如果你想做到高級測試工程師以上、那麼代碼編寫能力就是必選項、如果不會寫代碼、那麼你不可能成為高級測試。高級測試工程師的一部分工作就是在寫測試工具。雖然測試也需要寫代碼但不需要和開發一樣那麼精通某一門語言、可是測試卻需要了解很多門開發語言(舉一個簡單的例子:你現在所在的項目從C++語言、2年後你換工作了、新公司的開發語言是java或者是VB什麼的)所以在開發語言中測試需要更廣的學習。
8、 行業知識:
行業知識之所以寫在最後面是因為前面的7條我們都可以通過學習來掌握、但是唯獨行業知識卻只能通過工作經驗來積累、不要說你去看幾本書就知道通信行業、醫療行業、或者是航天行業、你認為在書本上面能學到么?
由於行業知識的特殊性所以建議朋友們不要頻繁的跳槽、經驗的積累是需要時間來沉澱的。
9、 具有一定的美學觀:
這個說起來比較拗口一點、簡單來說不管是開發活動還是測試活動、最後的目標就是將產品推向市場、而且得到用戶的認可。所以如果產品在需求分析階段就出現了偏離用戶航道、那麼就算測試 開發做得再好這個項目也是一樣會失敗。所以各位如果有幸能夠參加需求評審的話、請不要吝嗇你的言論。
10、請不要忘記時刻學習著:
這點我相信大家應該都能理解所以不用寫什麼:僅此一點「不學習就會落後」
總結:說了那麼多技能或者是說是需要掌握的技術、如果你沒有一顆發現缺陷之美的心態、沒有一顆以提高質量為前提來投入工作中、那麼就算你其他做得再好也不過是萬千軟體測試從業人員中的一枚。測試活動大部分用於發現缺陷、而發現缺陷之後的工作尤為重要:怎麼樣從發現缺陷到提高質量。
❹ 做軟體測試員需要學哪些專業知識
第一步,測試基礎:
測試基礎是軟體測試最最最重要的部分,只要你是做測試,不管是什麼測試,測試的基礎、理論知識都是必須學會的。大概就包括:測試計劃編寫、設計測試用例、編寫測試報告、編寫BUG報告單、跟蹤BUG修復情況、還需要良好的溝通能力、以及各種測試階段所使用的測試方法、單元測試、功能測試、集成測試、系統測試等。
第二步:學習腳本語言
如:python語言,當然python 是一門相對簡單的計算機語言,考慮長遠發展,需要了解C語言或者java。都說C語言最難,但是用得確實也多。
第三步:學習軟體測試工具
學習軟體測試工具並不難,只是需要我們去系統的學習。比如性能測試工具loadrunner,自動化測試工具selenium、Appium,介面測試Jmeter、Postman等。雖然說工具不是萬能的但是工具能為我們提高工作效率,所以必須得會熟練的使用。最關鍵的一點,是要結合項目具體去操作,實踐出真知,理論知識在實際項目中才能得到鞏固。
第四步:計算機硬體知識
做過性能測試的都知道在性能測試過程中硬體性能也是一個非常重要的指標、CPU、內存、IO、帶寬等等、如果你是做硬體測試的。那麼就更不用說了。交換機、路由器、防火牆這些設備都需要有所了解。
第五步:資料庫測試
MySQL資料庫
MySQL簡介、命令行工具以及數據管理、MySQL數據查詢(條件、分組、聚合函數、排序、分頁、連接查詢、自關聯、子查詢)、內置函數、項目練習、數據分表、Python操作MySQL。
Redis資料庫
Redis簡介、客戶端和伺服器、數據類型(string、hash、list、set、zset)、各種數據類型操作、Python操作Redis、主從、集群。
第六步:項目實戰
最好參與真實項目的測試工作,積累真實項目的測試經驗。
成為優秀軟體測試員之提升條件,如果你想成為一個更優秀的軟體測試員的話,除了上面那些,你也最好能夠具備開發語言即代碼編寫能力,雖然不會寫代碼也能做測試、但是如果你想做到高級測試工程師以上、那麼代碼編寫能力就是必選項、如果不會寫代碼、那麼你不可能成為高級測試。高級測試工程 師的一部分工作就是在寫測試工具。雖然測試也需要寫代碼但不需要和開發一樣那麼精通某一門語言、可是測試卻需要了解很多門開發語言(舉一個簡單的例子:你 現在所在的項目從C++語言、2年後你換工作了、新公司的開發語言是Java或者是VB什麼的)所以在開發語言中測試需要更廣的學習。
成為軟體測試員之必備條件,就是你一定要有良好的心態。心要靜、細心耐心、責任心。心靜不下來無法對bug展開發向思維及拓展想像。任何一個測試最先面對的心理壓力就是重復性的勞動。在你的測試生涯中,一定會碰見很多心理的考驗,自己對於質量心裡沒有底、或者由於產品發布問題或者達到了測試瓶頸時候的困惑等。每個人都有自己的背景以及性格,往往對於測試來講,就是考驗心理素質的時候,這個時候就需要你自己不斷地去克服這些心理
❺ 我是應屆生,我想知道做軟體測試需要哪些知識具體點!十分感謝~
計算機硬體知識、軟體工程理論、軟體體系要懂,資料庫也得懂,編程語言也要懂,像流程圖,甘特圖,UML之類的要知道,還有測試技術。這方面有一個全國性的考試:全國計算機技術與軟體專業技術資格(水平)考試,是中級的,你可以試試,下面是考試大綱:
一、考試說明
1.考試要求:
(1)熟悉計算機基礎知識;
(2)熟悉操作系統、資料庫、中間件、程序設計語言基礎知識;
(3)熟悉計算機網路基礎知識;
(4)熟悉軟體工程知識,理解軟體開發方法及過程;
(5)熟悉軟體質量及軟體質量管理基礎知識;
(6)熟悉軟體測試標准;
(7)掌握軟體測試技術及方法;
(8)掌握軟體測試項目管理知識;
(9)掌握C語言以及C++或Java語言程序設計技術;
(10)了解信息化及信息安全基礎知識;
(11)熟悉知識產權相關法律、法規;
(12)正確閱讀並理解相關領域的英文資料。
2.通過本考試的合格人員能在掌握軟體工程與軟體測試知識的基礎上,運用軟體測試管理方法、軟體測試策略、軟體測試技術,獨立承擔軟體測試項目;具有工程師的實際工作能力和業務水平。
3.本考試設置的科目包括:
(1)軟體工程與軟體測試基礎知識,考試時間為150分鍾,筆試,選擇題;
(2)軟體測試應用技術,考試時間為150分鍾,筆試,問答題。
二、考試范圍
考試科目1:軟體工程與軟體測試基礎知識
1.計算機系統基礎知識
1.1計算機系統構成及硬體基礎知識
●計算機系統的構成
●處理機
●基本輸入輸出設備
●存儲系統
1.2操作系統基礎知識
●操作系統的中斷控制、進程管理、線程管理
●處理機管理、存儲管理、設備管理、文件管理、作業管理
●網路操作系統和嵌入式操作系統基礎知識
●操作系統的配置
1.3資料庫基礎知識
●資料庫基本原理
●資料庫管理系統的功能和特徵
●資料庫語言與編程
1.4中間件基礎知識
1.5計算機網路基礎知識
●網路分類、體系結構與網路協議
●常用網路設備
●Internet基礎知識及其應用
●網路管理
1.6程序設計語言知識
●匯編、編譯、解釋系統的基礎知識
●程序設計語言的基本成分(數據、運算、控制和傳輸、過程(函數)調用)
●面向對象程序設計
●C語言以及C++(或Java)語言程序設計基礎知識
2.標准化基礎知識
●標准化的概念(標准化的意義、標准化的發展、標准化機構)
●標準的層次(國際標准、國家標准、行業標准、企業標准)
●標準的類別及生命周期
3.信息安全知識
●信息安全基本概念
●計算機病毒及防範
●網路入侵手段及防範
●加密與解密機制
4.信息化基礎知識
●信息化相關概念
●與知識產權相關的法律、法規
●信息網路系統、信息應用系統、信息資源系統基礎知識
5.軟體工程知識
5.1軟體工程基礎
●軟體工程概念
●需求分析
●軟體系統設計
●軟體組件設計
●軟體編碼
●軟體測試
●軟體維護
5.2軟體開發方法及過程
●結構化開發方法
●面向對象開發方法
●瀑布模型
●快速原型模型
●螺旋模型
5.3軟體質量管理
●軟體質量及軟體質量管理概念
●軟體質量管理體系
●軟體質量管理的目標、內容、方法和技術
5.4軟體過程管理
●軟體過程管理概念
●軟體過程改進
●軟體能力成熟度模型
5.5軟體配置管理
●軟體配置管理的意義
●軟體配置管理的過程、方法和技術
5.6軟體開發風險基礎知識
●風險管理
●風險防範及應對
5.7軟體工程有關的標准
●軟體工程術語
●計算機軟體開發規范
●計算機軟體產品開發文件編制指南
●計算機軟體需求規范說明編制指南
●計算機軟體測試文件編制規范
●計算機軟體配置管理計劃規范
●計算機軟體質量保證計劃規范
●數據流圖、程序流程圖、系統流程圖、程序網路圖和系統資源圖的文件編制符號及約定
6.軟體評測師職業素質要求
●軟體評測師職業特點與崗位職責
●軟體評測師行為准則與職業道德要求
●軟體評測師的能力要求
7.軟體評測知識
7.1軟體測試基本概念
●軟體質量與軟體測試
●軟體測試定義
●軟體測試目的
●軟體測試原則
●軟體測試對象
7.2軟體測試過程模型
●V模型
●W模型
●H模型
●測試模型的使用
7.3軟體測試類型
●單元測試、集成測試、系統測試
●確認測試、驗收測試
●開發方測試、用戶測試、第三方測試
●動態測試、靜態測試
●白盒測試、黑盒測試、灰盒測試
7.4軟體問題分類
●軟體錯誤
●軟體缺陷
●軟體故障
●軟體失效
7.5測試標准
7.5.1GB/T 16260.1—2003軟體工程 產品質量 第1部分:質量模型
7.5.2GB/T 18905.1—2002軟體工程 產品評價 第1部分:概述
7.5.3GB/T 18905.5—2002軟體工程 產品評價 第5部分:評價者用的過程
8.軟體評測現狀與發展
●國內外現狀
●軟體評測發展趨勢
9.專業英語
●正確閱讀並理解相關領域的英文資料
考試科目2:軟體測試應用技術
1.軟體生命周期測試策略
1.1設計階段的評審
●需求評審
●設計評審
●測試計劃與設計
1.2開發與運行階段的測試
●單元測試
●集成測試
●系統(確認)測試
●驗收測試
2.測試用例設計方法
2.1白盒測試設計
●白盒測試基本技術
●白盒測試方法
2.2黑盒測試用例設計
●測試用例設計方法
●測試用例的編寫
2.3面向對象測試用例設計
●測試方法選擇的策略
●黑盒測試方法選擇策略
●白盒測試方法選擇策略
●面向對象軟體的測試策略
3.軟體測試技術與應用
3.1軟體自動化測試
●軟體自動化測試基本概念
●選擇自動化測試工具
●功能自動化測試
●負載壓力自動化測試
3.2面向對象軟體的測試
●面向對象測試模型
●面向對象分析的測試
●面向對象設計的測試
●面向對象編程的測試
●面向對象的單元測試
●面向對象的集成測試
●面向對象的系統測試
3.3負載壓力測試
●負載壓力測試基本概念
●負載壓力測試解決方案
●負載壓力測試指標分析
●負載壓力測試實施
3.4 Web應用測試
●Web應用的測試策略
●Web應用設計測試
●Web應用開發測試
●Web應用運行測試
3.5網路測試
●網路系統全生命周期測試策略
●網路模擬技術
●網路性能測試
●網路應用測試
3.6安全測試
●測試內容
●測試策略
●測試方法
3.7兼容性測試
●硬體兼容性測試
●軟體兼容性測試
●數據兼容性測試
●新舊系統數據遷移測試
●平台軟體測試
3.8易用性測試
●功能易用性測試
●用戶界面測試
3.9文檔測試
●文檔測試的范圍
●用戶文檔的內容
●用戶文檔測試的要點
●用戶手冊的測試
●在線幫助的測試
4.測試項目管理
●測試過程的特性與要求
●軟體測試與配置管理
●測試的組織與人員
●測試文檔
●軟體測試風險分析
●軟體測試的成本管理
三、題型舉例
(一)選擇題
●下面的哪一項測試步驟中需要進行局部數據結構測試:(1)
(1)A.單元測試B.集成測試C.確認測試D.系統測試
●軟體的六大質量特性包括:(2)
(2)A.功能性、可靠性、可用性、效率、可維護、可移植
B.功能性、可靠性、可用性、效率、穩定性、可移植
C.功能性、可靠性、可擴展性、效率、穩定性、可移植
D.功能性、可靠性、兼容性、效率、穩定性、可移植
(二)問答題
1.白盒測試方法中的代碼檢查法需要重點考慮代碼的執行效率,閱讀以下兩個循環,回答問題1和問題2。
循環1:
for (i=0;i<n;i++)
{
if(condition)
DoSomething();
else
DoOtherthing();
}
循環2:
if(condition)
{
for (i=0;i<n;i++)
DoSomething()
}
else
{
for (i=0;i<n;i++)
DoOtherthing();
}
問題1:循環1的優點和缺點。
問題2:循環2的優點和缺點。
2.請簡述軟體系統負載壓力測試的主要目的。
❻ 什麼是軟體測試環境和正式開發環境
測試環境就是做測試的環境,開發環境就是做開發的環境。
軟體開發環境是指在基本硬體和宿主軟體的基礎上,為支持系統軟體和應用軟體的工程化開發和維護而使用的一組軟體,簡稱SDE。它由軟體工具和環境集成機制構成,前者用以支持軟體開發的相關過程、活動和任務,後者為工具集成和軟體的開發、維護及管理提供統一的支持。
測試環境是指測試運行其上的軟體和硬體環境的描述,以及任何其它與被測軟體交互的軟體,包括驅動和樁。測試環境是指為了完成軟體測試工作所必需的計算機硬體、軟體、網路設備、歷史數據的總稱。
(6)電腦編譯軟體測試擴展閱讀
軟體測試環境注意事項
1、一個應用程序的外觀設計並不是一切。功能測試也是開發者需要關注的重要問題之一,特別是整體用戶體驗。如果用戶在使用過程中沒有達到預期的功能和業務需求,那麼UI外觀設計的再完美也仍會面臨被卸載的危險。
2、測試要確保最大的設備和系統覆蓋率,測試要確保最大的設備覆蓋率,盡量在不同的操作系統和設備製造商中進行。發現錯誤並及時進行修復,才是測試真正的意義。
3、探索性測試重要,但不能完全依賴。探索性測試是整體測試策略的重要組成部分,可快速識別致命性bug。探索性測試需要測試人員熟悉應用程序、目標用戶的典型行為以及測試方法。
❼ C語言中編譯 生成 調試 測試 運行各是什麼意思有什麼區別
C語言中編譯 生成 調試 測試 運行的區別如下:
區別一:
從編譯方面來看:
編譯依賴於編譯器,英文是compile, vc中這一過程是將源代碼轉換成目標文件,如:obj文件,rc文件等。
區別二:
從生成方面來看:
生成指的是連接的過程,英文是build,依賴於鏈接器。vc中在這一階段將所有的目標文件和所有需要用到的組件組合成一個整體,例如需要生成的是windows系統下的PE可執行文件,鏈接器會依照特定格式將目標文件組合,最後生成PE格式的,exe或dll文件。
區別三:
從調試方面來看:
調試是所有或部分代碼編寫完成後,讓程序在調試器中運行,用這種手段對程序進行分析,找出並修正潛在問題。
區別四:
從運行方面來看:
運行就是讓程序在系統中運行。
(7)電腦編譯軟體測試擴展閱讀:
C語言的介紹:
C語言是目前流行的通用程序設計語言,是計算機專業人員和計算機愛好者開發軟體的首選開發工具。C語言源程序必須經過某種編譯工具翻譯成為目標機器語言程序才能夠在計算機上執行。
然而隨著程序編寫規模的擴大,順利編寫出正確的程序絕非一件容易的事情,早期的許多編譯工具僅僅提供翻譯功能,已滿足不了應用的要求,編程人員需要-種功能全面並高度集成的編譯環境。
程序是一段具有一定功能的代碼,編寫程序的目的是解決問題。當程序人員寫完程序後,其實並不起作用,只有當編寫的程序經過一系列的處理後,能夠解決問題時。
序才成為真正的程序,這一系列的處理過程,-般就是編輯、編譯、連接、調試與運行等。目前最成熟的C語言集成環境主要有Turbo C2.0和Turbo C 3.0( 簡稱TC30)或Borland C++3.1( 簡稱BC31)以及Visual C++ 6.0。
❽ 學好軟體測試都要掌握些什麼會不會用到C語言和數據結構
首先,要有寬泛的計算機基礎知識。微機原理,數據結構,資料庫,操作系統原理,編譯原理,邏輯,編程語言,網路,等等,都要系統地學習過。都精通不大可能,因為人的興趣都不相同,但是,這些功課的基本知識點是應當了解的。我們在談到職業的類別的時候,我們可以說C程序員,C#程序員,Java程序員,而沒有C測試員,C#測試員,Java測試員,程序員可以只擅長某一門編程語言,測試員卻不行。為什麼呢?測試員是代表用戶的,在做測試的時候,他(她)需要考慮到方方面面的事情。例如對於一個用C寫的上網撥號程序,測試員需要考慮:
(1) 程序的功能是否正確;(要求計算機知識)
(2) 是否符合用戶的使用習慣;(要求界面設計知識和換位思考能力)
(3) 性能是否滿足要求,例如長時間使用;穩定性;(要求深入的計算機知識)
(4) 是否能夠滿足用戶可能的不同操作系統的要求;(要求計算機知識)
(5) 如果在全球發布,是否滿足不同語言和文化的需求;(要求軟體國際化測試知識)
(6) 如何搭建測試環境;(動手能力,硬體知識)
(7) 做代碼檢查;(比較深入的C語言知識)
(8) …
所以,各方面都了解一點,你在做測試的過程當中你會感覺順手的多。如果某寫方面還差一些,沒有關系,計算機行業的特點就是邊做邊學,只要是個有心人,學習是很快的。
其次,要掌握一門編程語言。有的朋友可能會說,我就是不願意做編程才來做測試的,怎麼測試還有這么一個要求?我要嘗試說服你:)。我的理由有兩個:
1. 只有知道怎麼做一個軟體產品,才能真正懂得這個產品。而只有真正懂得了產品,才能做好測試。一行代碼不會,你會始終是個門外漢。不要滿足於點滑鼠,而去嘗試著打開我們面前的黑盒子。
2. 自動化測試技術需要編程技術。自動化測試是軟體測試的一個發展方向,一方面很多測試工具都需要人工干預,編寫代碼;另一方面在有的情況下需要自己編寫測試工具。
對於測試員來說,編程技術不要求精通,但要會。
再次,學好英語。在現階段,我們只能承認,在計算機方面,英語國家領先。有很多的資料都是英語的,如果僅僅局限在中文資料方面,會影響你的淵博程度:)。舉一個簡單的例子,Windows操作系統會捕捉到一些程序或者操作系統內部的異常,你可以根據這個異常到微軟網站上去查找錯誤原因和解決辦法,其中有很大一部分資料就是英文的,因為還沒有翻譯過來或者以後也不會翻譯的。
以上所說的幾點看法,都是在計算機行業裡面打轉,下面說幾個「虛」的要求吧。
1. 鍛煉出一雙測試的眼睛。我的一個朋友,她也是做軟體測試的,她說,有一次她和她老公去買筆記本電腦,她一眼就看出液晶屏上有幾個壞點,而她老公卻看不出來。她說,這要歸功於她有一雙測試的眼睛。測試的眼睛,就是對問題特別敏感,能夠發現常人發現不了的問題。測試員就是要找軟體中的問題,有了這雙眼睛會讓你收益非淺。耐心,細心和經驗,會有助於我們到達這個要求。
2.平和的心態。從心理學上說,每個人都不喜歡別人對自己挑毛病,程序員也是這樣。所以,要以平和的心態去看待發現的軟體問題,以平和的心態去和程序員交流。千萬不要以為自己發現了幾個問題,就可以責怪程序員,或者沖過去罵他們一頓。也不要在背後談論誰誰誰不行,bug太多。一個項目是大家共同做的,需要舉集體之力才能做完。我們測試員發現的問題多,表明項目的風險又少了一點,應該高興才是。如果你的脾氣不好,可能這個惡名會掩蓋你的真才實學,很可惜的。
❾ 計算機軟體測試的,想從自學編程,有了解的給我些建議(高分)
你好,自學編程建議從C語言學起,可以說60%~80%的程序員都是從C語言開始的。
眾所周知,編程語言分為結構化程序語言和面向對象的程序語言,其中結構化程序語言要比面向對象的要簡單,語法要簡單一些,而且也容易理解一點,C語言是經典的結構化編程語言,易學易用,它的編譯器turbo
c也非常容易使用,所以非常適合作為初學者的入門語言。
學完C語言之後可以縱向擴展,學過C之後再轉入C++、C#或者是java的學習,C++和C#就不用說了,它們都是在C語言基礎之上建立的面向對象語言,而Java與C語言在語法上也有一定的相似性,所以學完C之後再轉入Java的學習也是順理成章的事。
當然一開始就上面向對象的語言不是說不可以,比如說VB還是很簡單的,VB做一些簡單的系統也是非常實用的,這個就要看怎麼選擇了,如果是為了短期能做點東西比如說做個系統,那麼VB是一個不錯的選擇,但還是建議你把基礎打牢,從C語言學起,學完C之後學其他的語言就很容易了。
HTML只是一門標記語言,很容易掌握,如果需要用的話,可以臨時突擊一下,一個星期內估計就能會使用了,所以我覺得沒必要去刻意的學它。