很多人第一次用TESSY,前面把编译器、目标机和源码都准备好了,真到落项目时却还是容易乱。最常见的情况,不是不会新建,而是项目能建起来,后面的集合、目录、模块和测试对象越堆越散,最后测试能跑,结构却很难维护。Razorcat官方资料其实把主线写得很清楚,TESSY的工作流本来就是从项目搭建一路走到测试设计、执行、结果分析和报告输出,同时还把需求、覆盖率和追溯一起纳入管理。
一、TESSY软件怎么建项目
TESSY建项目这一步,重点不是先往里面导多少源码,而是先把项目骨架定清。官方资料里把TESSY对象直接拆成了project、test collection、folder、module、test object这几个层级,所以更稳的做法,是先按这个层次搭骨架,再往里放具体测试内容,而不是一开始就在一个平面目录里一路往下加。
1、先把项目根和目标环境一起定住
先新建project,再把编译器、调试器和基础环境变量一次定好。因为官方产品页已经明确提到,测试项目管理不仅负责结构,还负责环境变量定义以及编译器和调试器配置,所以这一步越早定清,后面越不容易反复改。
2、不要跳过test collection这一层
很多人建项目时会直接从项目往folder或module里放内容,这样短期看着快,后面一到分版本、分功能域或分测试阶段就容易乱。更稳的做法,是先用test collection把测试大类收住,再往下放具体目录和模块,这样层次更容易扩展。
3、module不要一上来切得太碎
TESSY的核心测试单位最后会落到module和test object上,但项目初建阶段不建议把module切得过细。因为官方工作流本来就是从项目搭建一路走到测试执行和报告,如果模块一开始就碎得太厉害,后面分析、回归和汇总都会更重。
4、建完以后先做一轮最小可运行验证
项目建好以后,不要立刻大批量导入全部函数。更稳的做法,是先挑一组最小源码和一个测试对象跑通分析、测试设计和执行链路,确认项目配置、编译环境和目标连接没有偏,再继续扩展。这样比后面一次性堆满再返工轻得多。这个顺序和官方强调的完整单元测试工作流是一致的。
二、TESSY软件工程结构怎么规划
结构规划真正难的地方,不是把层级排出来,而是让后面的测试设计、需求链接、结果汇总和回归执行都还能顺着这套结构往下走。Razorcat官方资料明确提到,项目结构可以基于collections和folders自定义,同时测试结果会直接显示在项目结构里,需求也能和模块、测试对象、测试用例挂接,所以结构规划不能只看目录好不好看,还要看后面管理顺不顺。
1、先按业务域或组件域分collection
如果项目本身按通信、诊断、驱动、控制这类域来拆,collection就优先跟着业务域走。这样后面无论看需求覆盖、测试结果还是回归状态,都能先在大域级别收口,不会所有内容都堆在同一个根下。
2、folder更适合放阶段性或变体性区分
folder这层更适合承接版本、平台、变体、接口族或功能子目录,而不是把它当成collection的重复品。公开资料里已经把collection和folder分成独立层级,这说明两者最好承担不同职责,否则结构看着多,实际却没有分工。
3、module要尽量和源码责任边界对应
module规划时,最稳的做法不是按文件数量均分,而是尽量贴近函数归属、接口边界和开发责任边界来切。这样后面做分析、回归、需求挂接和问题回溯时,测试对象的责任关系会更清楚,不容易一处改动牵出很多无关模块。这个建议和TESSY把测试组织、需求、覆盖和追溯放在一套结构里管理的思路是一致的。
4、结果和需求都要能回到这套结构上
官方产品页明确写到,测试结果会直接存放在test runs里并挂回项目结构,requirements也可以和modules、test objects、test cases链接。所以结构规划是否合理,不只是看树形目录,而是看结果和需求能不能自然落在同一棵树上。
三、TESSY目录和模块怎样对应
很多项目不是不会建,也不是不会分层,而是建完以后目录和模块没有长期对应关系。前面一版是按源码目录建,后面一版又按功能组建,时间一长,结构就会失去稳定性。Razorcat的发布说明里专门提到过project-wizard.sh可以根据文件系统目录结构创建TESSY项目结构,这其实已经给了一个很清楚的方向,也就是目录关系最好和工程结构保持长期对应,而不是每次手工重排。
1、先定一条长期不变的对应规则
如果决定按源码目录映射collection和folder,那后面就尽量一直沿用;如果决定按组件边界映射,那也不要中途又切回纯目录思路。规则一旦反复变,项目树很快就会变成只适合当前这一次,不适合长期维护。
2、目录层级不要全部照搬到module
文件系统目录可以多层,但TESSY的module不宜机械跟着每一层一起变细。更稳的办法,是让collection和folder去承接目录层级,让module主要承接真正的测试责任边界,这样结构既能反映工程来源,又不会碎得太厉害。这个做法和官方把集合、目录、模块分成不同对象层级的设计是吻合的。
3、源码很多时先看项目根和源根
Razorcat的新版本说明里提到,Test Cockpit会按project root或source root下的源码文件做汇总展示。这说明在结构规划时,项目根和源根的关系最好一开始就定清,不然后面汇总视图和实际目录会很容易对不上。
4、结构定稿后再批量扩展
如果前面已经验证过一套collection、folder、module的对应关系,就先把这套规则定下来,再去扩大量,而不是边导边改树。因为官方既提供了项目结构化管理,也提供了按目录自动生成结构的能力,所以真正高效的做法,是先定规则,再扩项目,而不是一边扩一边重构。
总结
TESSY软件怎么建项目,TESSY软件工程结构怎么规划,真正关键的不是先把树搭出来,而是先把project、test collection、folder、module、test object这几层各自承担什么角色定清。前面项目先按最小可运行链路建起来,中间再让collection、folder和module分别承接业务域、目录层和测试责任边界,后面再把需求、结果和回归都挂回同一棵树上,这样结构才会越用越顺,不会越测越乱。