怎样保证测试的质量
1.不同的测试类型的结合,功能,性能,兼容性等,增加测试覆盖面,确保测试质量。
2.熟悉测试需求,测试目标,理解需求,设计测试用例。
3.用例的质量,对被测对象深入分析,功能进行细分,需求覆盖所有测试点,补充异常的测试点,复杂模块进行评审,提高测试点的覆盖面和测试用例的质量。
4.执行的质量,随时跟进测试进度,注意各类环境,各模块之间的交叉、关联,发现潜在问题。
5.缺陷管理,记录bug,跟踪管理缺陷,对遗留缺陷进行分析。
6.版本控制,建立主干分支,版本有问题可以随时恢复。
7.测试评估,对结果进行分析,讨论上线的风险,制定发生问题的解决方案。
一.深入了解需求,根据需求制定测试策略
1.测试范围和计划相比的偏差。
制定测试后,测试执行的进度情况,适当调整测试节奏,保证项目进度.
2.本版本的测试目标。
和产品沟通,了解产品具体实现的目标,并根据测试目标制定测试计划,编写测试用例.
3.需要重点关注的内容。
和产品沟通,确定重点功能,对比较重要的功能制定对应的测试场景,并重点测试.
4.测试用例的选择。
用最少的测试用例,覆盖最广的测试功能点.
5.测试执行顺序。
根据开发交付的可测试产品,制定好测试执行的顺序.
6.接收测试策略。
开发提测后,应该有对应的冒烟测试,如果提测功能没有实现,或者已有功能失效,要打回重新编码.
7.回归测试策略。
建立有效率的回归测试策略,使用适当的自动化测试框架,有效提高测试效率.
8.探索测试策略。
根据产品需求,进行探索性测试,会发现仅执行测试用例更多的bug.
9.自动化测试策略。
把功能界面变动比较小的产品,建立自动化测试框架,包括UI自动化和接口自动化.
二.跟踪测试缺陷,把握产品版本
1.使用缺陷管理工具,跟踪缺陷
使用缺陷管理工具,比如bugfree/禅道等,记录bug,跟踪缺陷,对遗留缺陷进行分析.
2.做好代码的版本控制
代码都有版本管理工具,比如svn/git等,应该把开发环境,测试环境,生产环境分别建立分支。只有把测试通过的代码合并到主线(master),主线上的代码才可以发布到生产环境.
这里最好引入持续集成工具,比如jenkins,如果发布到生产环境的代码出现问题,可以及时回滚到前一版本,保证线上系统正常运行.
三.测试分层
1.代码层
主要是进行白盒测试,对代码进行review,审核.
2.接口层
由于UI层变化比较快,对接口有效进行测试,可以大大提升测试效率.如果短时间不能建立自动化测试框架,可以先使用接口测试工具,进行主要接口的测试.
3.UI层
对于变动比较小,业务流程基本不变动的系统,可以引入UI自动化,进行回归测试和验收测试.
四.压力测试和安全性测试
1.压力测试
选取系统常用的场景,预测并发数量,并模拟高并发测试,根据测试数据,发现系统缺陷.
2.安全测试
探索发现系统可能被黑客或者竞争对手利用的漏洞,测试隐藏风险.
五.质量评估
根据测试出来的问题,整理出文档,告知各个项目管理负责人,确定哪些缺陷必须解决,哪些bug可以下一个版块再解决,讨论上线的风险,制定发生问题的解决方案
六、反应项目质量的指标
需求探测率,需求变更率,需求准时率,静态代码扫描覆盖率,构建成功率,用例评审通过率,提测准时率,提测功能完成比,冒烟测试通过率,每轮Bug数,Bug等级,Bug激活率,Bug每回解决率,Bug有效率,Bug优化率,Bug日清率,环境Bug数,测试Bug贡献率,功能代码覆盖率,Bug反馈有效率,Bug探索率(DDP,O-DDP),千行代码Bug率,项目按时完成率
七、衡量测试质量指标
1、测试需求执行覆盖率应达到100%(业务用例均已执行)
2、测试覆盖率(代码覆盖率)>= 80% ,任务达标 (自动化测试 + 手工测试)
3、兼容覆盖率(设备,系统版本,应用版本)
八、常用的代码覆盖率统计工具
如何评估测试过程的测试情况?
很多时候完成功能测试后就会发布上线,甚至交叉和回归都没有足够的时间去执行,然后通过线上的补丁对遗漏的问题进行修复。如果可以在发布前了解本次测试过程所覆盖代码执行的比例情况,那么就可以一定程度上反应测试的执行情况和系统的质量情况。
代码执行覆盖率是一种很好评估测试人员在执行测试过程中,所命中技术编码情况的手段,并可以从侧面评估系统的质量情况。
1、PHP代码覆盖率统计工具PHPCodeCoverage(PCC)
PHPCodeCoverage(PCC)是一个基于xdebug检测php代码覆盖的工具,它能够应用于黑盒功能测试,接口测试,单元测试等任何php代码环境,通过监听代码被执行的路径覆盖,展示代码覆盖的结果。
使用代码覆盖工具可以辅助我们检查测试过程中,哪些代码条件逻辑是一次都没有被执行过,从而补充遗漏的测试用例和场景。
PCC开源项目位置:https://github.com/cj58/PHPCodeCoverage 。
参考文献:http://t.csdn.cn/xMEss
2、php代码覆盖工具-phpunit-支持生成覆盖率报告
版本信息:
php 7.3.12
xdebug 2.8.0
phpunit 7.1.0
composer 2.0.8
1.安装php环境:教你使用Wampserver(超级详细) - 简书
2.安装xdebug
下载xdebug,windows上安装xdebug需要下载的是dll组件,下载时注意php版本,我的php版本是7.3.12
下载地址: Xdebug: Downloads,也可点击直接下载php_xdebug-2.8.0-7.3-vc15-x86_64.dll
php和phpunit对应关系:
3、Python代码覆盖率统计工具coverage
coverage.py是一个用来统计python程序代码覆盖率的工具。它使用起来非常简单,并且支持最终生成界面友好的html报告。在最新版本中,还提供了分支覆盖的功能。
官方网站:
http://nedbatchelder.com/code/coverage/
安装:
pip install coverage1
官方文档:http://coverage.readthedocs.org/en/latest/
官方提供2种统计结果方式:
1、Coverage 命令行
2、Coverage API
参考文献:http://t.csdn.cn/MP0Ki
4、Java代码执行覆盖统计工具 Jacoco
Jacoco可以嵌入到Ant、Maven中,也可以使用Java Agent技术监控任意Java程序,也可以使用Java Api来定制功能。Jacoco会监控JVM中的调用,生成监控结果(默认保存在jacoco.exec文件中),然后分析此结果,配合源代码生成覆盖率报告。需要注意的是:监控和分析这两步,必须使用相同的Class文件,否则由于Class不同,而无法定位到具体的方法,导致覆盖率均为0%。
参考文献:http://t.csdn.cn/jrHJ3
5、Lua代码执行覆盖统计工具
代码覆盖率可以做到行覆盖率,函数覆盖率和分支覆盖率。通过Lua语言debug库的sethook方法可以设置以行或以函数来监控代码的执行行为。debug.sethook ([thread,] hook, mask [, count]):
可以通过官方文档获得更好的介绍,这里通过设置回调函数和监控的方式,然后在监控的回调函数里面记录当前执行的文件及执行的行数、以及函数记录。最后在停止hook的时候将上面记录数据输出到文本文件,这样就可以知道本次测试在运行过程中所有代码执行的情况记录。
Lua监控代码执行情况的项目仓库
https://github.com/memolp/LuaCodeCoverage
参考文献:https://www.cnblogs.com/jeffxun/p/15616570.html
6、Go代码执行覆盖统计工具test coverage
Go 1.2 的发布引入了一个 test coverage 的新工具, 它采用了一种不寻常的方式来生成覆盖率统计数据, 这种方法建立在 Godoc 的技术的基础上。
查看结果
保存收集的统计信息的文件
上面的例子的测试覆盖率很差。 为了探索具体为什么, 需要 go test 写一个 coverage profile , 这是一个保存收集的统计信息的文件, 以便能详细地研究覆盖的细节。 这很容易做: 使用 -coverprofile 标志来指定输出的文件:
注: -coverprofile 标志自动设置 -cover 来启用覆盖率分析。
测试与以前一样运行, 但结果保存在文件中。 要研究它们, 需要运行 test coverage tool。 一开始, 可以要求 覆盖率 按函数分解, 虽然在当前情况下没有太多意义, 因为只有一个函数:
查看的更有趣的方式是获取覆盖率信息注释的源代码 的 HTML 展示。 该显示由 -html 标志调用:
运行此命令时, 浏览器将弹出窗口, 已覆盖 (绿色), 未覆盖(红色) 和 未埋点(灰色)。 下面是一个屏幕截图:
有了这个信息页, 问题变得很明显: 上面忽略了几个 case 的测试! 可以准确地看出具体是哪一个, 这样可以轻松地提高的测试覆盖率。