qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          軟件測(cè)試實(shí)驗(yàn)學(xué)習(xí)筆記系列1

           Part 1 Management

            Softwareengeering = Technology + Management

            現(xiàn)代軟件測(cè)試思想:全生命周期的測(cè)試思想.

            軟件系統(tǒng)的規(guī)模的急劇增大--->國(guó)際協(xié)作模式,聯(lián)合開(kāi)發(fā),

            軟件測(cè)試管理:softwaretest 團(tuán)隊(duì)組織管理,軟件測(cè)試計(jì)劃管理,軟件缺陷跟蹤管理,軟件測(cè)試資源管理。

            軟件缺陷是軟件與生具來(lái)的特征,是影響軟件質(zhì)量的重要和關(guān)鍵的因素之一,發(fā)現(xiàn)和排除缺陷是軟件生命周期重要的工作之一。缺陷的密度是靠經(jīng)驗(yàn)來(lái)估計(jì)的。

            缺陷管理工具:

            開(kāi)源Bug追蹤管理的工具:Bugzilla(Mozilla出品),BugOnline,Bugzero,Bugtracker,BugFree(借鑒微軟的研發(fā)流程和Bug管理理念,PHP+MySQL)

            軟件測(cè)試管理工具:TestManager,TestDirector,TestRunner(與Bugzilla集成的一款管理工具),TestLink—優(yōu)秀的開(kāi)源測(cè)試管理軟件,可以和更多缺陷管理軟件進(jìn)行集成(Bugzilla,Mattis)。Sourceforge的開(kāi)源項(xiàng)目之一

            TestLink應(yīng)用環(huán)境:LAMP(Linux+Apache+MySQL+PHP)

            Part2 靜態(tài)分析篇

            程序的靜態(tài)分析是在不執(zhí)行程序的情況下地其進(jìn)行分析的技術(shù),簡(jiǎn)稱(chēng)靜態(tài)分析。靜態(tài)分析的輸入:程序源代碼,目標(biāo)代碼。

            靜態(tài)分析工具掃描測(cè)試程序的正文,對(duì)程序的數(shù)據(jù)流和控制流進(jìn)行分析,然后給出分析報(bào)告。通常采用以下方法進(jìn)行源程序的靜態(tài)分析。

            1.生成各種引用表

            直接從表中查出說(shuō)明/使用錯(cuò)誤等,如循環(huán)層次表,變量交叉引用表,標(biāo)號(hào)交叉引用表等。

            為用戶提供輔助信息,如子程序(宏,函數(shù))引用表,等價(jià)(變量)表,常熟表等。

            2.編程規(guī)范檢查

            檢查分析程序中違反編程標(biāo)準(zhǔn)的錯(cuò)誤,如模塊大小,模塊結(jié)構(gòu),注釋的約定,某些語(yǔ)句形式的使用,以及文檔編制的約定等。

            3.靜態(tài)錯(cuò)誤分析

            靜態(tài)錯(cuò)誤分析主要用于確定源程序中是否存在某類(lèi)錯(cuò)誤或”危險(xiǎn)”結(jié)構(gòu)。

            類(lèi)型和單位分析

            引用分析:使用最廣泛的靜態(tài)錯(cuò)誤分析方法就是發(fā)現(xiàn)引用異常---異常探測(cè)工具

            表達(dá)式分析:對(duì)表達(dá)式進(jìn)行分析,以發(fā)現(xiàn)并糾正表達(dá)式中出現(xiàn)的錯(cuò)誤

            接口分析:接口的靜態(tài)錯(cuò)誤分析—檢查過(guò)程及函數(shù)過(guò)程之間接口的一致性。檢查形參和實(shí)參在類(lèi),數(shù)量,維度,順序,使用上的一致性,全局變量和公共數(shù)據(jù)區(qū)在使用上的一致性

            4.靜態(tài)特性的統(tǒng)計(jì)功能

            程序的統(tǒng)計(jì)信息,各種類(lèi)型的語(yǔ)句出現(xiàn)的次數(shù)等等

            錯(cuò)誤預(yù)測(cè)和程序復(fù)雜度計(jì)算

            靜態(tài)分析工具可以保證代碼的質(zhì)量,發(fā)現(xiàn)并警告潛在的Bug。

            獨(dú)立的靜態(tài)分析工具C的lint,Smalltalk的lint

            程序理解工具

            程序理解是人們將程序及其環(huán)境---面向人的概念知識(shí)過(guò)程中,是軟件開(kāi)發(fā)過(guò)程中的重要的活動(dòng),軟件的測(cè)試&維護(hù),逆向工程--源代碼理解。

            軟件規(guī)模的增大--->通過(guò)計(jì)算機(jī)來(lái)完成軟件系統(tǒng)分析和理解的程序輔助工具的需求變地越來(lái)越迫切。

            1.程序理解概述

            大型軟件系統(tǒng)---分析和理解的困難性---系統(tǒng)維護(hù)和演化任務(wù)艱巨---成本高,

            1.1程序理解的概念

            程序理解就是從計(jì)算機(jī)程序中獲取知識(shí)信息的過(guò)程,程序排錯(cuò),程序增強(qiáng),程序重用以及文檔整理。程序理解的目標(biāo)是從不同抽象層次,多視角,多方面綜合表達(dá)并展示程序理解的結(jié)果。

            程序理解是軟件工程領(lǐng)域的一個(gè)重要的部分。軟件工程---如何提高軟件開(kāi)發(fā)效率和軟件產(chǎn)品質(zhì)量。程序理解在維護(hù),逆向工程中起到舉足輕重的地位。

            程序理解的目標(biāo):理解軟件系統(tǒng)以使性能提高,糾錯(cuò),再設(shè)計(jì)和使用另一種語(yǔ)言沖新編寫(xiě)。

            系統(tǒng)的概念建模,數(shù)據(jù)抽取,系統(tǒng)抽象---依賴于通過(guò)分析程序源代碼來(lái)抽取程序和控制流信息。

            1.2程序理解的任務(wù)和內(nèi)容

            任務(wù):在不同抽象級(jí)別上建立基本程序的思維模型,從問(wèn)題領(lǐng)域到程序設(shè)計(jì)領(lǐng)域的映射集。代碼本身的模型,基本應(yīng)用領(lǐng)域的模型。四個(gè)抽象層次:

            實(shí)現(xiàn)層:程序設(shè)計(jì)語(yǔ)言進(jìn)行理解,檢查程序結(jié)構(gòu),程序的AST,符號(hào)表或普通源文件。技術(shù)涉及程序掃描,語(yǔ)法提取,語(yǔ)義檢查,靜態(tài)分析,動(dòng)態(tài)模擬運(yùn)行等過(guò)程。

            結(jié)構(gòu)層:在程序設(shè)計(jì)語(yǔ)言基礎(chǔ)上,檢查程序構(gòu)造過(guò)程中的結(jié)構(gòu),對(duì)程序中出現(xiàn)的實(shí)體以及他們之間的關(guān)系的分析,數(shù)據(jù)調(diào)用,控制流程圖,程序調(diào)用圖。結(jié)構(gòu)層包括:逆向工程信息提取,信息抽象,結(jié)構(gòu)模型匹配...

            功能層:從不同的模塊的功能來(lái)推斷他們之間邏輯關(guān)系。功能層包括:設(shè)計(jì)恢復(fù),語(yǔ)義和行為模式匹配

            領(lǐng)域?qū)?檢查特定于應(yīng)用領(lǐng)域的概念,進(jìn)一步從功能上推斷此軟件在其領(lǐng)域的作用,智能軟件理解,格局設(shè)別,概念賦值和推理

            從抽象層從低(源代碼)到高(領(lǐng)域問(wèn)題).

            主要介紹結(jié)構(gòu)層次的技術(shù).

            程序理解的幾個(gè)方面:結(jié)構(gòu)信息,數(shù)據(jù)流,控制流,程序操作,面向?qū)ο蟮睦斫?/p>

            1.3程序理解的技術(shù)

            結(jié)構(gòu)層的理解技術(shù)有語(yǔ)句分析,表示程序單元之間的調(diào)用關(guān)系和被調(diào)用關(guān)系,與程序內(nèi)部結(jié)構(gòu)相關(guān)的程序控制流圖和數(shù)據(jù)流圖.

            1.語(yǔ)句分析技術(shù):程序的詞法模式和語(yǔ)法模型

            2.程序流分析:數(shù)據(jù)流和控制流---首要任務(wù)發(fā)現(xiàn)控制結(jié)構(gòu),分析方法(必經(jīng)點(diǎn)分析和區(qū)間分析)。數(shù)據(jù)流分析是為了計(jì)算被分析程序在生成數(shù)據(jù)方面的行為,通常用于程序優(yōu)化。

            3.軟件結(jié)構(gòu)圖:程序調(diào)用關(guān)系圖(函數(shù)調(diào)用關(guān)系圖)和系統(tǒng)結(jié)構(gòu)圖。程序調(diào)用關(guān)系圖:對(duì)源程序中函數(shù)關(guān)系的一種靜態(tài)描述;系統(tǒng)結(jié)構(gòu)圖反映的是系統(tǒng)中模塊的調(diào)用關(guān)系和層次關(guān)系,誰(shuí)調(diào)用誰(shuí),時(shí)序關(guān)系。

            1.4程序理解工具

            閱讀源代碼是程序理解的一項(xiàng)重要的活動(dòng)。常見(jiàn)的程序開(kāi)發(fā)工具:程序切分器,靜態(tài)分析工具(有效工具,splint,Olink),動(dòng)態(tài)分析工具。

            2Olink程序理解工具

            Olink是一個(gè)開(kāi)源的C/C++工具,基礎(chǔ)或核心部分。

            Olink的源碼包:smbase(c++的包和字符串庫(kù),替代C++標(biāo)準(zhǔn)庫(kù)中相應(yīng)的庫(kù)),ast(生成AST的工具包),elkhound(用于管理GLR語(yǔ)法分析器,和bison功能相似,可以用來(lái)反分析任何上下文無(wú)關(guān)語(yǔ)法),elsa(在elkhound語(yǔ)法分析的基礎(chǔ)上,將C\C++程序生成為相應(yīng)的AST,可以對(duì)程序進(jìn)行部分類(lèi)檢查,主要是與),libregion(基于區(qū)域的c語(yǔ)言內(nèi)存管理庫(kù)),libqual(可序列化的多太的類(lèi)型修飾符推理接口),platformmodel(C/C++標(biāo)準(zhǔn)庫(kù)的靜態(tài)模型)。

            書(shū)本上提供的網(wǎng)址Olink的網(wǎng)址是: http://www.cubewano.org/oink/downloads/2006-08-31/。然后打開(kāi)后發(fā)現(xiàn)不知道導(dǎo)向了什么網(wǎng)站。

            看了一堆理論,聽(tīng)作者吹了老久,感覺(jué)這個(gè)Oink工具好牛逼的說(shuō),原本想實(shí)踐一下了,結(jié)果卻是這樣的.很不高興.

            下一篇是關(guān)于splint的,因?yàn)閮?nèi)容比較多,就不放在一起了

            參考文獻(xiàn):

            [1]軟件測(cè)試實(shí)驗(yàn)指導(dǎo)教程/蔡建平, 清華大學(xué)出版社, 2009.11

          相關(guān)文章:

          軟件測(cè)試實(shí)驗(yàn)學(xué)習(xí)筆記系列2 -- lint,splint的使用

          posted on 2013-08-05 10:23 順其自然EVO 閱讀(613) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 測(cè)試學(xué)習(xí)專(zhuān)欄管理方向

          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 汝阳县| 肃宁县| 洛南县| 岑溪市| 永新县| 沙田区| 枣阳市| 防城港市| 堆龙德庆县| 翁源县| 壤塘县| 伊金霍洛旗| 台江县| 武清区| 盐城市| 西丰县| 古交市| 衢州市| 尤溪县| 松江区| 洛南县| 禹州市| 闸北区| 治多县| 宁都县| 新河县| 鹤峰县| 新乐市| 庐江县| 股票| 荔浦县| 曲周县| 阳西县| 阿图什市| 广安市| 化隆| 铁岭市| 全椒县| 同江市| 永城市| 缙云县|