C/C++單元測試理論精要(十二,完)

4.2 多角度保證測試效果     對於代碼品質要求很高的項目來說,僅有白盒覆蓋是遠遠不夠的。白盒覆蓋不能發現代碼缺失,白盒覆蓋基於現有代碼,如果代碼不存在,當然不能發現。為了檢測代碼缺失,需要人工對測試資料進行檢查。白盒覆蓋也不能發現用例未反映功能。如果設計用例時,測試員不瞭解代碼的功能,通過閱讀代碼來設計用例,這叫跟著代碼走,這樣測試的話,再高的覆蓋率也沒有意義。這也從另一個角度說明了自動用例的局限性,完全由工具自動產生的用例,效果顯然還比不上跟著代碼走。    

The Inventor Mentor-附錄C:錯誤處理

 附錄C:錯誤處理     Inventor的調試版本和發行版本都提供了基本的錯誤處理機制。C-1所示,有三個類是從基類SoError派生出來的。在讀Inventor格式檔案時有可能發生讀 錯誤。如果應用程式運行時缺少記憶體資源,就有可能發生記憶體訪問 錯誤。調試

數位影像的長條圖均衡化(C/C++原始碼)

數位影像的長條圖均衡化是常用的映像增強方法,因為均衡化是自動完成的,無需人工幹預,而且常常得到比較滿意的結果。下面的程式是利用OPENCV提供的函數,實現這個功能。需要OPENCV B4.0的支援,在VC6下編譯通過。//// perform histgram equalization for single channel image// AssureDigit Sample code//#include "cv.h"#include "highgui.h"#define HDIM    256

基於隱馬爾可夫模型的Face ServiceC/C++原始碼

將生物識別特徵識別應用於人臉,實際上是包含兩個方面:第一,從映像或視訊框架中檢測人臉,即所謂的“臉部偵測”(face detection);第二,對檢測到的人臉進行識別,判斷這張臉是誰,即“Face Service”(face recognition)。就實際應用而言,採用人臉做生物識別特徵識別,其識別率、可靠性都無法與指紋、虹膜識別相提並論,但不失為模式識別中的一個典型應用,至少可以起到拋磚引玉的作用。下面的原始碼採用隱馬爾可夫模型(HMM)做Face Service,它是OPENCV 3.1

C/C++單元測試工具基本技術指標

    這是本人根據多年經驗提出的衡量C/C++單元測試工具能否勝任實際項目的技術指標,供需要評估單元測試工具的朋友們參考。1、 自動隔離測試目標    a. 可根據測試工作,設定指定的檔案為測試目標;    b. 對於不測試,但可能大量依賴的檔案,可以設為調用實際代碼;    c. 對於不屬於a和b的檔案,自動產生樁代碼。2、 自動產生測試代碼    a. 自動產生測試檔案,以及執行測試所需的代碼架構;    b. 自動為每個類、每個函數產生測試類別、測試函數;   

XP/Win7/Ubuntu多系統下修改C盤UUID造成Ubuntu啟動錯誤的解決辦法

iPad2升級iOS5後未越獄,按威鋒論壇的方法(http://bbs.weiphone.com/read-htm-tid-3189870.html)嘗試iTunes授權。但在第一步修改C盤UUID為 2A1D0905 後,重啟電腦後選擇進入Windows系統,Ubuntu出現如下錯誤:Error: no such device 6C************5EError: no such disk其原因是C盤的UUID已經更改,而Ubuntu按照原來的C盤UUID(即錯誤資訊中出現的6CAC*

臉部偵測的C/C++原始碼

臉部偵測的C/C++原始碼,曾發表於 OPENCV 的 MAILING LIST,主要是對OPENCV 3.1 版本發布的代碼做了一些速度上的最佳化,並且解決了記憶體流失的問題。這個程式所使用的 Paul Viola 提出(該論文“Rapid Object Detection using a Boosted Cascade of Simple Features”發表在 CVPR'01)的 Ada Boosted Cascade 演算法可以說是目前最好最快的目標檢測演算法。關於OPENCV的介紹,

用python 在c++計算數學運算式的例子

 #include "stdafx.h"#include "Python.h"#include <iostream>#pragma comment( lib, "python22.lib" )    int _tmain(int argc, _TCHAR* argv[])...{    Py_Initialize();    PyObject * module;    PyObject * dict;    PyObject * obj;    long lval;    PyRun

科學計算相關的c++庫

科學計算相關的c++庫 Blitz++ 參考網站:http://www.oonumerics.org/blitz/Blitz++ 是一個高效率的數值計算函數庫,它的設計目的是希望建立一套既具像C++ 一樣方便,同時又比Fortran速度更快的數值計算環境。通常,用C++所寫出的數值程式,比

C++基本功和 Design Pattern系列 Base Class Design

在OO中Base Class最多的應用有2種方式,第一種是interface,也就是基類是個abstract class, 最典型的例子是Factory Design Pattern. 第二種方式是Base Class 提供一種機制,然後提供幾個Virtual Function,允許使用者對這個類進行重載,從而達到“配置” (customization)的目的。 其典型的代表是 MFC,通過繼承提供訊息傳遞機制的CWin類的OnPaint等函數,實現更多更強大的功能。這次就主要講講這兩種類的設計

C++基本功和 Design Pattern系列 virtual

關於virtual 一般有3種用法: virtual function, pure virtual function, 和 virtual inheritance. 今天就分別來講講這幾種virtual.================ virtual function ================virtual函數是在類裡邊的一種特殊的函數,至於具體的含義,相信大家都知道,我就不多說了。而virtual最基本的思想,就是OO語言中多態的體現。把函數從編譯時間的棒定,轉移到運行時的動態綁定。

分享一個簡易的程式日誌記錄C++類

最近一直在忙實驗室的項目開發,很少上部落格了,現在總算有一定時間空出來做些總結,今天起陸續更新部落格,總結一下半年多來的學習心得。今天先分享一個簡易的程式日誌記錄類,參考自《一個簡單又高效的日誌系統》,針對項目本身做了一定的修改和補充,編程水平有限,僅供參考,呵呵 。標頭檔:#ifndef _INFO_LOGGER_H_#define _INFO_LOGGER_H_/*****************************************************************

C語言基本功教程系列 迴圈

http://blog.sina.com.cn/aear看了那麼多文章,感覺到大家學習遊戲程式設計的熱情.經常看到很多人提出關於openGL directX,和computer graphics的問題. 但是我個人人為, 遊戲程式設計,最最最重要的還是C C++語言的基本功. 如何編寫高效率,整潔,和儘可能少的Bug的代碼,是成為一個遊戲程式設計員的關鍵. 所以我開拉這個小系列,來幫C或C++語言基礎不牢靠的人補補基礎知識,希望能夠對大家有所協助. 

C語言基本功教程系列 檔案, Socket 和 其它

檔案和Socket比較類似,都是在說IO訪問,不過在作業系統層級上的實現有很大不同。 IO訪問無論從什麼角度講,都是電腦系統裡最慢的操作。特別是在遊戲製作中,動不動就幾百兆的動態或者待用資料,貼圖紋理,和各種音響音樂等。要一次性把這些所有的資料讀到記憶體中是不大可能的,所以在遊戲進行過程中要不短的從硬碟或者光碟機裡讀檔案。 如何能夠最小化這個瓶頸, 是值得注意的問題。先從檔案說起吧。===================檔案==================C語言裡,正常的檔案操作一般是3步。

《C++.GUI.Programming.with.Qt.4》讀書筆記Chapter 3

Chapter 3 Creating Main WindowsSection 1 Subclassing QMainWindow    應用程式的主視窗是通過建立QMainWindow的衍生類別來完成的。QMainWindow和QDialog一樣,都是派生自QWidget。    closeEvent()是由QWidget提供的一個虛函數,在使用者關閉視窗時會被自動調用。    setCentralWidget()將某個Widget設定為主視窗的central widget, 而central

C語言基本功教程系列 if 語句

if語句很簡單,相信大家都會,但是確有很多值得注意的。 首先來說一下code style的問題。=========不好的風格===========if( (x +4-y * 25) > 10 || y > 1023 || GetSomething()){   ....}=========好的風格============if( (x +4-y * 25) > 10     || y > 1023     || GetSomething() ){   ....}相信大家能看出

game c++

一般而言,比起C程式來說,C++遊戲程式是可重用和可維護的。可這真的有價值嗎?複雜的C++可以在速度上與傳統的C程式相提並論嗎?  如果有一個好的編譯器,再加上對語言的瞭解,真的有可能用C++寫出一些有效率的遊戲程式來。本文描述了典型的幾種你可以用來加速遊戲的技術。它假設你已經非常肯定使用C++的好處,並且你也對最佳化的基本概念相當熟悉。  第一個經常讓人獲益的基本概念顯然是剖析(profiling)的重要性。缺乏剖析的話,程式員將犯兩種錯誤,其一是最佳化了錯誤的代碼:如果一個程式的主要指標不是

C++基本功和 Design Pattern系列 Type Cast, Interface Inheritance VS Implementation Inheritance

許多學過C的朋友一定還記得C語言中的類型轉換,例如:float FloatNum = 1.234;int IntNum = (int)FloatNum;// IntNum = 1這是比較正常的類型轉換,稍微危險一點的轉換如下:float FloatNum = 1.234;float * pFloatPointer = &FloatNum;int * pIntPointer = (int *)pFloatPointer;// *pIntPointer 裡邊就是亂七八糟的東西了C

C語言基本功教程系列 快速的函數調用

函數哪裡都有,小的程式一兩個函數,大的程式成百上千個函數。即使在遊戲的關鍵迴圈中,調用幾十個函數也是很常見的。所以函數調用代碼的品質,在很大程度上影響著遊戲的品質。還是先說最基本的代碼風格問題。首先,對於函數的參數(特別是指標),如果函數內部不會修改其指標的內容,一定要用const來定義參數類型=========不好的風格==========void function(char * ServerName){   // 內部不允許對ServerName的內容進行修改}=========好的風格==

總頁數: 4314 1 .... 1728 1729 1730 1731 1732 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.