项目测试相关

作者从学生时期对软件测试的忽视,到在游戏公司工作时对测试的轻视,再到进入互联网金融行业后逐渐认识到测试的重要性。文中分享了作者在不同阶段对测试的认识变化,以及学习和应用单元测试的经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上学时,软件测试是我觉得最枯燥的课,可能因为上课使用的例子都是诸如密码验证、登录等基本的功能,老师又反复要求列举测试覆盖,从那时就觉得测试是简单枯燥没有挑战的事情,并没特别在意。工作生涯是在游戏公司开始的,做了三年mmorpg网游,大多时间是在写功能逻辑,有专门的QA团队负责用黑盒测试进行验收,更加让我觉得测试没有营养。除了压测用的机器人,以及平常对比benchmark,可能因为游戏迭代快,很少见写代码进行测试(也可能我写的机器人不方便做这个 - -)。直到后来去了互联网金融行业,做了些基础功能,自己会顺手用go自带的test文件写一些不放心的地方的测试,明白程序员在写逻辑方面的进阶之一就是要写好测试用例,而且深觉有测试文件的比没有测试文件的功能可信度大的多。

有些功能比较大,写test不知从何下手(也怪当初没用心听课),也想总结一套测试流程,于是上网搜如何测试。这篇“为什么要写单元测试,何时写,写多细”关于测试覆盖程度的文章总结的蛮完善,还引用了stackoverflow上一篇大神关于覆盖率的解答。又逐步了解到测试覆盖go test -cover这个利器检查测试覆盖率。各个大语言也都有自己的测试覆盖工具。还有分布式的测试环境。

看下大厂如何做测试:
fabric,有一个单独文件夹test:
test/docker-compose.yml大概是个基础测试环境,只有基础的ca、orderer、vp各一个节点。chaincodes文件夹下面是chaincode的示例。
test/envsetup下有个复杂一些的docker-compose:一个orderer、一个cli、分属于两个组织的四个peer,使用example/e2e_cli/base/docker-compose-base.yaml中定义的服务。generateCfgTrx.sh的作用大致为:使用example/e2e_cli/base/下的配置文件生成认证文件和组织架构(configtxgen的代码在common/configtx/tool/configtxgen/main.go)。channel-artifacts用于存放generateCfgTrx.sh产生的组织架构临时文件。
test/feature下是一些展望。
test/daily,通过README了解到这是每日的回归测试单元。runDailyTestSuite.sh通过调用ledger_lte.py、testAuctionChaincode.py、systest_pte.py执行单元测试。对于go的单元测试,go test结果通过管道符传给github.com/jstemmer/go-junit-report转化为xml格式(README中的示例go test -run ORD77 -v | go-junit-report >> results.xml),目的应该是把go test的结果格式化展示分析(可惜报告展示的链接404,IBM之类的大厂代码严谨,有些测试内容过于详细,最近看test目录已经八个月没更新了)。testAuctionChaincode.py使用pytest做测试框架,主要调用test/tools/AuctionApp/api_driver.sh进行create_channel、join_channel、install_chaincode、instantiate_chaincode、post_users、get_users、download_images……等功能调用peer的cli发命令返回输出。

(待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值