網(wǎng)頁(yè)開(kāi)發(fā)的流程青島百度seo
1???概述
在之前的文章里面提到過(guò):做自動(dòng)化的首要本領(lǐng)就是要會(huì)?透過(guò)現(xiàn)象看本質(zhì)?,落實(shí)到實(shí)際的IT工作中就是?透過(guò)界面看數(shù)據(jù)。
掌握上面的這樣的本領(lǐng)可不是容易的事情,必須要有扎實(shí)的計(jì)算機(jī)理論基礎(chǔ),才能看到深層次的本質(zhì)東西。
2???應(yīng)用軟件邏輯結(jié)構(gòu)
數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)?可能是最典型的網(wǎng)絡(luò)應(yīng)用程序了,關(guān)于它的軟件架構(gòu)如下:
一般在邏輯上分為4層:
用戶(hù)界面層 UI
為終端用戶(hù)提供交互的人機(jī)界面
業(yè)務(wù)邏輯層 BLL
將數(shù)據(jù)庫(kù)抽象出來(lái)的對(duì)象進(jìn)行拼接成具體的業(yè)務(wù)邏輯對(duì)象,并對(duì)之進(jìn)行流程組織
數(shù)據(jù)訪問(wèn)層 DAL
對(duì)DB層做的ORM,讓上層應(yīng)用程序以對(duì)象的方式操控?cái)?shù)據(jù)庫(kù)
數(shù)據(jù)持久層 DB
存儲(chǔ)數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行持久化,不同的客戶(hù)端進(jìn)行數(shù)據(jù)共享
在傳統(tǒng)的 C/S 架構(gòu)下應(yīng)用程序(例如,Windows下的客戶(hù)端應(yīng)用程序),一般都是一臺(tái)中央數(shù)據(jù)庫(kù)服務(wù)器( DB ),然后對(duì)應(yīng)N臺(tái)客戶(hù)端(DAL-BLL-UI )。
對(duì)于 初級(jí)測(cè)試人員 來(lái)說(shuō),可能對(duì)軟件的理解只能停留在 UI 層,于是在測(cè)試時(shí)候能做到的事情就是:日復(fù)一日,年復(fù)一年地用鼠標(biāo) 點(diǎn)點(diǎn)點(diǎn)了。
3???互聯(lián)網(wǎng)軟件架構(gòu)
在前一部分里面提到的應(yīng)用軟件的基本架構(gòu),雖然是在?“C/S”?時(shí)代提出來(lái)的,但是后面卻一直延續(xù)到現(xiàn)在 。直到今天最普遍的?“ABC/S”?模式:
- App/Server
- Browser/Server
- Client/Server
其實(shí)本質(zhì)上就把UI這一層放在客戶(hù)端,把UI以下放在Server端。
客戶(hù)端在不同的平臺(tái)下面有不同的表現(xiàn)形式,就形成了現(xiàn)在流行的所謂的?“ABC/S”?模式的架構(gòu),這個(gè)基本上已經(jīng)成為目前的互聯(lián)網(wǎng)產(chǎn)品的標(biāo)配了。具體的架構(gòu)如下:
服務(wù)器端和客戶(hù)端之間采用 Http/Https 的通訊協(xié)議,數(shù)據(jù)交換的格式為 Xml/Json 格式。
基于以上模式之后,軟件測(cè)試的方法論就發(fā)生了一些變化:
有了 性?xún)r(jià)比 最高的“基于于通訊編碼格式的接口測(cè)試”,屬于花20%就能解決80%的工作
接口測(cè)試完全可以進(jìn)行自動(dòng)化,而且不必強(qiáng)制和開(kāi)發(fā)項(xiàng)目使用相同的語(yǔ)言,可以統(tǒng)一使用效率較高的腳本語(yǔ)言
接口 天然就具有穩(wěn)定性的需求,所以自動(dòng)化測(cè)試項(xiàng)目不會(huì)存在反復(fù)折騰的現(xiàn)象
接口測(cè)試人員成為了眾多平臺(tái)之間的 裁判員
接口規(guī)范來(lái)自設(shè)計(jì)文檔,可以實(shí)行 設(shè)計(jì)產(chǎn)生測(cè)試,測(cè)試驅(qū)動(dòng)開(kāi)發(fā) 的規(guī)范模式
有了抽象成數(shù)據(jù)的能力之后,那么很多看到的東西就可以進(jìn)行合理的等價(jià)轉(zhuǎn)換了:
web頁(yè)面背景的是紅色
等價(jià)于:背景元素的background的顏色屬性是 #FF0000
按鈕上顯示的字為"Submit"
等價(jià)于:按鈕元素的value值為 Submit
用戶(hù)執(zhí)行一次充值活動(dòng)充了20塊錢(qián),他的賬號(hào)上就多了20元
等價(jià)于:以20為參數(shù)調(diào)用充值接口,再對(duì)比前后兩次調(diào)用賬號(hào)查詢(xún)的接口,相差剛好是充值的參數(shù)值
在數(shù)據(jù)層次編程進(jìn)行比較就變得很容易了,因?yàn)檫@些都是計(jì)算機(jī)擅長(zhǎng)處理的領(lǐng)域了,自動(dòng)化也很自然地實(shí)現(xiàn)了。
4???更底層的原理
前面講到了對(duì)把軟件項(xiàng)目從看到的具體的界面往底層一點(diǎn)抽象成數(shù)據(jù)的方法。其實(shí)還有一些更底層,更絕的,對(duì)軟件的數(shù)據(jù)還可以更底層一點(diǎn)和物理世界建立關(guān)聯(lián)(這已經(jīng)不好用“抽象”或者“具象”來(lái)描述了)。
本部分的內(nèi)容,已經(jīng)和應(yīng)用軟件的測(cè)試的話(huà)題有點(diǎn)扯遠(yuǎn)了,純粹就當(dāng)科普吧。
從更廣泛的角度來(lái)看一個(gè)計(jì)算機(jī)系統(tǒng),它給人的體驗(yàn)上本質(zhì)上是做了如下的處理:
人的所有的直觀體驗(yàn)都是來(lái)自于對(duì)模擬量(物理量)的體驗(yàn),人的交互輸入也是來(lái)自于模擬量的輸入。
人敲擊鍵盤(pán)向計(jì)算機(jī)系統(tǒng)輸入文字,鍵盤(pán)將不同一鍵位產(chǎn)生的脈沖電流傳入計(jì)算機(jī)系統(tǒng),計(jì)算機(jī)系統(tǒng)通過(guò)芯片和驅(qū)動(dòng),將這些電流信號(hào)轉(zhuǎn)化成數(shù)字信號(hào),然后交付數(shù)字芯片處理。這樣人就完成了 信息的輸入 。
計(jì)算機(jī)系統(tǒng)對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算,存儲(chǔ),傳輸?shù)鹊?#xff0c;最后在LCD顯示器上通過(guò)點(diǎn)亮不同位置的點(diǎn)陣,以形成光學(xué)的模擬量輸出,傳送到人的眼睛里面,人就完成了 信息的獲取 。
以上的例子可以簡(jiǎn)化為:力學(xué)物理量產(chǎn)生電學(xué)物理量進(jìn)行輸入,計(jì)算機(jī)數(shù)字系統(tǒng)處理后,光學(xué)物理量進(jìn)行輸出。
對(duì)于計(jì)算機(jī)系統(tǒng),輸入和輸出都是多樣的:
輸入裝置
各種傳感器都可以作為輸入的主力,比如現(xiàn)在蓬勃發(fā)展的智能硬件,以及炒得火熱的 物聯(lián)網(wǎng)。
輸出裝置
除了光學(xué)的LCD顯示器,還有聲學(xué)的擴(kuò)音器,還有滾動(dòng)的輪式機(jī)械力學(xué),還有人形走路的機(jī)械手臂力學(xué)設(shè)備。
這些東西都已經(jīng)是現(xiàn)在互聯(lián)網(wǎng)行業(yè)很流行的元素了。
由于電子技術(shù)和通訊領(lǐng)域往往檢測(cè)的都是物理量,肉眼是很難量化的,所以測(cè)試門(mén)檻會(huì)很高,但是各種檢測(cè)儀器反而發(fā)展得相當(dāng)好,自動(dòng)化程度相當(dāng)高。反觀IT行業(yè)的上層的應(yīng)用軟件層,人卻都過(guò)多的依賴(lài)于人工去操作,肉眼去觀察了,反而忽視了自動(dòng)化,導(dǎo)致測(cè)試行業(yè)一直人員素質(zhì)不高,技術(shù)實(shí)力太弱,這顯然是很不可取的,至少是很不符合目前軟件工程行業(yè)的時(shí)代需求的。
5???小結(jié)
本文對(duì)應(yīng)用軟件進(jìn)行了邏輯上的分層,來(lái)闡述了軟件自動(dòng)化測(cè)試和基本原理,在文章的后半部分對(duì)目前流行的?智能硬件?所涉及的電子技術(shù)的自動(dòng)化測(cè)試也進(jìn)行了簡(jiǎn)單的探討,希望能夠給從來(lái) 自動(dòng)化測(cè)試的人也有一點(diǎn)啟發(fā)。
后面的系列文章將從技術(shù)層次來(lái)落地這些理論。
總結(jié)起來(lái),對(duì)于想入這行而且想有深入發(fā)展的人,有如下幾個(gè)結(jié)論和建議:
軟件的本質(zhì)不是界面而是數(shù)據(jù)
要了解軟件的本質(zhì),必須必須要有良好的計(jì)算機(jī)基礎(chǔ)
從事互聯(lián)網(wǎng)行業(yè)的人可以熟悉linux,盡早建立這種 軟件即數(shù)據(jù) 的世界觀
接口做自動(dòng)化測(cè)試是最投入回報(bào)比最高的(來(lái)自Google的工程師的觀點(diǎn))
要想做好自動(dòng)化測(cè)試,必須有軟件開(kāi)發(fā)能力和系統(tǒng)的設(shè)計(jì)能力
寫(xiě)到這里,最后容我 “安利” 一下 Linux ,因?yàn)橄啾?MacOS 和 Windows 系統(tǒng),Linux 在界面這一塊做得不太好,但是卻有強(qiáng)大的CLI交互,支持強(qiáng)大的腳本編寫(xiě),對(duì)于實(shí)現(xiàn)自動(dòng)化是很有幫助的。
(未完,待續(xù)。。。)
后續(xù)將開(kāi)始繼續(xù)書(shū)寫(xiě) python的自動(dòng)化工具和編程應(yīng)用了。
最后感謝每一個(gè)認(rèn)真閱讀我文章的人,禮尚往來(lái)總是要有的,雖然不是什么很值錢(qián)的東西,如果你用得到的話(huà)可以直接拿走:
軟件測(cè)試面試小程序
被百萬(wàn)人刷爆的軟件測(cè)試題庫(kù)!!!誰(shuí)用誰(shuí)知道!!!全網(wǎng)最全面試刷題小程序,手機(jī)就可以刷題,地鐵上公交上,卷起來(lái)!
涵蓋以下這些面試題板塊:
1、軟件測(cè)試基礎(chǔ)理論 ,2、web,app,接口功能測(cè)試 ,3、網(wǎng)絡(luò) ,4、數(shù)據(jù)庫(kù)?,5、linux
6、web,app,接口自動(dòng)化 ,7、性能測(cè)試?,8、編程基礎(chǔ),9、hr面試題 ,10、開(kāi)放性測(cè)試題,11、安全測(cè)試,12、計(jì)算機(jī)基礎(chǔ)
這些資料,對(duì)于【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴上萬(wàn)個(gè)測(cè)試工程師們走過(guò)最艱難的路程,希望也能幫助到你!???