当前位置: 首页 > news >正文

免费微网站系统源码百度seo优化方法

免费微网站系统源码,百度seo优化方法,做网站的公司北京有哪些,销售网站内容设计测试的基本目的之一,是对被测对象进行质量评估。换言之,是要提供关于被测对象质量的“确定性”。因此,我们很忌讳在测试设计中引入“不确定性”,比如采用不可靠的测试工具、自动化测试代码逻辑复杂易错、测试选择假设过于主观等等…

测试的基本目的之一,是对被测对象进行质量评估。换言之,是要提供关于被测对象质量的“确定性”。因此,我们很忌讳在测试设计中引入“不确定性”,比如采用不可靠的测试工具、自动化测试代码逻辑复杂易错、测试选择假设过于主观等等。

近期,我们看到了很多利用大模型辅助测试的研究和实践。尽管大模型在提升测试效率、提高测试用例可读性等方面展现出不错的潜力,但其决策结果所固有的不可解释性,对测试所期求的“确定性”产生了直接冲击。如果我们将测试设计的底座构筑在这种工具上,质量评估结论的可信性问题就会变得非常突出。

那么,大模型辅助测试的正确打开方式究竟是什么呢?目前来看,“利用大模型的生成能力、遵循用例多样化的设计路线、拓展测试集的缺陷检出能力”,似乎是一个相对靠谱的答案。

在这方面,Deng等人利用大模型开展模糊测试的一项工作[1],给我们提供了一个颇具参考价值的示例。我们具体来看看。

假设被测对象是一组API接口,那么测试用例的表现形式,就是调用这些API的测试代码。通过多样化的测试代码,我们能够验证这些API在各种调用行为中的表现是否符合预期,并找到可能存在的缺陷。

我们知道,为了实现用例的多样化,一种常用的手段是模糊测试方法。然而,对于代码形式的用例而言,如果直接对种子代码进行随机变异,大概率将导致编译错误或运行时错误,因此传统的模糊测试手段并不适用。这时,具备代码生成能力的大模型就派上用场了。

在代码生成领域,常见的大模型有两类:生成式大模型仅根据上文(如自然语言描述或前序代码)生成完整的代码片段;填充式大模型则可以在包含占位符的代码片段中进行填空。综合利用这两类大模型,我们就能够完成模糊测试中种子生成和变异的任务:首先用Codex这样的生成式模型,生成调用目标API的种子测试代码,继而用INCODER这样的填充式模型,对种子测试代码进行演化式的变异,得到更多模糊测试代码。最后,分别在CPU和GPU服务器上执行模糊测试代码,采用差分测试策略探查缺陷。整个过程如下图所示:

以下算法描述了演化式的模糊测试用例生成过程(上图中间部分):

该算法中包含如下要点:

  1. 在初始化部分,使用Codex生成的种子测试代码Seeds对种子银行进行初始化。种子银行中维护着目前为止生成的所有目标API测试代码。另外,需要对各个变异操作符的概率分布进行初始化,这个概率分布将在后续的迭代中不断更新,用以选取最合适的变异操作符;

  2. 在演化迭代中,首先从种子银行中选取一个种子,选取策略是先选出适应值最高的N个种子,然后采用softmax函数对这N个种子的适应值进行归一化,籍此评估每个种子最终被选中的概率,概率最高的种子中选;

  3. 根据变异操作符的概率分布,选取概率最高的变异操作符;

  4. 使用选定的变异操作符对种子测试代码进行变异,也就是将种子测试代码中的一个或多个位置(譬如API参数、方法名、调用前序代码、调用后序代码等)替换为<span>占位符。不同的替换位置,对应着不同类型的变异操作符:

  5. 将变异后的代码提交给INCODER模型,要求其对占位符位置进行填空。INCODER模型可能会给出多种不同的填空结果。如果填空之后得到的代码能够编译通过,那就是一个有效的模糊测试用例,否则就是无效的。之前我们对种子进行变异的目的,就是为了得到多样化的、有效的模糊测试用例。而对不同的待测API来说,适用的变异操作也是不同的。能够通过填空生成的有效代码数量越多,说明当前选定的变异操作符越适用。因此,我们可以用有效和无效用例的数量,对变异操作符的概率分布进行动态更新。这种思路实际上来自多臂老虎机(Multi-Armed Bandit, MAB)算法;

  6. 每一个填空生成的有效模糊测试用例,都将进入种子银行,成为下个迭代中的备选种子。在此之前,我们需要先评估这一段测试代码的数据流图最大深度D,并统计其中调用各种不同API的次数U-R(R是重复调用的次数),由此算出该用例的适应值得分。通常认为,那些涉及一长串不同API调用的用例,能够更充分地覆盖API之间的交互事件,因此也就更有可能发现API的潜在缺陷。适应值函数FitnessFunction(C) = D + U - R就是根据这一思路来定义的。

参考文献:

[1] Deng Y, Xia C S, Peng H, et al. Large language models are zero-shot fuzzers: Fuzzing deep-learning libraries via large language models[C]//Proceedings of the 32nd ACM SIGSOFT international symposium on software testing and analysis. 2023: 423-435.

http://www.tj-hxxt.cn/news/2111.html

相关文章:

  • 十大免费自媒体素材网站济南网络推广网络营销
  • 百度文库网站立足岗位做奉献爱营销电信版下载app最新版
  • 天天新网站网络营销主要是什么
  • 广州个人做网站互联网项目推广平台有哪些
  • 怎么做垂直自营网站培训计划模板
  • 做折页的网站怎么样推广自己的店铺和产品
  • 白城网站建设哪家专业百度百度地图
  • wordpress文章页面区别百度seo培训
  • 武汉网站建设排行上海百度推广电话客服
  • 如何看网站的ftp开发网站需要多少钱
  • 未来网站发展方向seo网站外链平台
  • 西宁网站制作制作网站模板
  • 昆明网络推广服务seo的名词解释
  • 做修图网站电脑配置小广告网站
  • 百度自助网站建设seo推广方式是什么呢
  • 关于网站建设申请快速网站轻松排名
  • 中国证券监督管理委员会的官网常用的seo工具
  • asp.net做网站的优势网站网络推广
  • 深圳网站建设服务公seo招聘职责
  • 晋江网站建设哪家好网络推广图片大全
  • 诸城公司做网站百度网站首页提交入口
  • 云服务器怎么样做网站怎么推广
  • 网站开发端口查询搜索引擎整合营销
  • 购物网站策划建设方案资源网站快速优化排名
  • 门户网站开发步骤360优化大师历史版本
  • 建站的方式有哪些网络推广外包加手机蛙软件
  • 网站建设最新流行品牌关键词优化
  • 深圳集团网站建设专业百度小说免费阅读
  • 光明新区网站建设重庆网站快速排名提升
  • APP手机端电子商务网站建设朋友圈广告30元 1000次