zoukankan      html  css  js  c++  java
  • 软件工程——数独 集成测试

    一、    数独不重复测试

    通过编写暴力算法,每次取1e4的数据量进行一一检查,发现有重复项。

     

    观察输出发现,这是在交换行的过程中出现的错误。对交换行代码进行检查。

    代码错误最终确认在SudokuMaker.cpp 中的void generateFullSwappedRowSudoku(int level);函数,源代码为:

    generateFullSwappedRowSudoku(level + 1);//不进行交换

                swapRow(4, 5);

                //showSudoku();

                generateFullSwappedRowSudoku(level + 1);

                swapRow(4, 6);

                //showSudoku();

                generateFullSwappedRowSudoku(level + 1);

                swapRow(5, 6);

                //showSudoku();

                generateFullSwappedRowSudoku(level + 1);

                swapRow(4, 5);

                //showSudoku();

                generateFullSwappedRowSudoku(level + 1);

                swapRow(4, 6);

                //showSudoku();

            generateFullSwappedRowSudoku(level + 1);

    添加了对其中的代码注释之后解决该问题。原因是在后续的输出中存在不交换即输出的函数,中间层的交换后立即输出与后续的不交换即输出产生了冲突,修改之后代码正确。

    后在1e3和1e4内进行循环测试没有发现重复。相关代码可以参见集成测试项目中的RepeationTest.

    可以合理认为测试是成功的。

    二、    求解算法测试

    首先生成一定数量的数独。数独问题生成器在集成测试项目(IntegrationTest项目)中的SudokuProblemMaker中。根据数独生成算法生成的数独文件读入挖空并输出得到不同1e3到1e6数量的数独问题。生成的问题上传至百度网盘

    对该数独进行求解,在测试过程中取消对数独检查代码(正式生成程序时为加快速度进行注释)的注释如下:

     

    对其进行求解输出测试发现无误。

    三、    数独输出模块检查

    手动对输出进行检查即可。

    用户有个需求不清楚,就是再最后一个数独之后是否有空行。自行理解输出如下:

     

    四、    命令解析测试

     

     

     

    详细测试已在单元测试中做过。GoogleTest的代码在gtest项目中。需要在debug模式下运行,release没有做配置。

     

    五、    集成测试

    通过一系列测试,测试通过。

     

     

  • 相关阅读:
    测试报告M2
    11.24Daily Scrum(4)
    11.24Daily Scrum(3)
    11.24Daily Scrum(2)
    11.24Daily Scrum
    11.22Daily Scrum(2)
    11.22Daily Scrum
    Echarts中graph类型的运用求教
    Echarts学习求教
    用node编写自己的cli工具
  • 原文地址:https://www.cnblogs.com/harrypotterjackson/p/12203564.html
Copyright © 2011-2022 走看看