公司:重慶環(huán)潔智創(chuàng)新科技有限公司
主營:產(chǎn)品研發(fā)設(shè)計、模具加工生產(chǎn)
手機:15978927637
地址:重慶茶園經(jīng)開區(qū)美林路16號昌龍國際A9棟5樓
控制系統(tǒng)研發(fā)中如何處理系統(tǒng)可維護性?
大家好,今天給各位分享控制系統(tǒng)研發(fā)中如何處理系統(tǒng)可維護性?的一些知識,其中也會對什么叫系統(tǒng)集成的可擴充可維護性進行解釋,文章篇幅可能偏長,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在就馬上開始吧!
如何提高自動化測試的穩(wěn)定性和可維護性
大致如果現(xiàn)在已經(jīng)有了自動化測試所應(yīng)用的框架或者用例,遇到了穩(wěn)定性或可維護性的問題,這個優(yōu)化成本相對很高,因為此時考慮這個問題有些滯后了,要想提高穩(wěn)定性和可維護性的建議,需要提供更詳細的信息,比如現(xiàn)有的自動化測試框架設(shè)計及系統(tǒng)業(yè)務(wù)大致場景,否則不知從何說起。
若此時還沒有開展自動化測試,或者準備開展自動化測試,這里可以提一些建議,題主可視情況采納。
首先要對自動化測試形成正確的認知:自動化測試的目的不單純是為了減少或者替代手工測試,而是為了測試人員能夠做更多更有意義的測試(也包含手工測試)。自動化測試是用來驗證以前能夠正常工作的功能是否依舊可以正常工作。不是為了自動化而自動化,而是為了實現(xiàn)一套解決方案來解決問題從而開展某種自動化,肯定是解決某些測試過程中的問題而引入自動化測試。其次需要考慮系統(tǒng)或業(yè)務(wù)功能是否適合開展自動化測試IT行業(yè)甚至其它行業(yè)的產(chǎn)品都是能夠做到自動化的,所以是否自動化不是能與不能的問題,而是是否存在合適的時間或階段以及合適方式去做的問題,實施自動化測試之前需要對產(chǎn)品開發(fā)過程進行分析,通常需要同時滿足以下條件:
軟件需求變動不頻繁(超過10%的變動是頻繁變動,當然10%不是一個定值)項目周期足夠長自動化測試用例可重復使用目前主流的自動化測試框架或工具首先我們需要明白自動化測試框架更傾向于一種設(shè)計思想,這種思想指導工具的使用或者自研開發(fā),并且不是只能使用僅僅一種框架,結(jié)合被測系統(tǒng)本身特性一般是選擇多種測試框架的組合,來滿足測試和設(shè)計需求(開發(fā)、維護角度)。
錄制回放測試框架
錄制回放測試框架所采用的原理是通過錄制應(yīng)用程序產(chǎn)生的線性腳本進行回放從而達到自動化測試的目的。
優(yōu)點:對測試人員測試開發(fā)能力要求最低,通過錄制就可以得到所需腳本。缺點:一般不具有邏輯判斷的能力,可維護性差,效率低。適應(yīng)場景:不推薦,傳統(tǒng)的UI自動化測試逐步弱化。關(guān)于U自動化,一定要清楚被測系統(tǒng)是否滿足開展自動化的條件,在被測系統(tǒng)變動頻繁的項目中,開展UI自動化無疑是挖了一個很大的坑,其后期維護工作足以讓大心疲憊,被迫放棄自動化測試。測試庫構(gòu)架框架(TheTestLibraryArchitectureFramework)
測試庫構(gòu)架框架的核心思想可以概括為系統(tǒng)功能操作和業(yè)務(wù)邏輯的解耦。將所有的針對測試系統(tǒng)支持的功能操作封裝在測試庫中,測試腳本調(diào)用測試庫的同時傳遞外部的測試數(shù)據(jù),測試庫的編寫由自動化測試發(fā)工程編寫(可以不懂業(yè)務(wù)),負責控件的變更和維護,測試腳本的編寫可由對業(yè)務(wù)比較掌握的自動化測試開發(fā)工程編寫,負責業(yè)務(wù)邏輯、測試數(shù)據(jù)的變更和維護。
優(yōu)點:被測試系統(tǒng)無論是哪層發(fā)生變化(代碼層或業(yè)務(wù)層等),只需要相應(yīng)的人員進行變更維護即可。缺點:變更引起的維護工作同時附加在自動化測試開發(fā)工程師與業(yè)務(wù)測試人員身上,維護代碼建級大。適應(yīng)場景:基于各種自動化開展方式(基于工具如Jemet或不基于工具的自研研發(fā)+持續(xù)集成)一般都會應(yīng)用該框架。數(shù)據(jù)驅(qū)動的自動化測試框架(TheData-DrivenTestingFramework)
數(shù)據(jù)驅(qū)動的核心思想可以概括為數(shù)據(jù)(測試數(shù)據(jù)、配置數(shù)據(jù))與代碼解耦。該種框架的原理是采用了數(shù)據(jù)驅(qū)動腳本進行測試,數(shù)據(jù)驅(qū)動腳本是將數(shù)據(jù)輸入存儲在獨立的數(shù)據(jù)文件中,腳本只存代碼,運行時腳本的輸入直接從文件中讀取,如此相同的腳本(代碼模版)可以運行于不同的測試用例中,實現(xiàn)了代碼與數(shù)據(jù)的分離。
優(yōu)點:對于業(yè)務(wù)人員由面向代碼的開發(fā)轉(zhuǎn)換為面向配置的設(shè)計(參數(shù)組合設(shè)計),降低了開發(fā)難度與開發(fā)成本,同時提高了測試用例的易擴展性,可以快速擴展相似測試,實現(xiàn)了自動化代碼不隨用例的增長而增缺點:測試腳本的維護由自動化測試開發(fā)工程師負責,要求懂自動化編程和業(yè)務(wù)邏輯,初始測試腳本設(shè)計成本較大,具有一定局限性(針對相同的測試內(nèi)容并具有相同的測試邏輯).適用場景:更適應(yīng)于測試內(nèi)容測試邏相重復度高,被測對象對測試用例易擴展性、可復用性要求較高的場景。關(guān)鍵字或表驅(qū)動的自動化測試框架(TheKeyword-DrivenorTable-DrivenTestingFramework)
關(guān)鍵字驅(qū)動是對數(shù)據(jù)驅(qū)動的邏相擴展,它的核心思想可以概括為數(shù)據(jù)代碼流程(邏輯)解耦,同時完成了代碼與測試描述(針對被測對象的測試描述)的映射。該框架的原理是基于數(shù)據(jù)驅(qū)動的基礎(chǔ)上,完成了對被測對象的拆分、抽象、封裝使之映射成個個“關(guān)鍵詞”(測試描述),編寫測試用例時,僅需要對關(guān)鍵詞進行組合,即可完成不同場景的測試用例開發(fā)。
優(yōu)點:對于業(yè)務(wù)手工測試人員,由面向代碼或配置的開發(fā)轉(zhuǎn)化為面向自然語言(測試描述)的開發(fā),最大程度的降低了開發(fā)難度與維護成本,同時提高了測試用例的易擴展性、易組織性,實現(xiàn)了自動化代碼不隨用例的增長而增多。
缺點:對測試人員的測試開發(fā)能力以及業(yè)務(wù)了解程度要求很高。
適用場景:被測對象包含復雜業(yè)務(wù)流程(邏輯),當然復雜的能做簡單的更ok。
測試框架選擇僅僅從實現(xiàn)上講,很多種自動化測試框架(或工具)都可以開展自動化,或者說任意一種也不是很勉強,所以在自動化框架(或工具)的選擇上,不是人為核心的(我會什么,或有哪種框架比較好掌握),而是以被測對象為本來選擇自動化框架(或工具)。
兩個場景:
場景一:多維度的查詢功能,類似于某寶商品的篩選查詢。場景二:較為復雜的業(yè)務(wù)流程,類似于某逐級審批流程系統(tǒng)。思考:關(guān)于這兩種場景,我們?nèi)绾芜x擇自動化測試框架(或工具)?
場景一特點:類似于某寶WEB端,不同關(guān)鍵詞(衣服、足球)的多維度(品牌、發(fā)貨地)組合查詢,查詢邏輯單一、復用性強。推薦使用:測試庫架構(gòu)框架+數(shù)據(jù)驅(qū)動框架。場景二特點:類似于審批申請流程,包含復雜的業(yè)務(wù)邏輯和多用戶角色。推薦使用:測試庫構(gòu)架框架+數(shù)據(jù)驅(qū)動框架(配置解耦)+關(guān)鍵詞驅(qū)動框架測試用例開發(fā)兩個注意
規(guī)范性和契合性:開發(fā)規(guī)范性以及開發(fā)過程一定要與其自動化測試框架思想相契合,比加選擇測試庫構(gòu)架框架,那么在用倒編寫的時候,發(fā)現(xiàn)還有需要進行封裝的功能操作時,需要在測試庫中開發(fā),在用例中調(diào)用,而不是隨手在用例中進行開發(fā)。開發(fā)成本和維護成本:開發(fā)設(shè)計一定要考慮開發(fā)成本和維護成本問題,開發(fā)成本決定效率,維護成本決定這個自動化能否長明有效的運行下去,同時注意關(guān)于成本問題的解決思路是在對被則對象進行有效覆蓋的前提下,通過框架設(shè)計和優(yōu)化方案來降低成本,而不是靠少做一些做的粗一些來降低成本。在自動化測試開展的過程中若注意上述的內(nèi)容并加以實施,自動化測試的穩(wěn)定性、可擴展性、可維護性可以得到進一步的保障。
若對你有幫助,點贊支持哦如何讓員工具有歸屬感
謝謝邀請。這個問題除了在工作、生活上多關(guān)心員工外,我認為人性化管理比制度性管理更重要,只有人性化管理才能使員工有歸屬感,才能留著人才。就講三個真實案例吧。(1)、同事A因孩子住院急需陪伴,我就與同事B商量一個人做二個人的工作,B同事同意了,完成的很辛苦。后來B同事父母從外地來游玩,A同事主動承擔了B同事的工作,并讓B同事盡量多陪陪父母,不要操心工作的事。重點是從來沒有扣過同事們的事假、病假工資。(2)、同事C,因妻子的到來,在外租房住。妻子一時未能找到合適的工作,生活壓力很大,我就通過不斷的向朋友們、業(yè)務(wù)關(guān)系合作單位進行了推薦,終于找到了一個合適的工作。同事C一直抱著對個人的感激之情全身心的投入到工作中。(3)、司機D因發(fā)生了重大交通事故,情緒受到了驚嚇,我當即就給他了帶薪假(情緒不穩(wěn)定時更容易犯錯誤),結(jié)果C司機三天后主動要求來上班了,理由是怕公司少一人忙不過來。后來只是對他進行了象征性的處罰,因為按規(guī)定處罰他個人是無力承擔的,結(jié)果就是逼他辭職。也許有人會說我沒有原則性,不按規(guī)章制度執(zhí)行,你批評的很對。我對規(guī)章制度的理解是:處罰不是目的,規(guī)章制度的目的就是只要員工能夠完成工作任務(wù)就行了,不在乎過程只要有完美的結(jié)果就可以,你說對嗎?
什么叫系統(tǒng)集成的可擴充可維護性
易于管理,即系統(tǒng)的可維護性,已成為當前系統(tǒng)集成成敗,質(zhì)量高低,用戶滿意的主要性能指標。
加強系統(tǒng)的可維護性,能有效降低系統(tǒng)的維護和開發(fā)成本??蓴U充性反應(yīng)系統(tǒng)適應(yīng)變化的能力,可擴充性是系統(tǒng)設(shè)計階段需要考慮的重要質(zhì)量指標,對于系統(tǒng)集成來說,越來越重要。
如何提高代碼的可維護性
通常來說,在任何一個項目組中都應(yīng)該有各自的編碼規(guī)范,目的就是為了增加代碼的可讀性和可維護性,那么,到底該如何做呢?
1/7分步閱讀
變量命名要有意義,最好是使用英文命名,實在不行的,使用拼音。除了循環(huán)中的計數(shù)變量,以及特殊場景之外,任何變量都盡量不要使用a、b、c這類完全沒有任何意義的名稱。增強可讀性
2/7
變量除了要有意義之外,還需要統(tǒng)一大小寫,比如第一個單詞首字母小寫,后續(xù)單詞首字母大寫的命名風格。風格統(tǒng)一后,看著代碼都會心情舒暢一些,從而可讀性更好
3/7
添加必要的注釋,雖然,某些變量名可以看出意義,但是,必要的注釋可以更為直觀的讓人看懂代碼,增強可讀性
4/7
增加代碼段的注釋。如果是C#語言,可以使用region語法包裹一段邏輯,到時候折疊起來,看起來整體性就很容易閱讀。其他語言可以使用比較明顯的分隔符號標明段落
5/7
將很長的函數(shù)拆分成較小的函數(shù),這樣不僅可以增加代碼的可讀性,還能增加代碼的可維護性
6/7
將代碼劃分層次,比如,訪問數(shù)據(jù)庫的代碼單獨放在一個項目中,前臺代碼單獨放一個項目中,到時候修改的時候就很明確,不至于四處亂找,增加可維護性
7/7
代碼的層次之間通過接口來調(diào)用,減少各個層次之間的耦合度,增加可維護性
計算機系統(tǒng)的可維護性是指
計算機系統(tǒng)的可維護性是衡量一個系統(tǒng)的可修復(恢復)性和可改進性的難易程度。所謂可修復性是指在系統(tǒng)發(fā)生故障后能夠排除(或抑制)故障予以修復,并返回到原來正常運行狀態(tài)的可能性。
而可改進性則是系統(tǒng)具有接受對現(xiàn)有功能的改進,增加新功能的可能性。
從技術(shù)和管理方面談?wù)勅绾翁岣哕浖目删S護性
提高軟件的可維護性:
1.建立明確的軟件質(zhì)量目標和優(yōu)先級。
2.使用提高軟件質(zhì)量的技術(shù)和工具。
3.進行明確的質(zhì)量保證審查。
為什么要進行可維護性復審
可維護性是所有軟件都應(yīng)具備的基本特點,必須在開發(fā)階段保證軟件具有可維護的特點。
在軟件工程的每一個階段都應(yīng)考慮并提高軟件的可維護性,在每個階段結(jié)束前的技術(shù)審查和管理復查中,應(yīng)該著重對可維護性進行復審。
在需求分析階段的復審過程中,應(yīng)該對將來要改進的部分和可能會修改的部分加以注意并指明;應(yīng)該討論軟件的可移植性問題,并且考慮可能影響軟件維護的系統(tǒng)界面。
如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。