华为OD机试真题-测试用例执行计划

news2024/9/22 10:59:07

测试用例执行计划


题目描述:

某个产品当前迭代周期内有N个特性({F1,F2,...,FN})需要进行覆盖测试,每个特性都被评估了对应的优先级,特性使用其ID作为下标进行标识。
设计了M个测试用例({T1,T2,...,TM}),每个用例对应了一个覆盖特性的集合,测试用例使用其ID作为下标进行标识,测试用例的优先级定义为其覆盖的特性的优先级之和。
在开展测试之前,需要制定测试用例的执行顺序,规则为:优先级大的用例先执行,如果存在优先级相同的用例,用例ID小的先执行。

输入描述:

第一行输入为N和M,N表示特性的数量,M表示测试用例的数量,0<N<100.0<M<100.之后N行表示特性ID=1到特性ID=N的优先级。
再接下来M行表示测试用例ID=1到测试用例ID=M关联的特性的ID的列表。

输出描述:

按照执行顺序(优先级从大到小)输出测试用例的ID,每行一个ID.


备注:

测试用例覆盖的ID不重复。

示例:

输入

5 4

1

1

2

3

5

1 2 3

1 4

3 4 5

2 3 4


输出

3

4

1

2

说明

 解题思路:

  1. 首先读取特性的数量N和测试用例的数量M,以及每个特性的优先级。
  2. 然后,对于每个测试用例,读取它覆盖的特性ID列表,并计算测试用例的优先级(即它覆盖的所有特性的优先级之和)。
  3. 将测试用例按照优先级进行排序,如果优先级相同,则按照ID从小到大排序。
  4. 最后,输出排序后的测试用例ID。

代码:

Java实现

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

class TestCase implements Comparable<TestCase> {
    int id;
    int priority;

    public TestCase(int id, int priority) {
        this.id = id;
        this.priority = priority;
    }

    // 实现Comparable接口,首先按照优先级降序排序,若优先级相同,则按照ID升序排序
    @Override
    public int compareTo(TestCase other) {
        if (this.priority != other.priority) {
            return other.priority - this.priority;
        } else {
            return this.id - other.id;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();
        scanner.nextLine(); // 读取并跳过行尾的换行符

        // 读取每个特性的优先级
        int[] featurePriorities = new int[N];
        for (int i = 0; i < N; i++) {
            featurePriorities[i] = scanner.nextInt();
        }

        List<TestCase> testCases = new ArrayList<>();
        for (int i = 0; i < M; i++) {
            scanner.nextLine(); // 读取并跳过行尾的换行符
            String[] coveredFeatures = scanner.nextLine().split(" ");
            int prioritySum = 0;
            for (String featureIdStr : coveredFeatures) {
                int featureId = Integer.parseInt(featureIdStr) - 1; // 特性ID转换为数组下标
                prioritySum += featurePriorities[featureId];
            }
            testCases.add(new TestCase(i + 1, prioritySum)); // 测试用例ID是从1开始的
        }

        // 根据优先级和ID对测试用例进行排序
        Collections.sort(testCases);

        // 输出排序后的测试用例ID
        for (TestCase testCase : testCases) {
            System.out.println(testCase.id);
        }
    }
}

解析:

这个程序首先定义了一个TestCase类,其中包含测试用例的ID和优先级,并实现了Comparable接口以定义排序规则。接着,程序读取输入数据,计算每个测试用例的优先级,并将它们添加到一个列表中。最后,程序根据测试用例的优先级和ID对测试用例进行排序,并按顺序输出测试用例的ID。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1503117.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python刷题】环形链表

问题描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

SwiftUI之CoreData详解(一)

coreData 是一种数据持久化的方案&#xff0c;是对SQLite的一种封装。一说到这种桌面化的数据库&#xff0c;我就无比的怀念Foxbase|Foxpro, 多好的数据库产品&#xff0c;被微软扼杀了&#xff0c;相当年教大学生妹子们国家二级数据库时都是手把手教的&#xff0c;呃~~~&#…

解决火狐浏览器访问地址受限制问题(This address is restricted)

问题如下图&#xff1a; This address is restrictedThis address uses a network port which is normally used for purposes other than Web browsing. Firefox has canceled the request for your protection. 此地址受到限制 此地址使用通常用于 Web 浏览以外的目的的网…

21.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-配置数据保存到文件

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a; 易道云信息技术研究院VIP课 上一个内容&#xff1a;20.数据分析工具…

人才推荐 | 毕业于美国凯斯西储大学的博士,专业知识广泛

编辑 / 木子 审核 / 朝阳 伟骅英才 伟骅英才致力于以大数据、区块链、AI人工智能等前沿技术打造开放的人力资本生态&#xff0c;用科技解决职业领域问题&#xff0c;提升行业数字化服务水平&#xff0c;提供创新型的产业与人才一体化服务的人力资源解决方案和示范平台&#x…

前端使用Ant Design中的Modal框实现长按顶部拖动弹框需求

需求&#xff1a;需要Ant Design中的一个Modal弹框&#xff0c;并且可以让用户按住顶部实现拖动操作 实现&#xff1a;在Ant Design的Modal框的基础上&#xff0c;在title中添加一个onMouseDown去记录拖拽的坐标&#xff0c;然后将其赋值给Modal的style属性 代码部分&#xff…

没有面试邀约还在怪学历?帮助1万人通过面试的简历实战经验

很多人说自己明明投了很多公司的简历&#xff0c;但是都没有得到面试邀请的机会。自己工作履历挺好的&#xff0c;但是为什么投自己感兴趣公司的简历&#xff0c;都没有面试邀请的机会。反而是那些自己没有投递的公司&#xff0c;经常给自己打电话。 造成这些现象的主要原因&am…

解决白屏问题:让你的网站重焕生机

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Ubuntu上安装任意版本nodejs方法

在Ubuntu中安装指定版本的Node.js&#xff0c;可以使用Node Version Manager (NVM)。以下是安装步骤&#xff1a; 首先&#xff0c;安装NVM。在命令行中输入&#xff1a; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 这个命令会下载并…

Maya人物建模

【MAYA人物建模】超详细讲解人物嘴巴、鼻子、眼睛、耳朵、头发、帽子等布线细节&#xff0c;零基础人物头部布线教程_哔哩哔哩_bilibili 原始图像凑合用&#xff0c;视屏中截图 图像导入过程技巧总结 前视图/右视图模式下导入图形 创建图层 锁定后可以避免图片位置的移动 前视…

【Pytorch、torchvision、CUDA 各个版本对应关系以及安装指令】

Pytorch、torchvision、CUDA 各个版本对应关系以及安装指令 1、名词解释 1.1 CUDA CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA开发的用于并行计算的平台和编程模型。CUDA旨在利用NVIDIA GPU&#xff08;图形处理单元&#xff09;的强大计算…

外包干了10天,技术退步明显···

先说一下自己的情况&#xff0c;本科生&#xff0c;通过校招进入杭州某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&…

⭐每天一道leetcode:69.x的平方根(简单;不使用sqrt函数)

⭐今日份题目 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。 示…

Return On Investment (ROI)

Return On Investment &#xff08;ROI&#xff09;投资回报率 ROI (A - B) / A

图片去水印软件 Inpaint使用教程

Inpaint中文版是一款功能强大&#xff0c;实用方便的图片快速去水印软件&#xff0c;Inpaint中文版操作简单易上手&#xff0c;可以帮助你达到一键美化图片的效果。图片水印现在已经非常流行&#xff0c;能够借助一款不错的图片水印去除工具可以让图片处理工作简单便捷。本文讲…

AI大模型解锁写作技能,成为网红不是梦

AI大模型的出现改变了人们的生活方式&#xff0c;包括写作技能的提升。如今&#xff0c;想要成为网红并不是遥不可及的梦想。借助AI大模型&#xff0c;可以轻松地解锁写作技能&#xff0c;迅速积累粉丝&#xff0c;开启网红之路。 AI大模型拥有强大的计算和学习能力&#xff0…

看了很多文章,就这篇说明白了什么是接口测试!

接口&#xff08;API&#xff09;是一个简称&#xff0c;全名叫应用程序编程接口(Application Programming Interface)&#xff0c;是一些预先定义的函数。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解…

基于Springboot的志愿服务管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的志愿服务管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

【Redis知识点总结】(三)——Redis持久化机制、内存淘汰策略、惰性删除机制

Redis知识点总结&#xff08;三&#xff09;——Redis持久化机制、内存淘汰策略、惰性删除机制 Redis持久化RDBAOFAOF与RDB的对比混合持久化 内存淘汰策略惰性删除机制 Redis持久化 Redis有两种数据持久化的方式&#xff0c;一种是RDB、一种是AOF。 RDB RDB是内存快照&#…

数据结构 - 堆(优先队列)+ 堆的应用 + 堆练习

文章目录 前言堆一、什么是堆二、堆又分为大根堆和小根堆三、由于堆的逻辑结构被看成完全二叉树&#xff0c;那么我们先来了解一下完全二叉树。四、堆使用数组还是链表储存数据呢&#xff1f;五、数组构建二叉树和父子节点之间的定位六、堆进行的操作七、实现小根堆1、堆的初始…