项目缺陷问题总结
一、ab个性化实验
1. 性能问题
场景:
创建一个个性化实验,包含两个子实验,此时开启个性化实验campaign,子实验也被开启,
第二步,暂停个性化实验,提示暂停成功,
第三步,停止个性化实验,提示停止成功,但是状态变成暂停,实际是停止状态。
原因:
2. 测试验证点参考
列表页展示已经创建的数据,分为3个tab,全部、草稿箱、回收站
新建一个实验,只完成第一步,该实验自动保存到草稿箱,此时点击返回列表,有两种选择,第一是展示全部tab,第二是展示草稿箱tab。
当时发现的bug是这样的,退回到草稿箱tab,但是展示的数据是全部的数据,也就是数据错乱了,定位有问题。
二、渠道商供应链
资金工作台 acp,对应拍档客户。商机工作台 p4p,对应直销客户,包括私海,公海,服务中客户
不同客户 属于不同的客群,客群有客群id
不同客户 可以有不同的方案,方案有方案id
根据客群id 和 方案id,在不同的工作台分别展示。
将一个原本属于p4p商机工作台的客群,修改为acp资金工作台的客群,其他字段不动,此时根据客群映射就应该在acp资金工作台展示。
现在造一个拍档客户,打上上述客群的标签,则会在资金工作台展示
测试过程中一个场景:资金工作台支持客户的【去跟进】操作,客户跟进填入产品和意愿度后,预期结果是在tab【我的跟进】里查看到,而如果绑定了上述客群,就会出现跟进信息填完后客户没有在【我的跟进】里,并且属于give up状态
原因:这个客群只被修改了归属工作台的字段,实际映射关系没变,导致提交时匹配不到对应客群字段,透出give up结果。
三、Redis中间件分布式存储
内容:
创建(文件、目录)、打开(读打开、写打开)、写入、读取(顺序读、随机读)、边写边读、关闭、删除、
从NAS加载(文件、目录)、从磁盘卸载加载的、
dfx:服务断了(各种期间workermaster、gcs),一次或多次写入数据量过大(并发)、心跳断了RPC异常、网络断了、丢包chaosblade
用例:
有set,get,delete方法,worker1 执行 set key,ttl(自动删除时间)=60;
worker1和master1 故障,超过ttl的时间重启恢复;
预期worker1自行删除成功,此时调用get获取失败,worker2delete失败
实际 worker2delete成功
原因:恢复重启之后,过期的数据要在对账之后才能自动删除成功,此时的delete状态错误。
问题1:
堆栈溢出coredump:使用大的局部变量(因为局部变量都分配在栈上),这样容易造成堆栈溢出,破坏系统的栈和堆结构,导致出现莫名其妙的错误。解决办法:使用动态内存分配机制,new/delete。要注意释放已分配内存,避免出现内存泄露。
其他coredump:内存访问越界,多线程程序使用了线程不安全的函数,多线程读写的数据未加锁保护,空指针。
问题2:
1. 版本问题:多种语言使用的情况下,java,c++,python,会导致某些情况下测试结果与预期不同,比如value值输入失败,先考虑 测试版本比如Java、python的版本是否和开发一致。
2. 一致性问题:对象缓存中:多台机器的情况下,比如写数据:具有同步、异步两种,同步的时候,W1创建,W2,W3也同时创建,异步则不会同时创建。
3. 权限问题:chmod 777 / chown -R chuting:chuting /home/ct拥有者
4. 测试全面性:首先不能忘了语义测试:比如这个接口只可以调用一次,测试1次,2次,多台并发调用。
5. 网络故障:ChaosBlade
{"code":200,"success":true,"result":"c29053229c16c839"}
//c++并发
#include<iostream> #include<thread> using namespace std; void proc(int a) { cout<<"子线程"<<endl; 创建线程。 } int main() { cout<<"主线程"<<endl; int a=9; thread th( proc , a ); 实例化,传入函数名,和函数所需要的参数。 th.join(); return 0; }
Git项目版本管理 克隆远程仓库:git clone [ gitee仓库路径 ] 添加修改记录:git add --all ./ 提交本地仓库:git commit -m "备注信息" 同步远程仓库:git push origin master

浙公网安备 33010602011771号