圈复杂度(暂缓)
复杂度越大,程序越复杂
计算公式:
V(G) = E - N + 2
E代表控制流边的数量,n代表节点数量
V (G) = P + 1
p为判定节点数
几种常见的控制流图:
Linux文件权限
具有四种访问权限:r(可读),w(可写),x(可执行), -(无权限)
使用ls -l 命令可以查看某个文件或者目录的权限
它以显示数据的第一个字段为准,第一个字段由10个字符组成,如下:
第一位表示文件类型,-表示文件,d表示目录
2-4位表示文件所有者的权限,u权限
5-7位表示文件所有者所属组成员的权限,g权限
8-10位表示所有者所属组之外的用户的权限,o权限
2-10位的权限总和有时称为a权限
MYSQL存储引擎
memory, mrg_myisam,csv,federated,performance_schema,myisama,inndb,blackhole,archive
HashMap与Hashtable的区别:
两者都实现了Map接口
hashmap不是线程安全的,hashtable是线程安全的
hashmap不是同步的,hashtable是同步的
二维码支付的测试用例
界面UI上:
打开支付宝后,能否正确显示界面,二维码的界面是否正确,支付的每个步骤界面是否正确。不会出现前端界面错误,或者打开不了界面。
界面是否清晰没有错别字
出示二维码时自动调整屏幕亮度
功能测试:
扫码枪能否成功扫到用户手机中的二维码,扫码成功后能否收到钱,并且成功生成收款的界面。支付宝后台、商家后台、用户手机能否成功传输支付结果信息。
性能测试:
压力测试:持续的扫码,测试扫码支付功能在强压的状态下,工作状态如何。
网络测试:测试在不同网络环境下,不同网络信号强度的情况下,整个支付流程是否出现卡顿,卡顿的点容易出现在哪里。
易用性测试:(在整个用户支付的过程中,操作步骤是否简易方便。)
在不同光线,屏幕不同亮度的情况下,能否成功完成扫码收款的功能。
用户操作的响应时间多个用户同时在使用扫码操作,系统性能
兼容性测试;
测试扫码支付功能,在不同手机品牌,不同操作系统下是否兼容
接口测试:
明确整个支付流程所需要调用的接口,分清楚商家和第三方平台的接口以及参数的请求方式,包括对接口特定参数的加密,使用异常单号模拟支付,对服务端的检验等等
安全性测试:
二维码如果超过安全时间后能否自动更新为新的二维码。测试整个支付流程的安全机制能否成功实现。
支付请求的伪造,金额的恶意篡改,恶意模拟第三方接口来调用商家接口等,均是我们需要考虑清楚的问题
二维码是否有时间和次数的限制如果使用了安全套接层,测试加密是否正确,加密前后信息是否完整
持续集成、持续交付与持续部署
持续集成指的是频繁的将代码集成到主干上。
它的好处主要有两个:
快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至 难以集成。
持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的中。它强调的是,不管怎么更新,软件是随时随地可以交付的。
持续部署是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。持续部署的前提是能自动化完成测试、构建、部署等步骤。