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

AI在自动化测试中的伦理挑战

在软件测试领域,人工智能(AI)已经不再是遥不可及的未来技术,而是正在深刻影响着测试过程的现实力量。尤其是在自动化测试领域,AI通过加速测试脚本生成、自动化缺陷检测、测试数据生成等功能,极大提升了测试效率和质量。然而,随着AI技术的广泛应用,特别是在自动化测试中的应用,伦理问题逐渐成为一个亟待解决的挑战。这些挑战不仅关系到技术的使用方式,还涉及到AI如何影响测试人员的角色、工作流程,甚至可能带来的社会影响。

本文将深入探讨AI在自动化测试中面临的伦理挑战,并探讨如何在实际工作中应对这些挑战,确保技术的发展既能推动行业进步,也能避免潜在的负面影响。

1. AI决策的透明度与可解释性

AI系统在自动化测试中的应用,尤其是基于机器学习(ML)和深度学习(DL)模型的自动化测试工具,往往具有较强的预测能力和自动化生成测试案例的功能。然而,许多AI模型,特别是深度神经网络,往往是“黑箱”式的,这意味着我们很难理解模型是如何做出决策的。在自动化测试中,AI系统可能会自动生成测试用例或识别潜在的缺陷,但如果没有足够的透明度和可解释性,测试人员将很难理解这些决策的背后逻辑。

伦理挑战:

  • AI在生成测试案例时,若无法解释其背后的推理过程,测试人员和管理者难以信任这些自动化结果。
  • 如果AI系统在缺陷检测中出现错误,且无法提供清晰的解释,可能会导致错误被忽视或误判,影响软件质量。
  • 在关键业务系统的测试中,缺乏可解释性可能会导致不符合标准的自动化决策被采纳,最终影响到产品质量和用户体验。

应对策略: 为了应对这一挑战,AI系统需要增加透明度和可解释性。通过引入可解释AI(XAI)技术,使用可解释性较强的机器学习模型,或者为黑箱模型提供后处理机制(如生成决策路径或可视化工具),可以帮助测试人员理解和验证AI的决策过程。此外,确保AI系统可以生成详细的日志和报告,以便在出现问题时进行追溯和分析。

2. 数据隐私和敏感信息处理

自动化测试过程中,AI需要大量的数据来训练和优化模型,包括历史测试数据、缺陷报告、代码库等。这些数据中可能包含敏感信息,特别是在处理个人数据或商业机密时。如果AI在没有适当的保护措施下处理这些数据,可能会导致数据泄露和隐私侵犯。

伦理挑战:

  • 使用个人数据进行训练时,若未充分考虑隐私保护,可能会违反数据保护法规(如GDPR)。
  • 测试过程中,AI可能会接触到企业的商业机密,若这些数据未经充分保护,可能会导致知识产权泄露。
  • AI的过度依赖数据训练模型的做法,可能会使模型学习到偏见或不当的判断,影响测试结果的公平性。

应对策略: 为了应对数据隐私和敏感信息处理的挑战,企业必须遵守数据保护法规,并在AI训练过程中进行严格的数据去标识化和脱敏处理。同时,采用数据加密、访问控制等技术保护数据的安全性。此外,设计AI模型时要关注公平性,避免偏见的产生,确保自动化测试结果具有公正性和可靠性。

3. AI对测试人员角色的影响

随着AI在自动化测试中的应用越来越广泛,测试人员的角色也发生了变化。AI可以自动生成测试脚本、自动化执行测试、识别缺陷,这使得测试人员的工作逐渐从执行层面转向更高层次的工作,如测试策略规划、AI模型监控和优化等。然而,这种转变可能会引发职业焦虑,特别是一些技术较为基础的测试人员,可能担心自己被AI取代。

伦理挑战:

  • AI可能导致测试人员的工作岗位减少,尤其是那些重复性较高的手动测试工作可能被自动化取代。
  • 测试人员可能会因无法适应新的技术要求而感到焦虑或失业威胁,影响其职业发展。
  • 随着AI技术的普及,一些初级测试人员可能因技术鸿沟无法有效转型,面临职业生涯的瓶颈。

应对策略: 为了应对这一挑战,企业应关注员工技能的转型和再培训,帮助测试人员提升在AI与自动化测试领域的知识和能力。同时,AI应被视为提高生产力和创造价值的工具,而不是取代人类的手段。测试人员的角色将从重复性工作转向更具创意和判断力的任务,AI的应用为他们提供了更多的技术创新和职业发展的机会。

4. 自动化测试中的偏见与公平性问题

AI模型在训练过程中,往往会根据历史数据进行学习,这些数据中可能包含偏见。如果AI模型没有经过足够的调校,可能会无意中放大这些偏见,影响测试结果的公平性。特别是在自动化测试工具检测缺陷时,AI可能会对某些类型的缺陷过度敏感,忽略其他重要问题,或者仅针对某些特定代码结构进行优化。

伦理挑战:

  • AI系统可能通过对历史数据的过度依赖,引入偏见,导致测试结果失真。
  • 偏见可能会影响测试的全面性,导致某些关键缺陷被忽视,影响软件的质量和用户体验。
  • AI可能会加剧某些开发团队或产品线之间的不公平竞争,特别是在测试资源有限的情况下,某些团队可能会因为AI测试工具的偏见而处于不利地位。

应对策略: 为避免偏见,AI模型在训练过程中需要充分考虑数据的多样性和代表性,避免依赖单一来源的数据。同时,通过加强数据标注、引入公平性评估指标以及定期监控AI决策结果,能够帮助识别和修正偏见,确保自动化测试过程的公平性和全面性。

5. 自动化测试决策的责任归属问题

AI在自动化测试中的决策可能会影响产品质量,然而,当出现问题时,如何界定责任成为一个复杂的伦理问题。如果AI系统的决策导致测试失败,或是缺陷未被及时发现,责任应由谁承担?是开发者、AI系统的设计者,还是测试人员?

伦理挑战:

  • 如果AI系统做出的决策导致了严重的后果,责任的归属可能变得模糊。
  • 由于AI系统的“黑箱”特性,追溯决策源头和理解决策过程可能会很困难。
  • 过度依赖AI做出决策可能导致“责任外包”,从而推卸责任,影响企业的道德义务和社会责任。

应对策略: 为了明确责任归属,AI系统在自动化测试中的应用必须严格定义决策权和监督机制。测试团队应承担对AI系统的监督责任,并定期进行审核,确保AI模型的输出符合预期,避免过度依赖AI系统的决策。同时,企业应建立明确的责任机制,确保在出现问题时能够追溯责任源头。

结论

AI在自动化测试中的应用无疑为行业带来了巨大的技术进步,但也带来了不可忽视的伦理挑战。从决策透明度、数据隐私到职业影响、偏见和责任归属问题,所有这些伦理问题都需要我们在推动技术发展的同时,保持高度的警觉和责任感。只有在技术与伦理的平衡中前行,AI才能真正成为提升软件测试质量和效率的得力工具,而不会对社会、行业和个体带来不利影响。在实际工作中,企业应采取切实有效的措施,确保AI技术的使用符合伦理规范,并为员工提供必要的培训和支持,帮助他们适应这一变革,创造更公平、更高效的测试环境。

相关文章:

AI在自动化测试中的伦理挑战

在软件测试领域,人工智能(AI)已经不再是遥不可及的未来技术,而是正在深刻影响着测试过程的现实力量。尤其是在自动化测试领域,AI通过加速测试脚本生成、自动化缺陷检测、测试数据生成等功能,极大提升了测试…...

FreeRTOS的任务创建和删除

1,任务创建和删除的API函数 任务的创建和删除本质就是调用FreeRTOS的API函数 动态创建任务: 任务的任务控制块以及任务的栈空间所需的内存,均由 FreeRTOS 从 FreeRTOS 管理的堆中分配。 静态创建任务: 任务的任务控制块以及任务的…...

【C++】STL容器使用与实现详解:vector

文章目录 Ⅰ. vector的介绍和使用一、vector的介绍二、vector的使用 (只列出比较重要的,其他的需要时查文档)1. vector的定义2. vector iterator(迭代器)的使用3. vector 容量问题4. vector 增删查改5. 正确释放 vecto…...

【Block总结】动态蛇形卷积,专注于细长和弯曲的局部结构|即插即用

论文信息 标题: Dynamic Snake Convolution based on Topological Geometric Constraints for Tubular Structure Segmentation 作者: 戚耀磊、何宇霆、戚晓明、张媛、杨冠羽 会议: 2023 IEEE/CVF International Conference on Computer Vision (ICCV) 发表时间: 2023年10月…...

物业管理软件引领社区智能化转型提升服务效率与居民生活质量

内容概要 物业管理软件的出现,标志着社区管理方式的一场革命,它不仅仅是一个工具,更是推动智能化转型的关键助力。通过高效的管理功能,物业管理软件在优化服务流程的同时,也提升了居民的生活质量和社区的整体发展活力…...

论文阅读(十三):复杂表型关联的贝叶斯、基于系统的多层次分析:从解释到决策

1.论文链接:Bayesian, Systems-based, Multilevel Analysis of Associations for Complex Phenotypes: from Interpretation to Decision 摘要: 遗传关联研究(GAS)报告的结果相对稀缺,促使许多研究方向。尽管关联概念…...

线性调整器——耗能型调整器

线性调整器又称线性电压调节器,以下是关于它的介绍: 基本工作原理 线性调整器的基本电路如图1.1(a)所示,晶体管Q1(工作于线性状态,或非开关状态)构成一个连接直流源V和输出端V。的可调电气电阻,直流源V由60Hz隔离变压器(电气隔离和整流&#…...

梯度提升用于高效的分类与回归

使用 决策树(Decision Tree) 实现 梯度提升(Gradient Boosting) 主要是模拟 GBDT(Gradient Boosting Decision Trees) 的原理,即: 第一棵树拟合原始数据计算残差(负梯度…...

使用Ollama和Open WebUI快速玩转大模型:简单快捷的尝试各种llm大模型,比如DeepSeek r1

Ollama本身就是非常优秀的大模型管理和推理组件,再使用Open WebUI更加如虎添翼! Ollama快速使用指南 安装Ollama Windows下安装 下载Windows版Ollama软件:Release v0.5.7 ollama/ollama GitHub 下载ollama-windows-amd64.zip这个文件即可…...

2025年1月个人工作生活总结

本文为 2025年1月工作生活总结。 研发编码 使用sqlite3命令行查询表数据 可以直接使用sqlite3查询数据表,不需进入命令行模式。示例如下: sqlite3 database_name.db "SELECT * FROM table_name;"linux shell使用read超时一例 先前有个编译…...

Windows环境安装nvm,并使用nvm管理nodejs版本教程

目录 1.nvm安装步骤 2.验证nvm是否安装成功 3.查看本地可以安装的所有版本 4.安装特定nodejs版本 5.配置nvm镜像 6.使用特定nodejs版本 7.给nodejs配置镜像和环境变量 8.查看本地安装的所有版本(* 表示当前版本) 9.卸载指定版本的nodejs 前端开发中,不…...

C++中常用的排序方法之——冒泡排序

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C中常用的排序方法之——冒泡排序的…...

SQL进阶实战技巧:如何分析浏览到下单各步骤转化率及流失用户数?

目录 0 问题描述 1 数据准备 2 问题分析 3 问题拓展 3.1 跳出率计算 3.2 计算从浏览商品到支付订单的不同路径的用户数,并按照用户数降序排列。 往期精彩 0 问题描述 统计从浏览商品到最终下单的各个步骤的用户数和流失用户数,并计算转化率 用户表结构和…...

NLP模型大对比:Transformer >Seq2Seq > LSTM > RNN > n-gram

结论 Transformer 大于 传统的Seq2Seq 大于 LSTM 大于 RNN 大于 传统的n-gram n-gram VS Transformer 我们可以用一个 图书馆查询 的类比来解释它们的差异: 一、核心差异对比 维度n-gram 模型Transformer工作方式固定窗口的"近视观察员"全局关联的&q…...

接口技术-第5次作业

目录 作业内容 解答 一、填空题 二、综合题 1.采用AD570通过82C55A与CPU接口,82C55A的端口地址为300H~303H,完成用查询方式采集250个数据,送到2000H开始的存储单元存储。绘制电路连接图(AD570的4种主要信号线都要标出)。 2…...

实战技巧:如何快速提高网站的收录比例?

本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/28.html 快速提高网站的收录比例是网站优化中的重要目标之一。以下是一些实战技巧,可以帮助你实现这一目标: 一、内容优化 高质量原创内容: 确保网站内…...

WEB集群6-10天

第六天 nginx编译安装 全新的进行编译安装 [rootweb-1 ~]# mkdir /nginx [rootweb-1 ~]# cd /nginx/ [rootweb-1 nginx]# ls [rootweb-1 nginx]#curl -O https://nginx.org/download/nginx-1.26.1.tar.gz解压源码包 [rootweb-1 nginx]#tar xf nginx-1.26.1.tar.gz [rootw…...

10.共享内存 信号量集 消息队列

10.共享内存 信号量集 消息队列 **1. IPC对象操作通用框架****2. 共享内存(Shared Memory)****3. 信号量集(Semaphore)****4. 消息队列(Message Queue)****5. 练习与作业****6. 总结** 1. IPC对象操作通用框…...

玩转大语言模型——使用langchain和Ollama本地部署大语言模型

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…...

数据结构与算法学习笔记----容斥原理

数据结构与算法学习笔记----容斥原理 author: 明月清了个风 first publish time: 2025.1.30 ps⭐️介绍了容斥原理的相关内容以及一道对应的应用例题。 Acwing 890. 能被整除的数 [原题链接](890. 能被整除的数 - AcWing题库) 给定一个整数 n n n和 m m m个不同的质数 p 1 …...

Appium介绍

在使用不同版本的Appium包进行自动化测试时,出现警告问题可能是由于版本不兼容、配置不正确等原因导致的。下面将详细介绍解决这些问题的步骤,确保模拟器能够正常启动,并能在Appium查看器中同步显示。 1. 环境准备 首先,确保你已…...

doris:Bitmap

BITMAP 类型可以在 Duplicate 表、Unique 表、Aggregate 表中使用,只能作为 Key 类,无法作为 Value 列使用。在 Aggregate 表中使用 BITMAP 类型,其建表时必须使用聚合类型 BITMAP_UNION。用户不需要指定长度和默认值。长度根据数据的聚合程度…...

gitee——报错修改本地密码

有时候当我们向远端push本地的仓库时会有一些报错的行为。 如下: 这是因为我们在gitee修改了密码时,本地还没有更新提交,总是报错 解决修改密码报错 如下: 1.在本地点击搜索栏找到控制面板 步骤如下...

Leetcode 45. 跳跃游戏 II

这题是一个动态规划问题,首先我先说一下自己的动态规划解题步骤: 1,首先需要明确动态规划数组的含义:这个是根据题目来定的,这一个题目的数组含义:dp【i】指的是从0跳到i所需要的最小的步骤。 2&#xff…...

ROS2---基础操作

工作空间(workspace) workspace是一个存放项目开发相关文件的文件夹。例如我们要开发一个机器人,我们可以创建一个工作空间,然后存放这个机器人不同功能的包(感知(雷达,相机等),运动&#xff0…...

【Leetcode 每日一题】350. 两个数组的交集 II

问题背景 给你两个整数数组 n u m s 1 nums_1 nums1​ 和 n u m s 2 nums_2 nums2​,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值…...

第13章 深入volatile关键字(Java高并发编程详解:多线程与系统设计)

1.并发编程的三个重要特性 并发编程有三个至关重要的特性,分别是原子性、有序性和可见性 1.1 原子性 所谓原子性是指在一次的操作或者多次操作中,要么所有的操作全部都得到了执行并 且不会受到任何因素的干扰而中断,要么所有的操作都不执行…...

STM32 PWMI模式测频率占空比

接线图: PWMI基本结构 代码配置: 与上一章输入捕获代码一样,根据结构体,需要在输入捕获单元再配置一个通道。我们调用一个函数 这个函数可以给结构体赋值,当我们定义了一遍结构体参数,再调用这个函数&…...

无心剑七绝《恭贺新春》

七绝恭贺新春 软件通灵万象真 生机繁茂绘星辰 智联世界情不尽 系统更新又一春 2025年1月29日 平水韵十一真平韵 无心剑七绝《恭贺新春》以“软件生态”为题旨,巧妙融入新春喜庆氛围,展现出科技与自然和谐共生的意境。首句“软件通灵万象真”,…...

低代码产品表单渲染架构

在React和Vue没有流行起来的时候,低代码产品的表单渲染设计通常会使用操作Dom的方式实现。 下面是一个表单的例子: 产品层 用户通过打开表单,使用不同业务场景业务下的表单页面,中间的Render层就是技术实现。 每一个不同业务的表单…...

allegro修改封闭图形线宽

说在前面 我们先把最优解说在前面,然后后面再说如果当时不熟悉软件的时候为了挖孔是用了shapes该怎么修改回来。 挖空最方便的方式是在cutout层画一个圆弧,下面开始图解,先add一个圆弧 z 最好是在画的时候就选择好层,如果忘记了后续再换回去也行,但好像软件有bug,此处并…...

C++实现2025刘谦魔术(勺子 筷子 杯子)

目录 1、魔术步骤 2、C代码 2.1、定义物品 2.2、枚举初始顺序 2.3、进行step2筷子交换 2.4、进行step3杯子交换 2.5、进行step4勺子交换 3、运行结果 4、全部源码 又是一年春晚啦,今年比较期待的是刘谦的魔术表演,现在用C实现刘谦的第一个魔术&…...

Leetcode:219

1&#xff0c;题目 2&#xff0c;思路 第一种就是简单的暴力比对当时过年没细想 第二种&#xff1a; 用Map的特性key唯一&#xff0c;把数组的值作为Map的key值我们每加载一个元素都会去判断这个元素在Map里面存在与否如果存在进行第二个判断条件abs(i-j)<k,条件 符合直接…...

SpringBoot+Vue的理解(含axios/ajax)-前后端交互前端篇

文章目录 引言SpringBootThymeleafVueSpringBootSpringBootVue&#xff08;前端&#xff09;axios/ajaxVue作用响应式动态绑定单页面应用SPA前端路由 前端路由URL和后端API URL的区别前端路由的数据从哪里来的 Vue和只用三件套axios区别 关于地址栏url和axios请求不一致VueJSPS…...

小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5

闲鱼上收了一台CR6606和一台CR6609, 一直没时间研究, 趁春节假期把这两个都刷成 OpenWRT 配置说明 CPU: MT7621AT&#xff0c;双核880MHz内存: NT5CC128M16JR-EKI 或 M15T2G16128A, 256MB闪存: F59L1G81MB, 128MB无线基带芯片(BB): T7905DAN无线射频芯片(RF): MT7975DN无外置F…...

我的求职面经:(2)C++中空指针请使用nullptr不要使用NULL

1. C中NULL定义就是整数字面量0 2. 对于C函数&#xff0c;由于存在重载&#xff0c;使用NULL而不是nullptr可能导致函数走错重载。 3. C中定义NULL为&#xff08;void* &#xff09;0&#xff0c;确实是代表空指针。使用时隐式转换成对应的需要类型的空指针。 4. C中void指针…...

Java8_StreamAPI

Stream 1.创建流 1.1 集合创建流 List<String> list List.of("a", "b", "c"); Stream<String> stream list.stream(); stream.forEach(System.out::println);1.2 数组创建流 String[] array {"a","b",&qu…...

[STM32 - 野火] - - - 固件库学习笔记 - - -十二.基本定时器

一、定时器简介 STM32 中的定时器&#xff08;TIM&#xff0c;Timer&#xff09;是其最重要的外设之一&#xff0c;广泛用于时间管理、事件计数和控制等应用。 1.1 基本功能 定时功能&#xff1a;TIM定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中…...

信息学奥赛一本通 1606:【 例 1】任务安排 1 | 洛谷 P2365 任务安排

【题目链接】 ybt 1606&#xff1a;【 例 1】任务安排 1 洛谷 P2365 任务安排 【题目考点】 1. 动态规划&#xff1a;线性动规 【解题思路】 可以先了解法1&#xff0c;虽然不是正解&#xff0c;但该解法只使用了动规的基本思路&#xff0c;易于理解&#xff0c;有助于理解…...

【解决方案】MuMu模拟器移植系统进度条卡住98%无法打开

之前在Vmware虚拟机里配置了mumu模拟器&#xff0c;现在想要移植到宿主机中 1、虚拟机中的MuMu模拟器12-1是目标系统&#xff0c;对应的目录如下 C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-1 2、Vmware-虚拟机-设置-选项&#xff0c;启用共享文件夹 3、复…...

【C语言】预处理详解

他们想要逃避工作的压迫&#xff0c;却又被功绩社会深植的价值观绑架。 前言 这是我自己学习C语言的第九篇博客总结。后期我会继续把C语言学习笔记开源至博客上。 上一期笔记是关于C语言的编译链接&#xff0c;没看的同学可以过去看看&#xff1a; 【C语言】编译链接_c 读取一行…...

设计模式Python版 适配器模式

文章目录 前言一、适配器模式二、适配器模式实现三、适配器模式在Django中的应用 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&…...

系统思考—蝴蝶效应

“个体行为的微小差异&#xff0c;可能在系统中引发巨大且不可预测的结果。” — 诺贝尔经济学得主托马斯谢林 我们常说&#xff0c;小变动带来大影响&#xff0c;这种现象&#xff0c;在复杂系统理论中被称为“蝴蝶效应”&#xff1a;即使极小的变化&#xff0c;也能在动态系…...

使用Edu邮箱申请一年免费的.me域名

所需材料&#xff1a;公立Edu教育邮箱一枚&#xff08;P.S&#xff1a;该服务不支持所有的Edu教育邮箱&#xff0c;仅支持比较知名的院校&#xff09; 说到域名&#xff0c;.me这个后缀可谓是个性十足&#xff0c;适合个人网站、博客等。.me是黑山的国家顶级域名&#xff08;c…...

【开源免费】基于SpringBoot+Vue.JS体育馆管理系统(JAVA毕业设计)

本文项目编号 T 165 &#xff0c;文末自助获取源码 \color{red}{T165&#xff0c;文末自助获取源码} T165&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

C++ ——— 仿函数

目录 何为仿函数 仿函数和模板的配合使用 何为仿函数 代码演示&#xff1a; class Add { public:int operator()(int x, int y){return x y;} }; 这是一个 Add 类&#xff0c;类里面有一个公有成员函数重载&#xff0c;重载的是括号 那么调用的时候&#xff1a; Add ad…...

基于FPGA的BT656解码

概述 BT656全称为“ITU-R BT.656-4”或简称“BT656”,是一种用于数字视频传输的接口标准。它规定了数字视频信号的编码方式、传输格式以及接口电气特性。在物理层面上,BT656接口通常包含10根线(在某些应用中可能略有不同,但标准配置为10根)。这些线分别用于传输视频数据、…...

【Proteus仿真】【51单片机】简易计算器系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、LCD1602液晶显示 2、矩阵按键​ 3、可以进行简单的加减乘除运算 4、最大 9999*9999 二、使用步骤 系统运行后&#xff0c;LCD1602显示数据&#xff0c;通过矩阵按键…...

【16届蓝桥杯寒假刷题营】第1期DAY2

1.能选取元素的最多个数 - 蓝桥云课 问题描述 给定一个长度为 n 的数组 a&#xff0c;小蓝希望从数组中选择若干个元素&#xff08;可以不连续&#xff09;&#xff0c;并将它们重新排列&#xff0c;使得这些元素 能够形成一个先严格递增然后严格递减的子序列&#xff08;可以…...

安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可查看源码&#xff09; 1.熟悉广播机制的实现流程。 2.掌握广播接收者的创建方式。 3.掌握广播的类型以及自定义官博的创建。 二、实验条件 熟悉广播机制、广播接收者的概念、广播接收者的创建方式、自定广播实现方式以及有…...