在上一节中,我们提到软件测试的生命周期、测试过程、测试流程、测试用例,以及如何找出bug,接下来,我们继续来掌握其他方面的内容。
七、测试报告
测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。
一份详细的测试报告包含足够的信息,包括产品质量和测试过程的评价,测试报告基于测试中的数据采集以及对最终的测试结果分析。
测试报告的主体框架为:
1、首页
·· 报告名称(软件名称+版本号+用户端类型(android,iphone,后台管理等等)+测试范围(单元,集成,系统,模块等等)+测试报告)
·· 报告委托方,报告责任方,报告日期等
·· 版本变化历史
·· 密级
2、引言
1)编写目的:本测试报告的具体编写目的,指出预期的读者范围。
2.2 项目背景
对项目目标和目的进行简要说明。必要时包括简史,这部分不需要脑力劳动,直接从需求或者招标文件中拷贝即可。
2.3 系统简介
如果设计说明书有此部分,照抄。注意必要的框架图和网络拓扑图能吸引眼球。
2.4 术语和缩略语
列出设计本系统/项目的专用术语和缩写语约定。对于技术相关的名词和与多义词一定要注明清楚,以便阅读时不会产生歧义。
3、测试概要
测试的概要介绍,包括测试的一些声明、测试范围、测试目的等等,主要是测试情况简介。(其他测试经理和质量人员关注部分)
测试方法(和工具)
测试范围
测试环境与配置
4、测试结果与缺陷分析
整个测试报告中这是最激动人心的部分,这部分主要汇总各种数据并进行度量,度量包括对测试过程的度量和能力评估、对软件产品的质量度量和产品评估。对于不需要过程度量或者相对较小的项目,例如用于验收时提交用户的测试报告、小型项目的测试报告,可省略过程方面的度量部分;而采用了CMM/ISO或者其他工程标准过程的,需要提供过程改进建议和参考的测试报告-主要用于公司内部测试改进和缺陷预防机制-则过程度量需要列出。
1)测试执行情况与记录
描述测试资源消耗情况,记录实际数据。(测试、项目经理关注部分)
2)覆盖分析
需求覆盖率是指经过测试的需求/功能和需求规格说明书中所有需求/功能的比值,通常情况下要达到100%的目标。
需求/功能(或编号) 用例个数 执行总数 未执行 未/漏测分析和原因
测试覆盖率计算 执行数/用例总数 ×100%
3)缺陷的统计与分析
缺陷统计主要涉及到被测系统的质量,因此,这部分成为开发人员、质量人员重点关注的部分。
缺陷汇总:被测系统系统测试回归测试总计
合计:按严重程度:严重 一般 微小
按缺陷类型:用户界面 一致性 功能 算法 接口 文档 用户界面 其他
按功能分布:功能一 功能二 功能三 功能四 功能五 功能六 功能七
缺陷分析:本部分对上述缺陷和其他收集数据进行综合分析
缺陷综合分析:缺陷发现效率 = 缺陷总数/执行测试用时
可到具体人员得出平均指标:用例质量 = 缺陷总数/测试用例总数 ×100%;缺陷密度 = 缺陷总数/功能点总数
残留缺陷
评价:对这些问题的看法,也就是这些问题如果发出去了会造成什么样的影响
5、测试结论与建议
1)测试结论
测试执行是否充分(可以增加对安全性、可靠性、可维护性和功能性描述)
对测试风险的控制措施和成效
测试目标是否完成
测试是否通过
是否可以进入下一阶段项目目标
2)建议
1.对系统存在问题的说明,描述测试所揭露的软件缺陷和不足,以及可能给软件实施和运行带来的影响
2.可能存在的潜在缺陷和后续工作
3.对缺陷修改和产品设计的建议
4.对过程改进方面的建议
八、测试策略
策略,百度解释为:“策略”就是为了实现某一个目标,首先预先根据可能出现的问题制定的若干对应的方案,并且,在实现目标的过程中,根据形势的发展和变化来制定出新的方案,或者根据形势的发展和变化来选择相应的方案,最终实现目标。
软件测试的目标是验证软件的功能,找出存在的问题,评估软件质量是否达到要求。软件测试策略要围绕这么目标去考虑和制定。测试策略描述了测试项目和测试任务之间的关系。它用来说明要测什么,如何测,如何协调测试资源和测试时间等。他的目的和作用是指导测试工程师进行测试工作的总体方向和侧重点。测试策略制定的是否合理高效会对测试项目的进度产生很大的影响。
测试策略分为了一下几个模块:
这个模块用来罗列测试项目本身重要的里程碑,每个里程碑都需要有明确的结束时间,这个时间可以指导我们后续的测试。如果测试时间安排不足,我们就可以在后续的测试范围中挑选优先级比较高的特性来执行测试,这样可以最大限度的保证产品的质量。
这一部分分为In Scope和Out Of Scope.这一部分需要说明哪些产品模块是在测试范围中的,哪些是本阶段测试不考虑的。对于在测试范围中的模块,需要给出优先级以便相应测试时间不足的情况;对于不在测试范围中的模块,需要给出原因(为什么在本测试阶段不考虑测)。
测试资源在测试策略中也是很重要的一环,它分为人力和工具两部分。人力资源主要说明参与测试的人员,当然可以包括很多的角色,如何专业测试人员,客户,产品经理等。工具主要是指可能用到其他软件(可能需要license)。
测试环境主要包括推荐环境解决方案,操作系统要求,软硬件要求。
测试方法的罗列主要是为了说明针对测试项目我们要开展哪些类型的测试,功能测试是必须的,非功能测试是可选的。测试方法的选择主要根据软件的所要达到的质量特性来决定。软件的6大质量特性为:功能性、可靠性、易用性、效率性、易用性、可维护性、可移植性
用例设计普遍的方法为等价类划分、边界值、因果图、判定表、场景之类。我想说的是,要提高用例的有效性和对验证点的覆盖度,设计用例时需要以软件所要具备的27个质量子特性为出发点功能性(适合性、正确性、互操作性、安全保密性、功能依从性);可靠性(成熟性、容错性、易恢复性、可靠性依从性);易用性(易操作性、易理解性、易学习性、吸引性、易用性依从性);效率性(时间特性、资源特性、效率性依从性);可维护性(易分析性、易修改性、稳定性、易测试性、可维护性依从性);可移植性(适应性、易安装性、易替换性、共存性、可移植性依从性)
对于一个完整的产品来说,文档是很重要的一环。它一般包括安装、升级文档,用户指南等。文档不单单是一个文件,它需要经过完整的测试才能发布给客户。差的文档很可能会误导用户,从而使他们对测试项目失去信心(虽然客户很少看文档……:))
风险管理模块需要罗列出来现在已知的可能会出现不确定性的因素,这些因素可能来自技术,资源或者其他方面的。
这部分有一定的特殊性,并不适用于所有的产品。这部分主要是对测试项目安装包进行验证。
九、操作系统命令、数据库命令
熟悉window和linux系统的基本操作命令、因为客户端基本使用的是window,服务器大多采用了linux。最起码得掌握这两个操作系统中:文件的新建、查找、修改、删除,压缩、解压缩;软件的安装、卸载;程序的启动、停止。
对于数据库,很多人说我是测试,我只关心业务,我为啥要懂数据库的操作。其实业务的本质就是操作数据库中的存储的数据。数据是开展业务的基础,很多情况下,我们不能只关注页面的显示变化,而是要到数据库中查看数据是不是符合业务结果的预期。所以测试人员最起码要掌握sql server、mysql、Oracle这几种主流数据的增删改查操作命令。一般面试也就问这几种。
十、UI自动化
现在自动化测试已经成为测试人员提高薪资的一个必要技能,这里推荐几个我知道的UI自动化的方案:web页面的自动化Python+selenuim;移动端的自动化(ios+android)Python+appium。其他的方案还有很多,介于我没接触过也没了解过,所有就不瞎说了。要做UI自动化,还需要了解的知识有html、css、javascript。
十一、接口测试(手工+自动化)
同样的,提高薪资的技能包,这里我用过两个方案,一个是手动做接口测试,推荐postman,适用于对数量比较少的接口去做测试,比如集成其他系统时的技术验证。多接口的批跑测试我接触到的是ant+jmeter工具,jmeter可以批跑接口,在每个请求里加上检查点。ant是Java的一种文件打包集成工具,可以控制调用jmeter,生产html格式的结果报告,方便查看结果
十二、性能测试
同样的,提高薪资的技能包。性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
性能测试我主要接触过两个工具 loadrunner、jmeter。jmeter比较适合公司自己内部做一个性能评估,他是免费的,轻量型的,安装和使用都很方便,就是在报表和结果分析上没有那么完善和漂亮。loadrunner,大名鼎鼎,很多对外提供的数据报告都是只认可loadrunner,能生成完善的数据分析和漂亮的报表。
十三、团队管理
具备团队管理能力,意味着你不止能自己独立工作,你还可以带领、指导其他人一起完成工作,是一个升职的必备能力。
团队管理即是组建和管理一个测试团队,制定和落实一个有效的测试流程,计划、设计、执行并跟踪输出项目的测试报告,为项目质量提供有效保障。
以上所有就是我认为一个测试人员应该具备的知识体系。其实还有好多我没接触过的,比如渗透测试、单元测试、安全测试之类的。接触的越多,越能感觉到自己会的太少,共勉。
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理