應(yīng)該很多程序員都遇到過,總會(huì)有人找自己來修電腦,在加班加點(diǎn)的工作之余,還得兼職做電腦維修。 從事軟件行業(yè),和大眾息息相關(guān),但大眾又不太了解,通??吹降男侣劅o非是黑客之類的,遠(yuǎn)程控制別人,或者盜取銀行的錢。因?yàn)榇蠹业牟涣私猓詴?huì)覺得很多事情程序員都可以做,從盜QQ,P圖,硬盤文件恢復(fù),裝系統(tǒng),安裝各種盜版軟件,甚至各種手機(jī)越獄Root。 最重要的是修電腦往往不涉及實(shí)物,給人的感覺是只是打打字,動(dòng)動(dòng)鼠標(biāo),又不花錢,是舉手之勞,理應(yīng)幫忙。如果說不會(huì)修,可能會(huì)遭來一句:“你學(xué)電腦的連電腦都不會(huì)修?”。我去,你還會(huì)開車呢,你會(huì)修車么? 對(duì)此小編只能說,也不能全怪大眾,畢竟人家不了解程序員到底是干什么的,所以小編整理了關(guān)于軟件與軟件測(cè)試的說明,去和別人介紹自己的工作和技能,讓找你修電腦的人都消失吧。 一、程序是怎么回事? 計(jì)算機(jī)就是個(gè)機(jī)器,這個(gè)機(jī)器主要由CPU、內(nèi)存、硬盤和輸入輸出設(shè)備組成。計(jì)算機(jī)上使用著操作系統(tǒng),如Windows或Linux,操作系統(tǒng)上運(yùn)行著各種應(yīng)用程序,如Word, QQ等。 操作系統(tǒng)將時(shí)間分成很多細(xì)小的時(shí)間片,一個(gè)時(shí)間片給一個(gè)程序用,另一個(gè)時(shí)間片給另一個(gè)程序用,并頻繁地在程序間切換。不過,在應(yīng)用程序看來,整個(gè)機(jī)器資源好像都?xì)w他使,操作系統(tǒng)給他提供了這種假象。 應(yīng)用程序看上去能做很多事情,能讀寫文檔,能播放音樂,能聊天,能玩游戲,能看電影 ...... 但本質(zhì)上,計(jì)算機(jī)只會(huì)執(zhí)行預(yù)先寫好的指令而已,這些指令也只是操作數(shù)據(jù)或者設(shè)備。所謂程序,基本上就是告訴計(jì)算機(jī)要操作的數(shù)據(jù)和執(zhí)行的指令序列, 即對(duì)什么數(shù)據(jù)做什么操作。 比如說: 打開文檔,就是將數(shù)據(jù)從磁盤加載到內(nèi)存,然后輸出到顯示器上。聊天,就是從鍵盤接收聊天數(shù)據(jù),放到內(nèi)存,然后傳給網(wǎng)卡,通過網(wǎng)絡(luò)傳給另一個(gè)人的網(wǎng)卡,再?gòu)木W(wǎng)卡傳到內(nèi)存,顯示在顯示器上。 基本上所有數(shù)據(jù)都需要放到內(nèi)存進(jìn)行處理,程序很大一部分工作就是操作在內(nèi)存中的數(shù)據(jù)。 二、軟件測(cè)試是怎么回事? 軟件測(cè)試(Software Testing)的定義 1. 鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程。 2. 是一種實(shí)際輸出與預(yù)期輸出間的審核或者比較過程。 3. 使用人工和自動(dòng)手段來運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是展現(xiàn)預(yù)期與實(shí)際結(jié)果的差別。 一句話定義:在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)錯(cuò)誤,是對(duì)軟件質(zhì)量進(jìn)行評(píng)估的一個(gè)過程。 三、可以從哪些角度對(duì)產(chǎn)品進(jìn)行測(cè)試? 黑盒測(cè)試:把測(cè)試對(duì)象看做一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測(cè)試又叫功能測(cè)試。測(cè)試方法包括:等價(jià)類劃分、邊界值分析、因果圖分析、錯(cuò)誤推測(cè)法、功能圖分析等。 白盒測(cè)試:是對(duì)軟件的過程性細(xì)節(jié)做細(xì)致的檢查。是把測(cè)試對(duì)象看做一個(gè)打開的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。測(cè)試方法包括:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋等。 單元測(cè)試:是對(duì)軟件中的基本組成單位進(jìn)行的測(cè)試,如一個(gè)模塊、一個(gè)過程等等。它是軟件動(dòng)態(tài)測(cè)試的最基本的部分,也是最重要的部分之一,其目的是檢驗(yàn)軟件基本組成單位的正確性。一個(gè)軟件單元的正確性是相對(duì)于該單元的規(guī)約(詳細(xì)設(shè)計(jì))而言的。因此,單元測(cè)試以被測(cè)試單位的規(guī)約為基準(zhǔn)。測(cè)試方法包括:控制流測(cè)試、數(shù)據(jù)流測(cè)試、排錯(cuò)測(cè)試、分域測(cè)試等。 集成測(cè)試:是在軟件系統(tǒng)集成過程中所進(jìn)行的測(cè)試,其主要目的是檢查軟件單位之間的接口是否正確。它根據(jù)集成測(cè)試計(jì)劃,一邊將模塊或其他軟件單位組合成越來越大的系統(tǒng),一邊運(yùn)行該系統(tǒng),以分析所組成的系統(tǒng)是否正確,各組成部分是否合拍。集成測(cè)試的策略主要有自頂向下和自底向上兩種。 系統(tǒng)測(cè)試:是對(duì)已經(jīng)集成好的軟件系統(tǒng)進(jìn)行徹底的測(cè)試,以驗(yàn)證軟件系統(tǒng)的正確性和性能等滿足其規(guī)約所指定的要求,檢查軟件的行為和輸出是否正確并非一項(xiàng)簡(jiǎn)單的任務(wù),它被稱為測(cè)試的“先知者問題”。因此,系統(tǒng)測(cè)試應(yīng)該按照測(cè)試計(jì)劃進(jìn)行,其輸入、輸出和其他動(dòng)態(tài)運(yùn)行行為應(yīng)該與軟件規(guī)約進(jìn)行對(duì)比。軟件系統(tǒng)測(cè)試方法很多,主要有功能測(cè)試、性能測(cè)試、隨機(jī)測(cè)試等。 回歸測(cè)試:是指修改了舊代碼后,重新進(jìn)行測(cè)試以確認(rèn)修改沒有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤,回歸測(cè)試的困難在于不好確定哪些內(nèi)容應(yīng)當(dāng)被重新測(cè)試。 驗(yàn)收測(cè)試:由客戶或最終用戶執(zhí)行,旨在向軟件的購(gòu)買者展示該軟件系統(tǒng)滿足其用戶的需求。它的測(cè)試數(shù)據(jù)通常是系統(tǒng)測(cè)試的測(cè)試數(shù)據(jù)的子集。所不同的是,驗(yàn)收測(cè)試常常有軟件系統(tǒng)的購(gòu)買者代表在現(xiàn)場(chǎng),甚至是在軟件安裝使用的現(xiàn)場(chǎng)。這是軟件在投入使用之前的最后測(cè)試。 Alpha測(cè)試:由用戶在開發(fā)者的場(chǎng)所進(jìn)行,并且在開發(fā)者對(duì)用戶的“指導(dǎo)”下進(jìn)行測(cè)試。開發(fā)者負(fù)責(zé)記錄發(fā)現(xiàn)在錯(cuò)誤和使用中遇到的問題??傊珹lpha測(cè)試是在受控的環(huán)境中進(jìn)行的。 Beta測(cè)試:由軟件的最終用戶們?cè)谝粋€(gè)或多個(gè)客房場(chǎng)所進(jìn)行。與Alpha測(cè)試不同,開發(fā)者通常在Beta測(cè)試的現(xiàn)場(chǎng),因Beta測(cè)試是軟件在開發(fā)者不能控制的環(huán)境中的“真實(shí)”應(yīng)用。用戶Beta測(cè)試過程中遇到的一切問題(真實(shí)在或想像的),并且定期把這些問題報(bào)告給開發(fā)者。接收到在Beta測(cè)試期間報(bào)告的問題之后,開發(fā)者對(duì)軟件產(chǎn)品進(jìn)行必要的修改,并準(zhǔn)備向全體客戶發(fā)布最終的軟件產(chǎn)品。 介紹完這些內(nèi)容后,如果還有人找你修電腦,那你就趕緊給他修唄,別耽誤時(shí)間啦~ |
|