軟件產(chǎn)品
軟件是一種邏輯產(chǎn)品,不是客觀的實(shí)體,具有無形性呢撞,它是腦力勞動的結(jié)晶,它以程序和文檔的形式保存在作為計算機(jī)存儲器的磁盤和光盤介質(zhì)上饰剥,通過操作計算機(jī)才能體現(xiàn)出它的功能和作用殊霞。
軟件產(chǎn)品中的過程文件
“軟件開發(fā)過程”是什么?
軟件產(chǎn)品從最初構(gòu)思到公開發(fā)行的過程汰蓉,稱為軟件開發(fā)過程绷蹲。
開發(fā)過程有各種不同的模式,沒有所謂最好的模式顾孽。
最常見的5種:? ? 最常用的:瀑布/v/快速/敏捷
瀑布模式
V W
快速原型
敏捷開發(fā)
開發(fā)過程常見模型--瀑布
在20世紀(jì)70年代祝钢,瀑布模型一直是惟一被廣泛采用的軟件過程模型,現(xiàn)在它仍然是軟件工程中應(yīng)用得非常廣泛的過程模型若厚。
瀑布模式的變型:V太颤,W
1.步驟允許交叉。
2.步驟允許回溯盹沈。
3.測試貫穿全過程龄章,減少缺陷修復(fù)成本,降低項目進(jìn)度風(fēng)險乞封。
瀑布模型是一種線形的做裙、順序的軟件開發(fā)模型
瀑布模型優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
? ? ? 每個階段要都有明確的輸入件和輸出件,為項目提供了按階段劃分的檢查點(diǎn)肃晚。
缺點(diǎn):
1)基于文檔的驅(qū)動锚贱,各個階段的劃分完全固定,階段之間產(chǎn)生大量的文檔关串,極大地增加了工作量拧廊。
2)由于開發(fā)模型是線性的监徘,用戶只有等到整個過程的末期才能見到開發(fā)成果,從而增加了開發(fā)風(fēng)險吧碾。
3)瀑布模型的突出缺點(diǎn)是不適應(yīng)用戶需求的變化凰盔。
V模型— 瀑布模型的變型
優(yōu)點(diǎn):
強(qiáng)調(diào)了在整個軟件項目開發(fā)中需要經(jīng)歷的若干個測試級別,并與每一個開發(fā)級別對應(yīng)倦春;
指出測試的對象除了包括程序户敬,還應(yīng)該包括需求和設(shè)計。
局限性:
? ? ? V模型僅僅把測試過程作為在需求分析睁本、系統(tǒng)設(shè)計及編碼之后的一個階段尿庐,忽視了測試對需求分析,系統(tǒng)設(shè)計的驗證,需求的滿足情況一直到后期的驗收測試才被驗證
W模型(又叫V&V模型)– V模型的升級版
V&V= Validation(驗證) and Verification (確認(rèn))
優(yōu)點(diǎn):
測試的活動與軟件開發(fā)同步進(jìn)行
測試的對象不僅僅是程序呢堰,還包括需求和設(shè)計
盡早發(fā)現(xiàn)軟件缺陷可降低軟件開發(fā)的成本
局限性:
在W模型中抄瑟,需求、設(shè)計枉疼、編碼等活動被視為串行的锐借,同時,測試和開發(fā)活動也保持著一種線性的前后關(guān)系往衷,上一階段完全結(jié)束钞翔,才可正式開始下一個階段工作。這樣就無法支持迭代的開發(fā)模型席舍。
對于當(dāng)前軟件開發(fā)復(fù)雜多變的情況布轿,W模型并不能解除測試管理面臨的困惑。
快速原型
傳統(tǒng)的瀑布模型很難適應(yīng)需求可變来颤、模糊不定的軟件系統(tǒng)的開發(fā)汰扭,而且在開發(fā)過程中,用戶很難參與進(jìn)去福铅,只有到開發(fā)結(jié)束才能看到整個軟件系統(tǒng)萝毛。這種理想的、線性的開發(fā)過程滑黔,缺乏靈活性笆包,不適合新系統(tǒng)的開發(fā)過程。
而快速原型模型的提出略荡,可以較好的解決瀑布模型的局限性庵佣,通過建立原型,可以更好的和客戶進(jìn)行溝通汛兜,解決對一些模糊需求的澄清巴粪,并且對需求的變化有較強(qiáng)的適應(yīng)能力。
問題:開發(fā)初期很難確定用戶需求規(guī)格
解決:用戶與開發(fā)者之間的鴻溝
? ? 以原型(軟件產(chǎn)品的樣品)為共同語言,實(shí)現(xiàn)用戶與開發(fā)者雙向溝通肛根。
原型生命周期
敏捷開發(fā)
敏捷開發(fā)以用戶的需求進(jìn)化為核心辫塌,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)派哲。在敏捷開發(fā)中臼氨,軟件項目在構(gòu)建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試狮辽,具備可視、可集成和可運(yùn)行使用的特征巢寡。換言之喉脖,就是把一個大項目分為多個相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項目抑月,并分別完成树叽,在此過程中軟件一直處于可使用狀態(tài)。
瀑布模型和敏捷的比較:
傳統(tǒng)的瀑布模型無法適應(yīng)在短時間內(nèi)不斷變化的用戶需求谦絮,因為在瀑布模型中题诵,是先收集到用戶的所有需求,然后對所有需求進(jìn)行設(shè)計层皱、開發(fā)和測試性锭,如后期有需求變更,對項目影響很大叫胖,甚至導(dǎo)致項目失敗草冈。而敏捷開發(fā),是把一個大項目瓮增,劃分為多個小版本進(jìn)行開發(fā)怎棱,及時在開發(fā)過程中有需求變更,其影響的范圍不廣绷跑,造成的工作量也不大拳恋,因此,在需求不斷變化的項目中砸捏,采用敏捷開發(fā)模式谬运,就顯得尤為必要了。
優(yōu)點(diǎn):
1)可以在項目的各個階段進(jìn)行需求變更垦藏。
2)客戶能參與每個階段的驗收,保證了項目不偏離正確方向以及項目的可控性吩谦。
3)對于新近開發(fā),需求變更快的項目膝藕,適合用敏捷開發(fā)模式式廷,便于風(fēng)險控制和需求變更管理
軟件開發(fā)過程模型的目的
保證最終產(chǎn)品滿足用戶需求
提高產(chǎn)品質(zhì)量,降低產(chǎn)品開發(fā)成本
保證項目可管理芭挽,進(jìn)度可控制
作為測試人員的職責(zé)滑废,是在所處項目的開發(fā)模式中蝗肪,盡量運(yùn)用自身的知識和技能,創(chuàng)造出盡量完善的軟件蠕趁。
軟件研發(fā)流程
軟件測試流程/生命周期
測試需求分析
測試需求評審
編寫測試計劃
設(shè)計測試用例
測試用例評審
搭建測試環(huán)境
測試執(zhí)行
回歸測試
測試報告
軟件項目成員
項目經(jīng)理
驅(qū)動整個項目的運(yùn)轉(zhuǎn)薛闪,負(fù)責(zé)制定計劃,安排人力俺陋,管理進(jìn)度豁延,協(xié)調(diào)團(tuán)隊,進(jìn)行重大決策腊状。
產(chǎn)品經(jīng)理(需求開發(fā)人員)(BA)
負(fù)責(zé)與客戶溝通需求诱咏,編寫軟件測試需求說明書,繪制項目原型圖缴挖。
架構(gòu)師 / 系統(tǒng)工程師(SE)
技術(shù)專家袋狞,經(jīng)驗豐富,負(fù)責(zé)整個系統(tǒng)的體系架構(gòu)的設(shè)計以及關(guān)鍵模塊的設(shè)計映屋。
程序員 / 開發(fā)人員
設(shè)計苟鸯、編寫軟件,并修復(fù)軟件中的缺陷棚点。
測試工程師
負(fù)責(zé)找出軟件產(chǎn)品存在的問題并報告早处。
UI設(shè)計工程師
負(fù)責(zé)項目圖片的設(shè)計,或者項目頁面的排版布局瘫析。
配置管理員
負(fù)責(zé)管理程序員寫的代碼和資料工程師寫的文檔資料陕赃,并組合成一個軟件包
QA(很多小公司不設(shè)置該職位)
質(zhì)量監(jiān)管人員