尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

软件测试:实验三 黑盒测试

软件测试:实验三 黑盒测试 上机实 验 报 告一、上机实验目的目的1.通过上机实验加深对黑盒测试的理解。2.能够使用相应的工具对功能模块进行黑盒测试。3.深入理解测试驱动开发。4.学习优秀的开源代码JUnit。要求1.利用开源测试框架JUnit针对功能模块编写测试程序。二、上机实验相关知识简介黑盒测试也称功能测试它是通过测试来检测每个功能是否都能正常使用。在测试中把程序看作一个不能打开的黑盒子在完全不考虑程序内部结构和内部特性的情况下在程序接口进行测试它只检查程序功能是否按照需求规格说明书的规定正常使用程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构不考虑内部逻辑结构主要针对软件界面和软件功能进行测试。JUnit是一个Java测试框架使编写可靠和高效的测试变得容易。它可以用于大多数语言制作的应用程序但特别适合于测试Java应用程序。JUnit也可以用来创建自动测试。JUnit框架是最流行的Java测试框架之一。它提供了一些功能使编写测试变得容易包括支持多个测试用例、断言和报告。JUnit也是多功能的允许用各种语言编写测试。它允许你有效地创建和运行测试并已成为最流行的Java测试框架之一。xUnit框架激发了Smalltalk和C的JUnit。由于JUnit是xUnit测试框架家族的成员它被设计为支持不同的测试包括单元、功能和集成测试。JUnit主要用于单元测试但它也可用于其他测试如功能和集成测试。功能测试是测试系统的功能。它们与单元测试不同因为它们测试的是整个系统而不是单个单元。集成测试测试两个或多个系统的集成。它们与单元测试不同因为它们测试的是系统的各个组成部分如何协同工作而不是单独工作。三、上机步骤及分析1. 被测代码//计算类包含了常规数值计算方法publicclasscomputeDataUtility {//求两个数的最大值方法publicintgetMax(inta,intb) {if(ab) {returna;}else{returnb;}}}2. 测试代码importstaticorg.junit.Assert.*;importorg.junit.Test;publicclasscomputeDataUtilityTest {//测试用例1,2TestpublicvoidtestGetMax_T1() {intresult;//创建computeDataUtility类对象computeDataUtilitycdnewcomputeDataUtility();resultcd.getMax(1,2);//测试用例(1,2)//断言result为2如果运行结果为2则断言成立此测试用例通过//否则此测试用例失败assertEquals(result, 2);}//测试用例-1,-2TestpublicvoidtestGetMax_T2() {intresult;//创建computeDataUtility类对象computeDataUtilitycdnewcomputeDataUtility();resultcd.getMax(-1,-2);//测试用例(-1,-2)//断言result为-1如果运行结果为-1则断言成立此测试用例通过//否则此测试用例失败assertEquals(result,-1);}}3. 运行截图对computeDataUtility的getMax()方法进行测试分别执行了测试用例1,2、-1-2。两个测试用例全部通过如图1所示。图1 getMax()方法测试结果本次黑盒测试使用JUnit框架对computeDataUtility类中的getMax(int a, int b)方法进行了功能验证。两个测试用例均覆盖了典型的整数比较场景包括正数和负数情况。测试结果全部通过表明该方法在当前测试用例下功能正确符合黑盒测试的基本要求。四、体会通过本次黑盒测试实验我深刻体会到软件测试在保证软件质量中的重要作用。在实验过程中我使用JUnit框架对computeDataUtility类中的getMax方法进行了功能测试收获颇丰。首先我认识到黑盒测试的核心在于关注程序的输入输出行为而不需要了解其内部实现细节。在设计和执行测试用例时我特别注重选择具有代表性的测试数据包括正数和负数组合以验证方法在不同场景下的正确性。其次通过实际编写测试代码我加深了对JUnit测试框架的理解。掌握了Test注解的使用方法学会了如何通过assertEquals进行断言验证这些实践让我对单元测试的执行流程有了更直观的认识。同时我也意识到测试用例设计的重要性。虽然本次测试的两个用例都通过了但我认识到还需要补充更多边界情况的测试比如相等数值的比较、极大极小值测试等这样才能更全面地保证代码的健壮性。此次实验让我体会到测试驱动开发的价值所在——通过先编写测试用例来明确功能需求再实现相应代码这种开发模式能够有效提高代码质量和开发效率。总的来说本次实验不仅让我掌握了黑盒测试的基本方法和JUnit的使用技巧更重要的是培养了我严谨的测试思维和质量意识这对我今后从事软件开发工作具有重要意义。
返回列表