目录
作为测试从业者,编写测试用例,测试计划,测试报告都是必经之路,最近完成了年终述职以及版本准出,感觉测试报告或者各类报告真是职场人不可或缺的一项技能,趁着热乎劲🔥,写下一些注意事项吧~
要写测试报告,首先得知道到底什么是测试报告?
测试报告:是完成测试工作之后,测试人员交出的一份总结性汇报文档
这既是对于你测试工作的一个总结,也是对于你测试对象的一个评估!
既然测试报告主要包含这两部分,那么另一个问题就是测试报告要写给谁看?
给领导?还是产品?还是开发?还是企业里的任何人?
这一点很重要!!!
就像你写一篇悬疑推理小说,有可能会被一些学生看到,觉得你的构思很精巧;有可能会被一些大牛看到,觉得文笔还有巨大的进步空间;也有可能被一些萌新看到,第一次接触悬疑推理,完全不懂这些推论是怎么来的,所以,问题来了,你的测试报告是给谁看的?
在企业中一般是给所有与这个项目有关的人看的,包括你的主管,项目领导,产品,运营,前后端开发等等,甚至是销售人员
所以这一份报告怎么样才能让所有人都能看懂?怎么样让所有人都能一眼看到他想要的内容?
既然你的测试报告要给这么多不同岗位的人提供他们想要的信息,那就应该有一个逻辑,一个贯穿始终的逻辑!
我们先看看一份测试报告应该包含什么?
然后再看一下这份测试报告的内容应该以什么方式呈现?
首先,这份报告要体现你的工作内容,一个大项目搞了一年半载,一个小的功能回归就点了几下鼠标,这都是你的工作,说白了,和你下地干活没有任何区别
下地:犁地,播种,灌溉……收获粮食(结果)
测试:功能,性能,压力……软件稳定和健壮(结果)
所以这份报告应该体现你的工作内容!
包括但不限于:
以上测试工作纷杂繁多,具体按照你的测试对象来判断,如果有兴趣我也可以再开一章单独聊聊
这里包含的也比较繁多,就像你下地秋收一样,如何评判你的劳动成功?颗粒是否饱满,每亩产量是否充足,坏果率大概是多少?
但是一定要记住,不是所有人都会懂你这些技术细节,所以需要一句简单的总结,来告诉所有人经过你的测试工作,软件质量到了一个什么样的地步?
【例如】
这既然是一款软件,就会有他的卖点,核心竞争力,和基础功能,也会有同行业的竞品(绝大部分情况是有的),在1.2中你已经给出了“一句话结论”,那么大部分人就已经不会接着看你这份报告了,对于他们来说就已经够了,但你这份报告才刚刚开始~
就像我们出去吃饭一样,首先这份饭要能吃,其次才是什么好不好吃


一款软件最基础的功能要具备,稳定性也得具备,这才是它的经济基础,有了经济基础才有上层建筑,才是那些花哨的用户界面,领先行业半个世纪的技术亮点等等……
所以这一部分应该包括(以CSDN软件为例,数据全部虚构!!!)
虽然这叫一份测试报告,但是有些软件庞大,光功能点就动辄成百上千,大的模块都有十几个,你一个人是测不完的,那怎么办?难道就只是呈现你的测试工作就可以了吗?
当然不行!
还是以CSDN为例,我的工作就是测试Android端APP,我测试了功能(发帖,看帖,评论等),性能(系统多后台下浏览,24h连续浏览等),兼容性(市面主流安卓机)

那我就只写这么多吗?
比如A同学负责Web端的测试(Windows&Mac),B外包同学负责IOS端的测试,C团队参与了弱网情况的软件稳定性测试,这些所有的进展都要在这里汇总,因为这一份测试报告就是整个项目的出口,而不是你一个人工作的呈现!

当然,ABC团队可能都有自己的测试报告,你可以引用
测试报告的最终目标,是给这一项目相关的所有人呈现出当前软件所有模块的最终质量!!!
说完了测试报告应该有哪些内容,那么就该说说这些内容应该如何排列组合了
很多领导基本就只看这一点了,直接给出当前软件结论,如果软件质量高,没啥问题,他们就根本不会接着往下看了,这里其实有点像议论文的总分结构,先总述,后分开详述
我前面说过了,如果这里没有遗留问题,一定是你的问题,而不是系统没有任何问题!任何系统都一定会存在各种各样的bug,大到内存泄漏,小到token提示信息缺失,如果没有遗留问题,说明你的测试工作还不到位,加油再测吧~
1)当前遗留严重问题
原则上有严重问题其实是不能发版的,但是如果不影响用户使用或者有应对措施就可以
所有的严重问题必须在下一个版本完成迭代!!!
2)剩余遗留问题给出排期
那么剩下的就是一些普通问题或者提示性问题,虽然不严重,但它是问题就得解决,必须得给出排期,并且精确到责任人,比如这么几类情况
这里一定要写清楚所有的软件版本,方便以后问题的迭代和回溯(甩锅),比如像下面这样
这里要写出系统测试情况,做了什么测试,覆盖了多少轮,一个是体现你的工作(摸鱼)情况,另一个反馈完整的软件质量,比如:
还是上面说过的其他团队的进展,或者你这产品的卖点,做一个专项,要有评测和竞品分析
虽然这两项往往都是合在一起的,但是这里我分开举例吧,比如自动编辑博文专项:
再比如发帖耗时的竞品分析:
内测也好,共创也好,都是需要听到客户的声音,这里建议写上全部的客户问题,已解决的用横线划掉,但是要保留,不要直接删除,来保留你为客户服务的诚心(鸡贼)
其实你们也发现了,我这文章里全是字,你们也不想看,所以这里有一些小技巧,能画📈的就画图表,问题清单或者问题描述也可以用xmind的形式绘制出来,该复杂的地方就复杂,该简单的时候就简单,详略得当,我就随便举两个🌰吧,毕竟我也不是学美术(前端)的
【例1】自动编辑博文专项

【例2】一键编辑的竞品分析

测试报告是你个人工作和软件质量的一个综合体现,不是你套用模板就能写出来的,所以我这里没有贴一个模板出来让你直接往上套。画虎画皮难画骨,光学个样子是不会明白为什么有人就那么善于写报告的,我也刚开始思索和总结,借着这次报告的机会,对项目也是一份完整的总结,进步犹如逆水行舟,与君共勉~
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/