<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      軟件測試

      實驗項目名稱:實驗四          

      一、     實驗目的

      1、掌握單元測試的基本理論和作用。

      2、掌握典型單元測試工具 JUnit 的使用

      二、  實驗內容

      實驗題目

       

      三、  實驗步驟及結果

       

      1、實驗任務 2:閏年判斷程序及測試——實驗步驟

      分析

      閏年定義:能被 4 整除但不能被 100 整除,或能被 400 整除的年份。

      需覆蓋的測試場景:

      正常閏年(如 2020,能被 4 整除且非整百年)。

      整百年閏年(如 2000,能被 400 整除)。

      整百年非閏年(如 1900,能被 100 整除但不能被 400 整除)。

      非閏年(如 2021,不能被 4 整除)。

       

      編寫閏年判斷類:
      LeapYear

      public class LeapYear {
          public boolean isLeapYear(int year) {
              if (year % 4 != 0) return false;
              if (year % 100 == 0 && year % 400 != 0) return false;
              return true;
          }
      }

       

      設計測試用例與編寫測試類 LeapYearTest

      使用參數化測試覆蓋不同年份,重點驗證邊界條件(整百年)。

      class LeapYearTest {

          private LeapYear leapYear = new LeapYear();

          @ParameterizedTest(name = "{0} 是否閏年?預期:{1}")
          @CsvSource({
                  "2000,true",
                  "1900,false",
                  "2024,true",
                  "2100,false",
                  "2023,false",
                  "2016,true"
          })
          void parameterizedLeapYearTest(int year, boolean expected) {
              assertEquals(expected, leapYear.isLeapYear(year));
          }
      }

       

       

      運行測試與結果驗證

      執行測試后,所有用例通過,閏年邏輯正確處理邊界條件。

       

       

       

       

       

      2、實驗任務 3:三角形判斷程序及測試——實驗步驟

      分析

      輸入:三角形三邊長度(支持浮點數)。

      輸出:分類結果(非法邊長、非三角形、等邊、等腰、直角、鈍角、銳角)。

      判定邏輯:

      邊長合法性檢查(邊長≤0 則非法);

      三角形成立條件(任意兩邊之和大于第三邊);

      類型判斷優先級:等邊 > 直角 > 等腰 > 鈍角 / 銳角(確保 “等腰直角三角形” 優先判定為直角三角形)。

      編寫三角形判斷類:

      public class Triangle {
          /**
           *
      判斷三角形類型
           * @return "
      非三角形", "等邊三角形", "等腰三角形", "直角三角形", "鈍角三角形", "銳角三角形"
           */
         
      public String determineTriangleType(double a, double b, double c) {
              // 檢查三邊是否為正數
              if (a <= 0 || b <= 0 || c <= 0) {
                  return "非三角形";
              }

              // 檢查三角形不等式
              if (a + b <= c || a + c <= b || b + c <= a) {
                  return "非三角形";
              }

              // 判斷等邊三角形
              if (a == b && b == c) {
                  return "等邊三角形";
              }

              // 判斷等腰三角形
              if (a == b || b == c || a == c) {
                  return "等腰三角形";
              }

              // 排序邊的長度,使得a <= b <= c
              double[] sides = {a, b, c};
              java.util.Arrays.sort(sides);
              a = sides[0];
              b = sides[1];
              c = sides[2];

              // 判斷直角、鈍角、銳角三角形
              double epsilon = 1e-9; // 浮點數比較的精度
              if (Math.abs(a*a + b*b - c*c) < epsilon) {
                  return "直角三角形";
              } else if (a*a + b*b < c*c) {
                  return "鈍角三角形";
              } else {
                  return "銳角三角形";
              }
          }
      }

       

       

      設計測試用例與測試類TriangleClassifierTest

      參數化測試:覆蓋所有分類場景,包括非法邊長、非三角形、等邊、等腰、直角、鈍角、銳角,以及浮點精度場景(如等腰直角三角形)。

       

      class TriangleTest {
          private Triangle triangle;

          @BeforeEach
          void setUp() {
              triangle = new Triangle();
          }

          @Test
          void testNonTriangle() {
              // 任意一邊小于等于0
              assertEquals("非三角形", triangle.determineTriangleType(0, 4, 5));
              assertEquals("非三角形", triangle.determineTriangleType(3, -1, 5));
              assertEquals("非三角形", triangle.determineTriangleType(3, 4, -2));

              // 不滿足三角形不等式
              assertEquals("非三角形", triangle.determineTriangleType(1, 2, 3));
              assertEquals("非三角形", triangle.determineTriangleType(1, 10, 5));
          }

          @Test
          void testEquilateralTriangle() {
              assertEquals("等邊三角形", triangle.determineTriangleType(5, 5, 5));
              assertEquals("等邊三角形", triangle.determineTriangleType(10, 10, 10));
          }

          @Test
          void testIsoscelesTriangle() {
              assertEquals("等腰三角形", triangle.determineTriangleType(5, 5, 8));
              assertEquals("等腰三角形", triangle.determineTriangleType(5, 8, 5));
              assertEquals("等腰三角形", triangle.determineTriangleType(8, 5, 5));
          }

          @Test
          void testRightTriangle() {
              assertEquals("直角三角形", triangle.determineTriangleType(3, 4, 5));
              assertEquals("直角三角形", triangle.determineTriangleType(5, 12, 13));
              assertEquals("直角三角形", triangle.determineTriangleType(8, 15, 17));
          }

          @Test
          void testObtuseTriangle() {
              assertEquals("鈍角三角形", triangle.determineTriangleType(2, 3, 4.5));
              assertEquals("鈍角三角形", triangle.determineTriangleType(3, 4, 6.5));
          }

          @Test
          void testAcuteTriangle() {
              assertEquals("銳角三角形", triangle.determineTriangleType(4, 5, 6));
              assertEquals("銳角三角形", triangle.determineTriangleType(7, 8, 9));
          }

          @ParameterizedTest(name = "[{index}] 三邊 {0}, {1}, {2} 形成:{3}")
          @CsvSource({
                  "0, 4, 5, 非三角形",
                  "3, -1, 5, 非三角形",
                  "1, 2, 3, 非三角形",
                  "5, 5, 5, 等邊三角形",
                  "5, 5, 8, 等腰三角形",
                  "3, 4, 5, 直角三角形",
                  "2, 3, 4.5, 鈍角三角形",
                  "4, 5, 6, 銳角三角形",
                  "7, 8, 9, 銳角三角形"
          })
          void parameterizedTriangleTest(double a, double b, double c, String expected) {
              assertEquals(expected, triangle.determineTriangleType(a, b, c));
          }
      }

       

      運行測試與結果驗證

      執行測試后,所有用例通過,閏年邏輯正確處理邊界條件。

       

       

       

       

      四、  個人體會

       

      通過本次實驗,我掌握了參數化測試和復雜條件分支的覆蓋方法。在三角形分類任務中,需特別注意浮點數精度和三邊排序問題。單元測試能有效驗證邊界條件(如三邊相等)和異常處理(如負數邊長)。

      posted @ 2025-05-04 22:50  /張根源/  閱讀(36)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 色综合AV综合无码综合网站| 国产亚洲一区二区三区成人| 精品乱码一区二区三四区视频| 一区二区三区无码免费看| 激情国产av做激情国产爱| 亚洲av成人无网码天堂| 金川县| 精品久久丝袜熟女一二三| 中文字幕av无码免费一区| 中文字幕国产精品综合| 亚洲国产成人va在线观看天堂 | 国产永久免费高清在线观看| 中字幕人妻一区二区三区| 国产美女久久久亚洲综合| 熟女人妻视频| 精品久久久久久无码免费| 在线精品国精品国产不卡| 人妻丝袜AV中文系列先锋影音| 女人裸体性做爰视频| 国产精品制服丝袜无码| 久久香蕉国产线看观看猫咪av| 精品日本乱一区二区三区| 日本一区二区三区专线| 最新亚洲人成网站在线影院| 亚洲综合成人一区二区三区| 亚洲av日韩av中文高清性色| 亚洲首页一区任你躁xxxxx| 鹤庆县| 国产精品中文字幕av| 国产精品户外野外| 人妻少妇88久久中文字幕| 亚洲在战av极品无码| 日本一区二区三区内射| 国产精品午夜福利合集| 婷婷六月天在线| 亚洲成人动漫在线| 国产综合久久久久久鬼色| 国产老熟女视频一区二区| 亚洲欧美日韩综合久久| 人妻系列中文字幕精品| 广昌县|