随着时间的流逝,2022的赛项规程和赛项赛题也在3月24号全部官网发布了,看了下其他的赛项赛项组委会今年改革真的狠要求每个赛项公布十套题,看着软测赛项又有无力吐槽点都是看到第一眼都是懵的(公布的试题练习只有软测每次都是这样,自己去赛项规程和赛项试题去寻找考试的比赛的要点)仔细分析下确实还是有很多有用的信息。以下是我对21年和22年之之间的相同点和不同点做对比


2022与2021相同点:还是以资产管理系统为被测对象,资产管理系统3.0系统 23个模块。
对于2021不同点我做了以下几点不同的分析


相对于2021来讲把白盒测试改成了单元测试多了个接口测试,但是在2021年一些省份比赛的时候也比了接口测试,对于这部分省份的省一来说在这部分还是很有优势的


比赛时间为8个小时,我算了下时间9点到下午五点不就正好是8个小时在看看就餐不设置专门用时在对于参赛选手来说是一个严峻的考验不向2021分为三个部分,比2021年来说更加灵活,2021年来说可能是A做liunxB做白盒测试A写计划用例B写总结Bug这样对于2022的比赛任务需要合理安排时间。

从相关软件来看最大的变化就是文档编辑器从去年的office改成了WPS这对于写用例和找bug的选手来说意味着一些快捷键使用的变化。


从以上截取赛规和赛题来看这部分跟2021年来说还是有些差异的,首先看21的的任务一的环境搭建与系统部署,对比下21年需要对CentOS进行配置,在今年的国赛规程中里面取消了对CentOS的配置。

22年的比赛设备参数来看还是对人力资源系统liunx做部署可以参考2021年的正式比赛文档进行备赛。



这部分也是改动比较大的部分,相对于2021来讲的白盒测试改成了使用JUnit框架编写单元测试,需要运用到工具的使用考察的范围也有变化JUnit断言、参数化设置、测试套件等这些方法的改变,需要参赛选项熟练的使用的使用这些方法
代码备赛方向还是2021年国赛白盒测试的20个题


21年的时候作为任务二制定功能测试计划、设计功能测试用例、执行功能测试用例、编写功能测试总结报告4个内容,但22年来看分为了两个部分,本质上的区别
21年根据《A5-BS资产管理系统需求说明书》进行需求分析,划分和界定测试范围,分解测试任务,预估测试风险、测试工作量和测试进度。
22年根据整体测试要求进行分析,针对功能测试、自动化测试、性能测试、 接口测试任务,划分和界定测试范围,分解测试任务,预估测试风险、测 试工作量和测试进度。
从最开始的功能测试到全部测试阶段都需要编写文档里面,整体测试计划设计和整体测试实施情况这部分是之前没有的,需要对这部分好好的琢磨。
这部分跟21年是没有任何的变化


22年对自动化测试难度加大增加了Page Object 设计模式、数 据驱动+Page Object 模式
估计变化的应该在最后一个题使用Page Object+Unittest+数据驱动的模式出题
性能测试改动看赛项没有太大的改动,但是在22年的赛题中有个地方
从以前的新增操作,变成查询操作这部分的性能测试功能点选取已经开始改变,所以在备赛过程中需要从开始的新增操作到修改、删除、查询等都需要作为测试的功能点







在7月18号中单元测试明确考察的重点跟难点,并给出相应的题目,单元测试工具Eclipse从2020.09版本到2022.03版本。






之前提到计划和总结模板已经改变从功能测试到整体测试,之前整体测试计划设计和整体测试实施情况并不明确这部分考察的内容,在本次更新中也给出了相应的回复针对功能测试、自动化测试、性能测试、接口测试做出计划,设计介绍、过程回顾。
2022年正式赛卷
附件:GZ-2022036 软件测试赛项赛题7月18日更新.doc
附件:GZ-2022036 软件测试赛项规程(7月18日更新).pdf
一赛题设置
本次软件测试技能大赛竞赛内容主要包括:任务一环境搭建及系统部署,任务二单元测试执行,任务三设计测试文档,任务四设计测试用例和执行测试用例,任务五自动化测试执行,任务六性能测试执行,任务七接口测试执行一共七项任务,竞赛题目来自软件测试赛项试题库,针对真实企业项目的资产管理系统备置系统进行测试,主要考核参数选手的技术技能逻辑思维和综合能力在在竞赛内容上结合目前行业企业真实工作过程及实际工作岗位要求进行补充,完善,目的是为了满足软件测试人才所需要掌握的相关要求并参考职业院校软件测试相关课程以及软件测试相关职业技能等级证书的要求,贯彻赛项融通的原则
二评分原则
评分点:
任务一环境搭建及系统部署:JDK版本是否正确,MySQL初始化数据库命令及结果是否正确,Tomcat环境变量是否可以访问,人力资源服务系统是否可以访问等
任务二:针对题目进行程序设计编写源代码,针对源代码进行测试数据分析以及junit代码程序设计最后执行单元测试脚本设计
任务三、任务四:测试计划和测试总结报告的正确性,测试用例编写重点测试用例的发现,bug编写重点bug的发现
任务五:自动化测试术语和自动化测试代码的正确性
任务六:性能测试术语定义的正确性性能测试工具截图的正确性
任务七:接口测试术语定义的正确性和接口测试实施过程执行截图的正确性
三竞赛成绩分析
四主要失分点分析
任务一环境搭建及系统部署基本无失分点
任务二单元测试全部测试数据组数未最少量来达到测试要求,单元测试的测试方法不正确
任务三测试文档 测试文档依旧以往年功能测试计划和总结报告的思路进行设计,现在是针对整体测试进行设计,应该以实际过程中的测试方法测试过程进行设计
任务四功能测试重点测试用例和重点测试bug覆盖率比较低,重点测试用例和重点测试bug为复杂的逻辑隐藏较深资产盘点中借还盘点备用字段是否必填盘点结果是否异常变化很少有参赛队考虑到app登录对无权限用户登录没有考虑到,本次比赛重点bug如资产借还同一资产登记两次的情况很少考虑到
任务五:自动化测试相对于2021年增加了po设计模式,更多的题目中设计到框架断言基本上做的比较好
任务六:性能测试一loadrunner部分参数队针对集合点事务关联等方法使用不是很数量,在性能测试报告中针对相关名称术语定义设计不是特别完善
任务七:接口测试设计相当比较好
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel
只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您
我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element