当前位置:   article > 正文

2024. 1华为od机试C卷【测试用例执行计划】Python

2024. 1华为od机试C卷【测试用例执行计划】Python

题目

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


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

输出描述
按照执行顺序(优先级从大到小) 输出测试用例的 ID,每行一个ID测试用例覆盖的 ID 不重复。

示例1:

输入:

5 4
1
1
2
3
5
1 2 3
1 4
3 4 5
2 3 4
输出:

3
4
1
2
说明
测试用例的优先级计算如下:
T1 = Pf1 + Pf2 + Pf3 = 1 + 1 + 2 = 4
T2 = Pf1 + Pf4 = 1 + 3 = 4
T3 = Pf3 + Pf4 + Pf5 = 2 + 3 + 5 = 10
T4 = Pf2 + Pf3 + Pf4 = 1 + 2 + 3 = 6
按照优先级从小到大,以及相同优先级,ID小的先执行的规则,执行顺序为T3,T4,T1,T2

示例2:

输入:

3 3
3
1
5
1 2 3
1 2 3
1 2 3
输出:

1
2
3
说明
测试用例的优先级计算如下:
T1 = Pf1 + Pf2 + Pf3 = 3 + 1 + 5 = 9
T2 = Pf1 + Pf2 + Pf3 = 3 + 1 + 5 = 9
T3 = Pf1 + Pf2 + Pf3 = 3 + 1 + 5 = 9
每个优先级一样,按照 ID 从小到大执行,执行顺序为T1,T2,T3

代码

  1. [n, m] = list(map(int, input().split(' ')))
  2. special = [0]
  3. test_case = []
  4. for i in range(n):
  5. special.append(int(input()))
  6. for j in range(m):
  7. sum_s = 0
  8. temp = list(map(int, input().split(' ')))
  9. for k in range(len(temp)):
  10. sum_s += special[temp[k]]
  11. test_case.append([j + 1, sum_s])
  12. test_case.sort(key=lambda x: (-x[1], x[0]))
  13. for i in range(m):
  14. print(test_case[i][0])

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/691330
推荐阅读
相关标签
  

闽ICP备14008679号