进行大型软件项目开发时,一定会遇到各个功能的测试问题,设计一个好的解决方法往往能够起到事半功倍的效果。本文以计算机图形学软件工程项目为例,设计出一个简单的测试方案。
一个大的工程往往是由若干个功能串联起来的,每个功能最好都要有相应的测试代码,而图形学工程最好的测试方法是将算出的结果显示出来。如果直接将大量的测试代码加到模块中,代码就会显得比较臃肿难看,影响了程序可阅读性。如果测试完就立刻删掉这些测试的代码又很危险,因为测试代码在未来很长一段时间内,都可能会被再次用到。
很多测试代码都拥有一定的相似性,本文所涉及到的测试代码主要分为两个大的步骤:一个是运行驱动,另外一个是显示。因而,抽取出测试接口Test就包含了这样两个纯虚方法(C++语言)。
class Test { public: virtual void Run()=0; virtual void Render()=0; }; |
1: class ModuleDzy; 2: class TestToothPca:public Test 3: { 4: public: 5: TestToothPca(ModuleDzy* module); 6: void Run(); 7: void Render(); 8: private: 9: ModuleDzy* module_; 10: MeshModel* tooth_; 11: }; |
1: class Snaxel; 2: class ModuleDzy; 3: class Contour; 4: class TestBoundary:public Test 5: { 6: public: 7: TestBoundary(ModuleDzy* module); 8: void Run(); 9: void Render(); 10: private: 11: ModuleDzy* module_; 12: MeshModel* tooth_; 13: std::vector<Segment3f> cross_; 14: Snaxel* boundary_[30]; 15: Contour* contour_; 16: }; |