第一篇:科技期刊解決網(wǎng)絡(luò)版權(quán)問題的實踐與探索大全
科技期刊解決網(wǎng)絡(luò)版權(quán)問題
數(shù)字網(wǎng)絡(luò)技術(shù)、閱讀終端的快速發(fā)展催化了作品的表現(xiàn)形式、傳播手段、閱讀習(xí)慣的變革,技術(shù)的進步在推動信息快捷傳播的過程中也使得作品的無限復(fù)制輕而易舉,版權(quán)管理難上加難。海量作品網(wǎng)絡(luò)傳播事先獲得一對一授權(quán)幾乎不可能,這無疑給數(shù)字出版企業(yè)、期刊出版者、著作權(quán)人以及法律界提出了值得深思的問題。
網(wǎng)絡(luò)環(huán)境下出版面臨的突出問題與困境
2006年7月1日實施的《信息網(wǎng)絡(luò)傳播權(quán)保護條例》對信息網(wǎng)絡(luò)傳播權(quán)的權(quán)利內(nèi)容、權(quán)利限制、網(wǎng)絡(luò)服務(wù)提供商的責(zé)任以及免責(zé)條款、法律責(zé)任等問題做出了具體規(guī)定。
復(fù)制權(quán)、匯編權(quán)和信息網(wǎng)絡(luò)傳播權(quán)等涉及的作者和使用者眾多,需要即時使用而獲得授權(quán)的時間較長,事前取得單一授權(quán)較難實現(xiàn),比較適合延伸性集體管理。著作權(quán)集體管理可解決單個作者沒有能力管理自己權(quán)益的問題,降低行使其權(quán)利的成本。同時促進文化傳播、繁榮文化市場,最大限度地解決信息網(wǎng)絡(luò)傳播權(quán)難以有效控制的局面,規(guī)避市場需求帶來的法律風(fēng)險,為公眾提供合理利用作品的途徑。集體管理組織集中向使用者發(fā)放授權(quán)并收取著作權(quán)使用費,使著作權(quán)人獲得應(yīng)有的尊重和報酬,收益最大化,在信息技術(shù)、通訊技術(shù)、互聯(lián)網(wǎng)領(lǐng)域更充分地保護版權(quán)人利益,努力提升互聯(lián)網(wǎng)版權(quán)保護水平。
2005年實施的《互聯(lián)網(wǎng)著作權(quán)行政保護辦法》明確了網(wǎng)絡(luò)服務(wù)商的行政責(zé)任。
依照《著作權(quán)法》第47條規(guī)定,未經(jīng)著作權(quán)人許可,通過信息網(wǎng)絡(luò)向公眾傳播其作品是一種侵權(quán)行為,構(gòu)成犯罪的,依法追究刑事責(zé)任。2005年11家教育科研機構(gòu)以侵犯編輯作品著作權(quán)和版式設(shè)計專有使用權(quán)為由將重慶維普公司告上法庭,并最終獲賠236萬元。
期刊出版單位應(yīng)不斷適應(yīng)新情況,切實有效地處理與作者、網(wǎng)絡(luò)數(shù)據(jù)庫之間的關(guān)系。與作者簽訂專有使用權(quán)授權(quán)書。國際上的期刊出版商本著尊重作者信息網(wǎng)絡(luò)傳播權(quán)益的原則與著作權(quán)人簽訂書面數(shù)字版權(quán)的專有使用權(quán)合同,在版權(quán)保護期內(nèi),獲得在世界各地以各種語言和各種方式以印刷、電子等目前已知的及將來可能出現(xiàn)的任何媒體或新技術(shù)對作品進行傳播。絕大多數(shù)科技期刊的版權(quán)頁上都印有期刊社得到授權(quán)(包括得到數(shù)字版權(quán))的聲明并加注有版權(quán)標記。自1996年始,國內(nèi)多數(shù)期刊社均在著作權(quán)法的框架內(nèi)與作者簽署相關(guān)的著作權(quán)轉(zhuǎn)讓書。如中華醫(yī)學(xué)會系列雜志根據(jù)《中華人民共和國著作權(quán)法》及其實施條例的有關(guān)規(guī)定,約定作者同意自該論文刊登之日起,將其在中華人民共和國境內(nèi)的版權(quán)及相關(guān)財產(chǎn)權(quán)轉(zhuǎn)讓給中華醫(yī)學(xué)會,中華醫(yī)學(xué)會對論文的部分或全文具有但不限于以下的使用權(quán):匯編權(quán)、發(fā)行權(quán)、復(fù)制權(quán)、翻譯權(quán)、網(wǎng)絡(luò)出版及信息傳播權(quán)。
版權(quán)清晰有助于推動數(shù)據(jù)庫網(wǎng)絡(luò)傳播。順應(yīng)網(wǎng)絡(luò)環(huán)境下期刊出版的新要求,作為匯編作品的匯編者,期刊社同每篇論文的作者簽訂版權(quán)專有許可使用合同或版權(quán)轉(zhuǎn)讓合同,獲得著作權(quán)及與著作權(quán)有關(guān)權(quán)利的使用權(quán)、代理權(quán)后,才能授權(quán)網(wǎng)站將其印刷版的內(nèi)容數(shù)字化并上網(wǎng),供讀者付費下載。擁有123種醫(yī)學(xué)期刊的中華醫(yī)學(xué)會系列雜志以其辦刊歷史悠久、發(fā)表論文學(xué)術(shù)質(zhì)量高、期刊影響力大等優(yōu)勢,在廣大醫(yī)務(wù)工作者中享有盛譽。2008年2月及2010年6月,中華醫(yī)學(xué)會利用擁有自主版權(quán)的信息資源與北京萬方數(shù)據(jù)股份有限公司兩度簽署數(shù)字化網(wǎng)絡(luò)傳播的獨家合作協(xié)議,共同打造中華醫(yī)學(xué)會系列雜志數(shù)字化期刊服務(wù)和檢索平臺,清晰地解決了版權(quán)問題。與此同時,中華醫(yī)學(xué)會雜志社利用版權(quán)資源積極開展與海外數(shù)字出版平臺的合作,并積極嘗試OA出版。
第二篇:單元測試實踐的主要問題與解決
單元測試實踐的主要問題與解決
廣州凱樂軟件技術(shù)有限公司技術(shù)總監(jiān)
王彤
本文是我在“第十屆中國系統(tǒng)與軟件過程改進年會廣東會場”所作演講的整理稿,主要分享單元測試的一些要點、單元測試實踐的主要問題,以及如何來解決這些問題。
一、單元測試概述
1.1 什么是單元測試
單元測試,就是針對代碼單元的獨立測試。為什么需要單元測試呢?這是代碼的基本特性決定了的。代碼有一個基本特性,就是對數(shù)據(jù)分類處理。
代碼通常會有很多的判定。一個判定,就是一次分類。嵌套的判定,會使分類次數(shù)的翻倍。
如果我們在寫代碼的時候,有一個分類漏掉了,就會產(chǎn)生一個Bug;如果一個分類,雖然寫了代碼,但是處理不正確,也會產(chǎn)生一個Bug。一個函數(shù)要沒有錯誤,必須做到兩點:1,對數(shù)據(jù)的分類必須完整;2,每一個分類的處理必須正確。做到了這兩點,就可以說,代碼的功能邏輯是正確的。
/ 40
那么,如何檢測代碼的功能邏輯是否正確呢?
調(diào)試,是臨時的,且不完整的,例如,一個函數(shù)有十種輸入,調(diào)試能覆蓋五六種就不錯了。而系統(tǒng)測試,并不針對某個具體的函數(shù),不關(guān)注某個函數(shù)的功能邏輯是否正確。要檢測某個函數(shù)的功能邏輯,就必須要依照分類列出數(shù)據(jù),檢測代碼是否對每一個分類都做了處理,而且每一個分類的處理是否正確。
——這就是單元測試。
1.2 單元測試的基本方法
由上面的分析可以看出,單元測試的基本方法就是:依數(shù)據(jù)的分類列出輸入,執(zhí)行被測試程序,然后,判斷輸出是否符合預(yù)期。
/ 40
單元測試能達到什么樣的效果呢?那就是:無論別人怎么樣,我總是對的!
這里的“別人”,是指關(guān)聯(lián)代碼?!拔摇?,是指當前正在編寫或測試的代碼。單元測試要做到的是,無論關(guān)聯(lián)代碼是否有錯,都要保證我是對的。具體來說,我要考慮關(guān)聯(lián)代碼會產(chǎn)生什么樣的數(shù)據(jù),這些數(shù)據(jù)要如何分類處理,只要我的分類和處理是正確的,那么,無論別人怎么樣,我總是對的。
/ 40
1.3 單元測試的效益
單元測試的效益可以說是立竿見影,并且會推動整個開發(fā)過程的改進。
首先,單元測試可以保證代碼的質(zhì)量。因為只有單元測試,能夠全面檢測代碼單元的功能邏輯,排除代碼中大量的、細小的錯誤。
其次,排錯成本最小。如果在編碼階段同時進行單元測試,排錯成本可以忽略不計。但若到了后期,排錯成本可能會增長上百倍,要是產(chǎn)品已經(jīng)到了用戶手里,那造成的損失就更難說了。
/ 40
第三,提升開發(fā)效率。單元測試可以讓程序行為一目了然,也就是程序行為可視化。什么叫程序行為呢?就是什么輸入下,會執(zhí)行哪些代碼,會產(chǎn)生什么輸出。如下圖,黑色的代碼是當前輸入下所執(zhí)行代碼。
如果我們寫幾行代碼,就可以看到程序的行為,相當于寫文章時上下文可見,這可以促進我們的開發(fā)思維。如果我們的思維有了偏差,也可以及時發(fā)現(xiàn)。如果代碼中有了錯誤,也 5 / 40
可以隨時排除。
那么,是不是整個項目的所有代碼都做了單元測試,才能得到這些效益呢?不是的。80:20規(guī)則,在軟件開發(fā)過程中也存在。也就是說,80%的代碼錯誤,可能存在于20%的代碼中;80%的編碼、調(diào)試成本,可能會消耗在20%的代碼上。這20%,就是算法密集度高的代碼,也就是功能邏輯復(fù)雜的代碼。
這些代碼可能只有20%,但是卻可能包含了80%的錯誤,消耗了80%的編碼、調(diào)試時間,即使只對這部分代碼進行單元測試,在提升產(chǎn)品的質(zhì)量和開發(fā)效率方面,也會產(chǎn)生立竿見影的效果。
第四,自動回歸。如果沒有單元測試,系統(tǒng)測試發(fā)現(xiàn)了錯誤,當然要修改代碼,而修改代碼可能引入新的錯誤,又要進行全面的系統(tǒng)測試,這樣就可能陷入循環(huán),這通常也是項目延期的主要原因。
如果有了單元測試,修改代碼時可以通過回歸測試馬上檢測是否引入了新的錯誤。所謂回歸,就是回復(fù)到原來正確的狀態(tài)。
/ 40
正是回歸測試,使單元測試對整個開發(fā)過程的改進都產(chǎn)生積極影響,使項目適應(yīng)頻繁變化的需求。單元測試是敏捷開發(fā)的基礎(chǔ)和核心,反過來說,有了單元測試,開發(fā)過程會自動趨于敏捷。單元測試也降低了后期測試的壓力。
二、單元測試實踐的主要問題
/ 40
單元測試有個特點:測試簡單獨立的代碼很容易,但要在實際工作中做好單元測試卻很困難。
根據(jù)我們的經(jīng)驗,企業(yè)在實施單元測試時,通常會面對四大問題——
不愿做:程序員沒有單元測試習(xí)慣。
沒時間:編寫測試代碼需要耗費大量的時間,項目的周期可能不允許。
做不了:代碼具有較高的耦合性,使單元測試難以進行。
做不好:測試效果不能令人滿意。我們通常會以覆蓋率來衡量測試效果,但要實現(xiàn)高標準的測試覆蓋很困難。
三、解決思路和方法
如何解決上述問題呢?接下來,談?wù)勔恍┧悸泛头椒?,使用的工具是Visual Unit。Visual Unit,簡稱VU,是可視化的C/C++單元測試工具。
3.1 如何解決“不愿做”和“沒時間”
對于“不愿做”,我們采用的對策是可視化,這個可視化,是指程序行為可視,后面我會用案例來演示;對于“沒時間”,采用的對策是自動化,通過自動生成測試代碼、自動打樁等功能,讓測試的時間成本最小化。這兩者結(jié)合起來,就是ETDD開發(fā)模式。
那么,ETDD是什么呢?
首先來介紹一下TDD,TDD就是測試驅(qū)動開發(fā),這個大家可能聽得比較多了。ETDD就是Easy TDD,即:易行版的TDD。ETDD具有以下一些特點:
可視化,在開發(fā)過程中,程序行為可視。
自動化,除了測試數(shù)據(jù)需要人工設(shè)定外,其他基本上都自動完成。
現(xiàn)實化,不一定要測試所有代碼,在開始階段,可以只測試功能邏輯復(fù)雜的20%代碼。下面,我用一個案例,講解一下ETDD的過程:
假如我要編寫一個函數(shù),它的功能是刪除字符串左邊的空格。
先寫好函數(shù)的框架,能通過編譯就行。在編寫代碼前,程序員必須要做的一件事情,是想清楚代碼的功能。如果我們想的時候,順手把它記錄下來,就可以讓代碼的功能更清晰、更明確。
/ 40
我們現(xiàn)在來記錄代碼的功能。這里的記錄,不是文字形式的寵統(tǒng)說明,而是數(shù)據(jù)形式的精確定義,也就是用輸入和輸出的方式來記錄。
首先,記錄最基本的功能,也就是最基本、最常見的輸入和輸出。輸入一個左邊有空格的字符串,輸出是刪除左邊空格后的字符串,返回值跟參數(shù)的輸出是一樣的。
然后,記錄詳細的功能。例如,左邊沒有空格的,全是空格的,還有空字符串。
/ 40
把每種輸入的正確輸出也記錄一下。完成了這個工作后,代碼的功能就完全定義下來了。
現(xiàn)在,我們開始編寫代碼。我的編碼思路是這樣的:分為兩步,第一步計算左邊的空格數(shù)量;第二步,將非空格的字符向左移動,覆蓋掉左邊的空格。
/ 40
以下幾行代碼,計算左邊的空格,現(xiàn)在編譯一下。CTRL+F7。如果編譯通過,測試就會自動運行。
我們可以看到,輸入是什么,執(zhí)行了哪些代碼,產(chǎn)生了什么輸出。這里,黑色的是當前輸入下所執(zhí)行的代碼,未執(zhí)行的話會顯示為紅色。這里全是黑色,表示當前輸入下執(zhí)行了全部代碼。如果我們想看一下計算左邊空格的結(jié)果對不對,這是內(nèi)部的數(shù)據(jù),要指定位置后才會打印出來。按ESC鍵回到開發(fā)環(huán)境。
/ 40
用這種語法可以輸出內(nèi)部數(shù)據(jù),適合于程序員開發(fā)過程中使用。復(fù)雜類型也可以用同樣的語法輸出。
另一種輸出內(nèi)部數(shù)據(jù)的語法是,在左邊的代碼窗口,在要輸出的位置點擊一下,右鍵菜單選擇“輸出內(nèi)部數(shù)據(jù)”,這樣填一下就行了。這種方式不會修改產(chǎn)品代碼,適合于測試員使用。
/ 40
再次執(zhí)行后,可以看到,左邊的空格的數(shù)量是4,這是對的,那我們可以繼續(xù)編寫。
新加的這幾行代碼完成字符串的移動。這樣,代碼基本上寫完了,結(jié)果對不對呢?CTRL+F7編譯一下。
/ 40
結(jié)果是完全不對的。我們來分析一下,輸入是這個,全部代碼都是黑色,表示都執(zhí)行到了,跟我設(shè)想的一樣。問題在哪里呢?
看一下計算左邊空格的代碼,經(jīng)過計算后,指針偏移了,所以后面的計算,使用的是不正確的指針。
/ 40
我們把指針先保存一下,第二次計算前再恢復(fù)回來。看看結(jié)果怎么樣。
現(xiàn)在,參數(shù)的輸出是正確的了。但是,返回值還是不對,返回值應(yīng)該跟參數(shù)一樣。分析 15 / 40
一下,經(jīng)過這里的計算后,指針再次偏移了,返回前沒有恢復(fù),所以,返回的是不正確的指針。
返回前,再次把指針恢復(fù)??纯唇Y(jié)果。
/ 40
現(xiàn)在,結(jié)果是正確的了??匆幌聹y試結(jié)果,還有一個異常。
點擊它,可以看到,是空指針產(chǎn)生了這個異常,我們的代碼沒有對空指針進行處理。在這里,可以很清晰的看到代碼的執(zhí)行狀況。前面三行是黑色的,第四行開始都是紅色的,表示代碼只執(zhí)行到第三行,也就是說,第三行產(chǎn)生了異常。
/ 40
添加處理空指針的代碼。
現(xiàn)在,代碼寫完了,單元測試也同步完成了。/ 40
我們來回顧一下ETDD過程:跟傳統(tǒng)開發(fā)模式相比,ETDD多付出的,是把以前僅在頭腦里想的代碼功能記錄下來,從而精確地、完整地進行代碼的功能設(shè)計。
ETDD所得到的,是在編寫代碼的過程中,隨時可以看到代碼的行為,這可以讓我們的編碼過程變得輕松,而且也基本上不用調(diào)試,大家知道,調(diào)試,是最花費時間的。
/ 40
另一方面,只要這里設(shè)定的數(shù)據(jù)是完整的,那么,我們的代碼就沒有問題。將來,如果需要修改代碼,只要重新執(zhí)行一下測試,就可以知道是不是破壞了原有的功能。
小結(jié):ETDD通過可視化來幫助程序員輕松地編寫程序,單元測試不再是一個負擔(dān);ETDD通過自動化,使程序員只需要在考慮代碼功能時順手記錄一下,其他工作都由工具完成。20 / 40
ETDD提升了編碼的效率,也省略大部分調(diào)試,從而大幅提升了生產(chǎn)力。
3.2 如何解決“做不了”
上面我們只是用一個獨立的函數(shù)來演示ETDD過程。在實際的工作中,代碼之間通常是互相依賴的,這種依賴關(guān)系會造成測試難于進行,這就是“做不了”的問題。
我們首先來分析一下。“做不了”主要是指可測性問題。可測性問題的核心是內(nèi)部輸入。在解釋內(nèi)部輸入前,我們先來看一下一般的輸入:外部輸入。
外部輸入是指在被測代碼的外部可以設(shè)定的輸入,包括參數(shù)、成員變量、全局變量。外部輸入一般可以直接設(shè)定。
單元測試的核心難點在于內(nèi)部輸入,什么是內(nèi)部輸入呢?
像下面這個例子,這兩個數(shù)據(jù),都是在被測試代碼的內(nèi)部,通過調(diào)用關(guān)聯(lián)代碼來取得,也就是內(nèi)部取得的數(shù)據(jù)。對于內(nèi)部取得的數(shù)據(jù),代碼要如何處理呢?跟參數(shù)一樣,也是分類處理。因此,測試時也要分類檢測,這就是內(nèi)部輸入。
/ 40
內(nèi)部輸入有六種情形,我們利用工具都可以處理。
解決內(nèi)部輸入的主要方法有打樁、模擬對象、底層模擬。
先來介紹打樁。樁就是代替真實代碼的一些代碼。樁的功能主要有隔離、補齊和控制??梢酝ㄟ^編寫樁代碼,來解決內(nèi)部輸入問題。這是樁的控制功能。
/ 40
用打樁來解決內(nèi)部輸入,有一些問題:一是編寫樁代碼增加了工作量;二是內(nèi)部輸入和外部輸入分離,難于管理;三是只能解決部分內(nèi)部輸入問題。例如,要在一個用例中多次調(diào)用同一關(guān)聯(lián)函數(shù),要求每次輸出不同,樁代碼就很難做到。
解決內(nèi)部輸入的另一個方法是模擬對象,這個比較復(fù)雜,另外,對于C和C++也不太適用。我們可以采用底層模擬來解決內(nèi)部輸入問題。
/ 40
底層模擬有三個特點:一是內(nèi)部輸入與外部輸入一起管理;二是不需要考慮關(guān)聯(lián)代碼的狀態(tài),無所關(guān)聯(lián)代碼是否存在,是否隔離,都可以直接使用;三是不需要編寫代碼。
下面我也用一個案例來講解一下底層模擬。這個示例,是一個空調(diào)控制程序。代碼的功能,是首先取得環(huán)境的溫度,然后與預(yù)設(shè)的目標溫度比較,計算出溫度差,溫度每差一度,制冷器運行60秒。
首先,我們設(shè)定外部數(shù)據(jù)。假設(shè),預(yù)設(shè)的目標溫度是25度,是這個全局變量,設(shè)為25。返回值為1,表示操作成功。假設(shè)環(huán)境溫度是28度,那么,制冷器應(yīng)該運行180秒,這里填180。然后執(zhí)行測試。
/ 40
由于環(huán)境溫度還沒有設(shè)定,測試進行不下去。環(huán)境溫度由這個函數(shù)來取得。即使這個函數(shù)可以正常工作,取到的環(huán)境溫度也不可能滿足我們的測試需求。我們可以用底層模擬來解決。
首先,我們要讓這個取溫度的函數(shù)返回1,表示取溫度成功。雙擊函數(shù)名。
/ 40
模擬值填1。
然后,設(shè)定環(huán)境的溫度。雙擊這個表示環(huán)境溫度的參數(shù)。
/ 40
模擬值填28。
再看測試結(jié)果?,F(xiàn)在測試就可以正常進行了。這個參數(shù)的輸出是180,跟我們預(yù)期的一樣。內(nèi)部輸入這里,顯示了兩個內(nèi)部輸入。
/ 40
這是我們設(shè)定的內(nèi)部輸入,和外部輸入可以一起管理。我們也可以把它移到表格中。
在表格中,我們增加一個用例,把溫度設(shè)為30,直接設(shè)定就是了。
/ 40
這是環(huán)境溫度為30度時的測試結(jié)果,制冷器的運行時間為300。
上面演示的是簡單類型的底層模擬,復(fù)雜類型也一樣可以模擬,下面我演示一下。這個底層函數(shù)返回的是一個對象指針,如何模擬呢?雙擊函數(shù)名,打開底層模擬器。
/ 40
首先,在前置代碼中定義對象并初始化。然后,在模擬值中填寫這個對象的地址。
這是模擬的結(jié)果。
復(fù)雜對象的數(shù)據(jù)一樣可以移到表格中,這時,要移到表格中的不是對象本身,而是對象中包含的數(shù)據(jù)。例如,要把data.ui移到表格中,雙擊它的值“1234”就行了。
/ 40
我們還可以用局部數(shù)據(jù)模擬的功能,處理各種各樣的復(fù)雜情形。
例如,以下函數(shù)處理的是由界面輸入的數(shù)據(jù),這也是單元測試的一個難點??梢允褂镁肿償?shù)據(jù)模擬,把界面輸入轉(zhuǎn)換成普通的內(nèi)部輸入。
/ 40
這個函數(shù)的邏輯功能是計算SQL字符串,但計算結(jié)果沒有輸出到外部,這是內(nèi)部輸出,工具也可以判斷內(nèi)部輸出是否正確。
下圖是測試結(jié)果:
內(nèi)部輸入解決之后,無論別人(關(guān)聯(lián)代碼),是否存在,是否正確,是否被隔離,都可以完整檢測我(當前代碼)。檢測我是否對所有數(shù)據(jù),包括內(nèi)部輸入,都做了正確的分類和處理。
/ 40
從而實現(xiàn)單元測試的目標:無論別人怎么樣,我總是對的!如果所有代碼單元都做到了這一點,那會怎么樣呢?整個項目就沒有代碼錯誤。
來看看嵌入式測試。在設(shè)備上進行單元測試不僅難度大、成本高,也無法達到應(yīng)有的效果。如果在設(shè)備上測試,設(shè)備的一些輸出是難于控制的,例如這個例子,假設(shè)只有在發(fā)生雷擊時,獲取前車距離的函數(shù)才會返回失敗,那我們是不是等著雷擊呢?
即使不考慮成本,嵌入式單元測試也應(yīng)該在PC上進行,這樣才能做到“我總是對的”。
/ 40
3.3 如何解決“做不好”
現(xiàn)在來看做不好的問題。做不好的主要原因,是高標準的測試覆蓋難以實現(xiàn)。為什么要關(guān)注測試覆蓋呢?因為未覆蓋的單位,通常對應(yīng)未測試的數(shù)據(jù)分類,也就是說,可以用覆蓋率來檢查測試的完整性,衡量測試效果。
應(yīng)該在完成功能測試的基礎(chǔ)上,統(tǒng)計覆蓋率,找出遺漏用例來完成白盒覆蓋,而不是功能測試做一遍,白盒覆蓋又做一遍。
下面,我用一個案例來演示講解覆蓋。
首先是覆蓋率統(tǒng)計,工具可以支持六種覆蓋:語句、條件、分支、C/DC(判定條件覆蓋)、路徑覆蓋、MC/DC(修正判定條件覆蓋)。
哪些單位沒覆蓋呢?這個紅色且?guī)Уt色背景的,是未覆蓋語句;這個T是未覆蓋的條件真值;這個F是未覆蓋的條件假值;這個M是未覆蓋的MC/DC。
淡紅色背景的分支是未覆蓋分支,淡綠色背景的是已覆蓋分支。路徑是從入口到出口的路線,這條用綠色畫出的是已覆蓋的路徑。
/ 40
這條用紅色畫出的是未覆蓋路徑。
如何完成覆蓋呢?點擊未覆蓋的單位,比如這個T,右鍵菜單選擇“用例設(shè)計”。
工具會自動計算出一個近似用例,所謂近似用例,就是經(jīng)過最小修改就可以覆蓋選中單位的用例。
如何修改呢?工具提供了修改提示,按這個藍色粗體的提示修改就可以了。這里的提示是A >1,把它改為大于1的數(shù),如2。在實際工作中,輸出也要根據(jù)功能進行修改,這里忽略。
/ 40
執(zhí)行測試后,可以看到剛才那個T已經(jīng)覆蓋了。點擊F,打開用例設(shè)計器。
這里的提示是B不等于0,把B改為不等于0,比如1。
/ 40
現(xiàn)在來覆蓋這個T。
把X改為大于1的數(shù),如2。
/ 40
現(xiàn)在,代碼這邊已經(jīng)完成全部覆蓋了,看一下覆蓋率,還有一條路徑未覆蓋。
在這里選擇未覆蓋的路徑,打開用列設(shè)計器。
/ 40
提示是:A不等于2,X小于等于1,X本來就小于1,不用改它,把A改為不等于2的數(shù)就行了,如3。
現(xiàn)在,完成了全部覆蓋。
/ 40
總結(jié)
我們用可視化來解決“不愿做”,用自動化來解決“沒時間”,這兩者結(jié)合起來,就是ETDD開發(fā)模式。
造成做不了的主要原因是代碼的耦合關(guān)系形成的內(nèi)部輸入問題,我們用底層模擬來解決內(nèi)部輸入,真正可以做到“無論別人怎么樣,我總是對的”。在覆蓋方面,我們利用工具不僅統(tǒng)計覆蓋率,清晰標示未覆蓋單位,而且,用例設(shè)計器可以幫助我們快速找出遺漏用例,實現(xiàn)高覆蓋,解決做不好的問題。
/ 40
第三篇:網(wǎng)絡(luò)課件教學(xué)的實踐與探索
網(wǎng)絡(luò)課件教學(xué)的實踐與探索
范波
佛山市順德區(qū)順德一中 Tel:0765-2382053
E-mail:boyfan@sohu.com
摘要:本文作者具有豐富的網(wǎng)絡(luò)課件制作經(jīng)驗,并多次承擔(dān)網(wǎng)絡(luò)教學(xué)公開課。本文主要圍繞網(wǎng)絡(luò)課件的制作過程中和網(wǎng)絡(luò)教學(xué)過程中的一些心得體會談一些自已的看法。關(guān)鍵詞:網(wǎng)絡(luò)課件 自主 交流
計算機輔助教學(xué)是現(xiàn)代計算機技術(shù)對傳統(tǒng)教學(xué)的有力補充與發(fā)展。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,傳統(tǒng)的單機運行課件已經(jīng)相對落后了。取而代之的應(yīng)是網(wǎng)絡(luò)課件,網(wǎng)絡(luò)課件的作用與優(yōu)勢已經(jīng)在教學(xué)過程中逐步地顯示出來。
所謂網(wǎng)絡(luò)課件,其實就是就某個教學(xué)專題所制作的網(wǎng)站。它的最大的優(yōu)勢:
(一)突破了傳統(tǒng)教學(xué)的時間和空間限制,學(xué)習(xí)者通過國際互聯(lián)網(wǎng)可以隨時隨地進入該課件進行學(xué)習(xí);
(二)學(xué)習(xí)者自由的選擇學(xué)習(xí)內(nèi)容,保證了學(xué)習(xí)者的主體地位與個性發(fā)展,當然這也要求網(wǎng)絡(luò)課件的信息量要足夠大;
(三)資源的共享。網(wǎng)絡(luò)課件很輕松地實現(xiàn)網(wǎng)站之間的超鏈接,可以將整個互聯(lián)網(wǎng)的資源納為己用;
(四)有利于培養(yǎng)學(xué)習(xí)者的終身學(xué)習(xí)意識和學(xué)習(xí)技能。
下面筆者就在網(wǎng)絡(luò)課件教學(xué)過程中的心得與體會淺述如下:。
一、網(wǎng)絡(luò)課件更好的地保證了學(xué)生的主體地位與教師主導(dǎo)作用。
單機運行課件在教學(xué)過程中一般是由老師“掌管”信息的輸出,學(xué)生處于被動接受的地位。這樣就很難保證學(xué)生的主體地位在具體的教學(xué)實踐中得到保證,學(xué)生學(xué)習(xí)的積極性與主動性就受到了一定程度的抑制。而網(wǎng)絡(luò)課件則是可以實現(xiàn)學(xué)生按自己的思維方式和學(xué)習(xí)習(xí)慣“掌管”信息的輸出,積極主動的獲得相關(guān)的信息。實現(xiàn)由“要我學(xué)”到“我要學(xué)”的轉(zhuǎn)變。
那么教師的主導(dǎo)地位在網(wǎng)絡(luò)教學(xué)過程中如何實現(xiàn)?
我們知道,高密度的網(wǎng)絡(luò)信息量是為了拓寬學(xué)生的知識面,增強學(xué)生對所學(xué)知識的理解深度和廣度。教師主導(dǎo)地位應(yīng)體現(xiàn)在幫助學(xué)生有的放矢的瀏覽網(wǎng)站,根據(jù)自己的愛好與興趣高效率進行學(xué)習(xí),不讓學(xué)生淹沒在信息的海洋中。實踐證明,提出課堂上要解決的若干問題的導(dǎo)學(xué)提綱,讓學(xué)生帶著這些問題去瀏覽,然后進行分組或集中討論是比較高效的方法。
二、網(wǎng)絡(luò)課件可以更有效地實現(xiàn)分層教學(xué)、因材施教。
常規(guī)教學(xué)要面向大多數(shù),經(jīng)常會出現(xiàn)優(yōu)生“吃不飽”,基礎(chǔ)差一點的學(xué)生“吃不了”的情況。而網(wǎng)絡(luò)課件將學(xué)習(xí)的主動權(quán)交還給學(xué)生,學(xué)生可根據(jù)自己的實際情況有所選擇地進行學(xué)習(xí)。同時教師的導(dǎo)學(xué)提綱也應(yīng)加強區(qū)分度,討論時也可采取由學(xué)生自選論題進行回答的方式。
三、網(wǎng)絡(luò)教學(xué)可以更有效地保護發(fā)展學(xué)生的興趣愛好,發(fā)展他們的個性品質(zhì)。
在網(wǎng)絡(luò)課件中可收集了大量的信息和該學(xué)科的發(fā)展方向。比如筆者曾做了《電磁波的發(fā)射與接收》的網(wǎng)絡(luò)課件,對電磁波的發(fā)展歷史(包括重要的事件與相關(guān)人物,科學(xué)家的簡介等)、電磁波的利用(廣播電視、雷達、醫(yī)療衛(wèi)生、電子對抗與電子戰(zhàn)、搜索地外文明等),電磁波的危害與防護(電磁輻射的污染源、對人體的危害、電磁干擾與泄密并詳細的介紹了計算機泄密的過程與防護措施、在網(wǎng)上收集了大量關(guān)于電磁波的危害的文章與新聞事實、收錄了著名大學(xué)教授關(guān)于電磁波危害的論述、電磁防護的措施等)等內(nèi)容。可讓學(xué)生自由選擇感興趣的論題進行學(xué)習(xí),這樣有可能為其今后的發(fā)展產(chǎn)生不可估量的影響。在本網(wǎng)絡(luò)課件中收錄的相關(guān)科學(xué)家傳記與滲透在本課件中的環(huán)保教育與相關(guān)電磁波的法制法規(guī)教育都會對學(xué)生個性品質(zhì)的發(fā)展起到潛移默化的作用。
若是教師“掌管”信息的輸出,教師感興趣的問題但學(xué)生或者說不是所有的學(xué)生都感興趣,由于時間限制教師又只能有所選擇地進行講解。而學(xué)生掌握了學(xué)習(xí)主動權(quán)的網(wǎng)絡(luò)課件就很好的解決了該矛盾。若老師提供的資料還不能滿足學(xué)生的要求,學(xué)生還可以通過網(wǎng)絡(luò)課件的相關(guān)資源鏈接或搜狐、網(wǎng)易等搜索網(wǎng)站進行更大區(qū)域 的選擇。
四、網(wǎng)絡(luò)課件更好地實現(xiàn)了資源共享
網(wǎng)絡(luò)的好處是讓地球村濃縮在小小的電腦屏幕上。網(wǎng)絡(luò)課件可以納百家之精華為我所用,只需點擊“超級鏈接”按鈕則輕松實現(xiàn)共享別人的勞動成果。比如別人精心制作的某個網(wǎng)頁恰好是我要說明某個問題所需要的,就可以讓他的這個網(wǎng)頁通過“超級鏈接”成為我的網(wǎng)頁的一部分。筆者在網(wǎng)絡(luò)課件《電磁波的發(fā)射與接收》中說明LC振蕩回路時就超級鏈接了《中國中小學(xué)教育教學(xué)網(wǎng)》中浙江汪一穎老師用FLASH所制作的LC振蕩過程演示動畫(ftp://ftp.k12.com.cn/pub/物理/高中/高二/電磁振蕩圖象000501汪一穎.swf),為筆者的網(wǎng)絡(luò)課件增色不少。
為了方便學(xué)生搜索更多的資源,應(yīng)該在網(wǎng)絡(luò)課件中設(shè)立“相關(guān)網(wǎng)絡(luò)資源”欄目,為學(xué)生提供多個相關(guān)網(wǎng)站出口(網(wǎng)站的超級鏈接)。最好網(wǎng)絡(luò)課件中教授給學(xué)生在搜索網(wǎng)站中搜索相關(guān)資源的方法與技巧,并設(shè)立搜索網(wǎng)站的超級鏈接以供學(xué)生選擇。
五、網(wǎng)絡(luò)信息的發(fā)散與信息的集中在教學(xué)過程中的實現(xiàn)
網(wǎng)絡(luò)課件的教學(xué)過程有些老師會認為太散。不象常規(guī)教學(xué)那樣集中。我認為網(wǎng)絡(luò)課件如同散文,形散而神不散。信息的集中要靠教師的主導(dǎo)作用來實現(xiàn)。教師提出的導(dǎo)學(xué)提綱中的各個問題就是信息集中的凝結(jié)核。網(wǎng)絡(luò)課件中的大量信息大部分也是說明這些問題必需的信息。學(xué)生在網(wǎng)絡(luò)課件乃至在相關(guān)的不同網(wǎng)站上瀏覽后,在相互討論時通過信息的補充、拓延,信息的集中比單純教師一個人的說教更有力度。
因此,我認為,教師主導(dǎo)作用的強弱,即信息“凝結(jié)核” 的設(shè)置水平高低是信息能否實現(xiàn)信息高效集中的關(guān)鍵。
為了學(xué)生在課外的時間學(xué)習(xí),教師的導(dǎo)學(xué)提綱應(yīng)是到網(wǎng)絡(luò)課件的一部分。
六、網(wǎng)絡(luò)課件上課模式的思考
我認為,網(wǎng)絡(luò)課件教學(xué)比較適宜采用單元教學(xué)法。假如一個單元包含3個課時的內(nèi)容,你可以安排1.5—2個課時學(xué)生上網(wǎng)瀏覽學(xué)習(xí),剩余時間進行討論和完成其它教學(xué)任務(wù)。這樣既保證了單元知識內(nèi)在邏輯的完整性,又給學(xué)生自主上網(wǎng)學(xué)習(xí)和討論以充分的時間,保證了學(xué)生學(xué)習(xí)的廣度和深度,同時也保證了信息集中的高效、有力。
七、網(wǎng)絡(luò)教學(xué)與常規(guī)教學(xué)關(guān)系的思考
教與學(xué)應(yīng)以人為本。計算機單機運行課件也好,網(wǎng)絡(luò)課件也好,其地位是教學(xué)的輔助手段。人和計算機交流與人和人交流是不可比擬的,也就是說在教學(xué)過程中計算機是無法取代人的位置的。網(wǎng)絡(luò)教學(xué)是輔助,常規(guī)教學(xué)是基礎(chǔ)。網(wǎng)絡(luò)課件是為常規(guī)教學(xué)服務(wù)的。
八、在網(wǎng)絡(luò)課件制作中一些技術(shù)問題的處理:
1、網(wǎng)站的框架構(gòu)思與制作是關(guān)鍵,即你這個網(wǎng)站要講授什么?內(nèi)容如何安排講授?需要什么材料?
2、按資源共享的原則,在互聯(lián)網(wǎng)搜集、占有大量的相關(guān)資料以供選擇利用。在不侵犯版權(quán)的條件下,可以復(fù)制整個網(wǎng)頁然后進行修改補充,此步驟可在網(wǎng)頁編輯軟件中可實現(xiàn)。同時收集相關(guān)的文字與圖片資料備用。
3、網(wǎng)頁制作軟件可以選擇FRONTPAGE,DREAMWEAVER等軟件,同時一些圖片處理軟件和動畫軟件也要有所掌握,如PHOTOSHOP、FIREWORK、ANIIMATE、COOL3D、FLASH、3DMAX等軟件。若是新手可以采用“借雞生蛋”的辦法,即參考別人的頁面進行設(shè)計。在網(wǎng)上還有很多實現(xiàn)各種功能的免費JAVA程序源代碼,加入到你的網(wǎng)頁HTML文件中也許會有讓你驚喜的效果。網(wǎng)上還有很多網(wǎng)頁素材,你可悉心尋找。
隨著信息高速公路的建設(shè)與遠程教育的發(fā)展,網(wǎng)絡(luò)課件以其巨大的優(yōu)勢很快就會成為計算機輔助教學(xué)的主要手段。
第四篇:實踐與探索
§22.3實踐與探索(1)說課教案
興化市板橋初級中學(xué)宗樹信
教學(xué)目標:
1.學(xué)生在已有的一元二次議程的學(xué)習(xí)基礎(chǔ)上,能將對生活中的實際問題進行數(shù)學(xué)建模解決問題,從而進一步體會方程是刻畫現(xiàn)實世界的一個有效的數(shù)學(xué)模型.2.讓學(xué)生積極主動地參與課堂自主探究和合作交流,并在其中體驗發(fā)現(xiàn)問題、提出問題及解決問題的全過程,培養(yǎng)學(xué)生的數(shù)學(xué)應(yīng)用能力.3.讓學(xué)生感受數(shù)學(xué)的嚴謹性,形成實事求是的態(tài)度及進行質(zhì)疑和獨立思考的習(xí)慣,通過獲得成功的體驗和克服困難的經(jīng)歷,增進應(yīng)用數(shù)學(xué)的自信心.重點難點:
1.重點:利用一元一次方程對實際問題進行數(shù)學(xué)建模,從而解決實際問題.2.難點:會分析方程的解是否符合題意,自主探索得到解決實際問題的最佳方案.教具準備:投影儀,自制膠片.學(xué)具準備:邊長為10cm的正方形硬紙板,剪刀,膠帶紙,計算器.
第五篇:國有林區(qū)林權(quán)制度改革的探索與實踐
我市推行國有林業(yè)產(chǎn)權(quán)制度改革以后,林業(yè)產(chǎn)權(quán)已基本落實到戶。如何把林農(nóng)一家一戶的分散經(jīng)營與大市場對接起來,提高林農(nóng)收入,壯大集體經(jīng)濟,××縣××鎮(zhèn)××村積極探索新路,謀求新的發(fā)展理念,在林改后探索林區(qū)發(fā)展方面作出了有益的嘗試,有一定的借鑒和推廣作用。
××縣××鎮(zhèn)××村轄區(qū)面積5.3萬畝,本地村民自留山、責(zé)任山
面積4.6萬余畝,全村216戶736人,有9個村民小組,人平山林面積80畝。××群生林場座落于××鎮(zhèn)××村,是在該村村民通過反租毛竹林場山林,實行整體流轉(zhuǎn)后由××籍客商投資購買組建的。目前,該村除9戶農(nóng)戶山林面積約3000畝未流轉(zhuǎn)外,其它的山林約4.3萬畝已全部實行整體流轉(zhuǎn),并交由××群生林場運作?!痢寥荷謭龅慕?jīng)營模式群眾普遍反映良好,據(jù)調(diào)查了解,未參與流轉(zhuǎn)的9戶農(nóng)戶及××村周邊的部分群眾都在陸續(xù)加入該林場。
一、基本情況
2、流轉(zhuǎn)方式。根據(jù)客商與村民的協(xié)商,××群生林場經(jīng)營的4.3萬畝山林,其中50%的山林面積按竹林地計算實行租賃,租賃價格為25元/畝,同時以目前一尺竹13元市場價格為基數(shù),市場價格每增加一元,竹林地租賃費相應(yīng)每畝增加一元。即一尺竹市場價格達到14元時,租賃價格按26元/畝計算,依此類推。另50%的山林面積按樹山計算,轉(zhuǎn)讓經(jīng)營權(quán)30年,實行一次性付款,成交價為300元/畝。據(jù)測算,××村民平均80畝山林,其中50%即40畝按樹山計算,人平可獲得1.2萬元,50%即40畝按竹林地計算實行租賃,現(xiàn)在每年人平可獲得1000元。今后隨著竹子價格的提高,租賃費每年將不斷增加,基本解決了村民生活問題。通過××群生林場的運作,××村村民不僅可在林木采伐、竹林改造、造林撫育等務(wù)工上獲得勞務(wù)收入,而且可在群生林場創(chuàng)辦的工廠務(wù)工獲得工資性收入。××村山林流轉(zhuǎn)一半賣、一半租的形式,既解決了農(nóng)民發(fā)展急需起步資金的難題,又解決了農(nóng)民長遠的基本生活問題。
4、管理方式?!痢寥荷謭鰹楣煞葜乒?,法人代表為董事長創(chuàng)維集團副總楊東文,董事會設(shè)有5人,其中投資客商代表3人,××村代表2人。監(jiān)事會有5名股東組成,全部為××村村民?!痢寥荷謭鐾耆船F(xiàn)代企業(yè)先進的管理方式、管理制度進行管理,有健全的管理、監(jiān)督機制,投資者、經(jīng)營者分開,總經(jīng)理實行聘任制。它有嚴格的公司章程,明確了股東的權(quán)利和義務(wù),明確了財務(wù)、會計、利潤分配等資產(chǎn)結(jié)算方式。
二、主要成效
1、解決了林農(nóng)一家一戶分散經(jīng)營與大市場對接的難題,實現(xiàn)了資源規(guī)?;?、集約化經(jīng)營,有利于提高林農(nóng)收入和集體收入?!痢寥荷謭龀晒\作后,農(nóng)民人平收入和集體收入將大幅增加,對于改善林區(qū)基礎(chǔ)建設(shè)等公益事業(yè)將起到積極的促進作用。
2、解決了林農(nóng)發(fā)展起步資金難題,實現(xiàn)了林區(qū)發(fā)展的新跨躍,有利于保護林業(yè)資源和維護林區(qū)秩序?!痢寥荷謭龀闪⒑?,××村“三防”(防火、防盜、防蟲)協(xié)會隨之成立,林政秩序明顯好轉(zhuǎn),防火、防盜、防蟲意識明顯增強,基本杜絕了亂砍濫伐現(xiàn)象。
3、解決了村民居住分散和出行的難題,實現(xiàn)了林農(nóng)整體搬遷愿望,有利于做大縣城?!痢链?0%的農(nóng)民報名準備在縣政府統(tǒng)一規(guī)劃區(qū)內(nèi)建房,這對于保護生態(tài)環(huán)境,改善人居環(huán)境將起到至關(guān)重要的作用。
4、破解了林改后林區(qū)發(fā)展的難題,摸索了林區(qū)發(fā)展新路,有利于促進林業(yè)的可持續(xù)發(fā)展?!痢寥荷謭龀?jīng)營竹木外,還準備建立自己的工廠,進行竹木精深加工,開發(fā)竹鍵盤等產(chǎn)品和系列農(nóng)產(chǎn)品,實現(xiàn)生態(tài)可持續(xù)發(fā)展,資源永續(xù)利用。(