头歌-软件测试-黑盒测试用例

第1关:等价类划分法

#include"func.h"
#include<stdio.h>
 
//计算直角三角形的斜边长度
float calcEdge(float a, float b, float area);
 
void BlackTest1()
{
	/*请按要求设计测试用例,并调用calcEdge*/
	/*********Begin********/
    calcEdge(5,-1,-1);
    calcEdge(-1,5,-1);
    calcEdge(3,4,5);
    calcEdge(5,12,13);
	/*********End*********/
}

第2关:边界值法

#include"func.h"
#include<stdio.h>

//计算直角三角形的斜边长度
float calcEdge(float a, float b, float area);
 
void BlackTest1()
{
	/*请按要求设计测试用例,并调用calcEdge*/
	/*********Begin********/
	calcEdge(0, 0, 0);
    calcEdge(0, 1, 1);
    calcEdge(1, 0, 1);
    calcEdge(-0.1,-0.1 ,-1);
	/*********End*********/
}

#include #include struct DATA { int ID; char name[4]; char sex[3]; int score; }; void paixu(int*,DATA*,int); int sishewuru(double); void func1(int*,int*,DATA*,int*,int,int,int,int);//统计男女比 int func2(int*,int,DATA*);//查找考生序号 void print(); void main() { int length=0,i,yiben,erben,sanben,dazhuan,male[4],female[4]; int yi,er,san,si; char input; FILE* file=fopen("f1.txt","r"),*file1; if(file==NULL) { printf("No such file!\n"); return; } while(EOF!=fscanf(file,"%*[^\n]\n")) length++;//自动计算考生数罝ATA* data=(DATA*)malloc(length*sizeof(DATA)); int* pai=(int*)malloc(length*sizeof(int)); rewind(file); for(i=0;i='0'&&input<='4')) { printf("非法输入,请重新输入\n请输入:"); fflush(stdin); } else break; } getchar(); switch(input) { case '0': printf("\n一类本科招生线:%d\n二类本科招生线:%d\三类本科招生线:%d\\n高职高专招生线:%d\n",yi,er,san,si); printf("是否打印为文件?(y/n):"); if(getchar()=='y') { file1=fopen("各批次录取分数线.txt","w"); fprintf(file1,"一类本科招生线:%d\n二类本科招生线:%d\\n三类本科招生线:%d\n高职高专招生线:%d\n",yi,er,san,si); fclose(file1); } fflush(stdin); break; case '1': func1(male,female,data,pai,yiben,erben,sanben,dazhuan); printf("一类本科招生线男女比:%d:%d\n",male[0],female[0]); printf("二类本科招生线男女比:%d:%d\n",male[1],female[1]); printf("三类本科招生线男女比:%d:%d\n",male[2],female[2]); printf("高职高专招生线招生线男女比:%d:%d\n",male[3],female[3]); printf("是否打印为文件?(y/n):"); if(getchar()=='y') { file1=fopen("各批次录取男女比.txt","w"); fprintf(file1,"一类本科招生线男女比:%d:%d\n",male[0],female[0]);
### 等价类划分与边界值分析法概述 等价类划分是一种常用的黑盒测试技术,其核心思想是将输入数据划分为若干个子集(即等价类),使得同一等价类中的任意输入对于系统的处理方式相同[^1]。通过这种方法,可以显著减少测试用例的数量,从而提高测试效率。 边界值分析法则专注于测试输入变量的极端情况,如最小值、最大值、刚好超过范围的值等。这是因为许多错误往往发生在输入或输出的边界上[^2]。通常情况下,边界值分析是对等价类划分的有效补充。 --- ### 设计测试用例的具体方法 #### 1. **等价类划分** 在设计测试用例时,可以通过以下步骤实现等价类划分: - 明确被测功能的需求及其对应的输入条件。 - 将输入域划分为有效等价类和无效等价类。 - **有效等价类**是指满足需求规定的合法输入集合。 - **无效等价类**则是指不符合需求规定的所有非法输入集合。 - 针对每个等价类至少设计一个测试用例来覆盖该类别的所有可能输入[^3]。 #### 2. **边界值分析** 当定义好等价类之后,进一步识别并选取边界值作为额外的测试点。具体做法包括但不限于: - 如果某个输入字段具有明确的最大/最小限制,则应分别针对这些极限值创建单独的测试用例- 对于连续区间内的数值型参数,除了两端外还需关注紧邻边界的其他特殊位置(如超出上下限的第一个整数)[^4]。 以下是结合上述两种策略的一个简单子: 假设某应用程序接受年龄作为用户注册的一项必填信息,并且要求用户的年龄段限定为 `18~65` 岁之间(含端点)。那么我们可以这样构建相应的测试计划: | 类别 | 描述 | 示值 | |--------------|--------------------------|-------------| | 合理范围内 | 年龄介于 [18, 65] | {18, 30, 65}| | 下界边缘 | 刚达到最低允许界限 | {17, 19} | | 上界边缘 | 接近最高可接受阈值 | {64, 66} | | 完全不合理区 | 超过指定约束 | {-1, 100} | 以上表格展示了如何综合运用这两种技巧生成全面又高效的案组合。 --- ### 实际应用场景——实践作业第一关解决方案 根据题目描述推测,“平台”的首道练习很可能围绕基本概念展开训练,比如验证学生能否正确理解并实际操作等价分类及边界判定原则。下面给出一种通用解题框架供参考: ```python def test_equivalence_partitioning_and_boundary_analysis(): # 输入条件设定 (假定目标函数接收单参 'age') valid_ages = range(18, 66) # 正常业务逻辑支持的岁数组合 invalid_below_min = [-5,-1,17] # 不足法定成年标准的情况 invalid_above_max = [66,70,120] # 远超预期退休年限的情形 boundary_cases = [17,18,65,66] # 关键临界情形特别标注出来独立考察 all_test_data = list(valid_ages)+invalid_below_min+invalid_above_max+boundary_cases results = [] for age in set(all_test_data): # 使用set去重以防重复计算浪费资源 result = process_age(age) # 替代真实调用的目标算法名称process_age() results.append((age,result)) return results # 返回最终评测结果便于后续统计评估 # 辅助模拟函数用于演示目的仅此而已无需深究其实现细节 def process_age(age): if not isinstance(age,int): raise ValueError('Age must be an integer.') elif age<0: return f'Invalid negative value:{age}' elif age>=18 and age<=65: return f'{age}-year-old person is eligible.' else: return f'{age}-year-old person does NOT qualify.' if __name__=='__main__': res=test_equivalence_partitioning_and_boundary_analysis() print(res[:10]) # 输出部分样本查看效果即可不必穷举全部记录 ``` --- ### 总结 通过对等价类划分与边界值分析的学习与实践,能够帮助开发者更科学合理地规划软件质量保障活动,在有限时间内尽可能多地发现潜在缺陷。这不仅适用于学术环境下的实验项目,同样也广泛应用于工业级产品的日常维护工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值