• 为应届毕业生和职场新人提供IT职业培训
  • 帮助更多的应届毕业生和职场新人找到满意工作
  • 帮助更多的用人单位轻松招到可用之才

400-888-4011

软件测试进阶指南:白盒测试核心技巧与实践要点解析

来源:石家庄博为峰 时间:10-02

软件测试进阶指南:白盒测试核心技巧与实践要点解析

软件测试基础:黑盒与白盒的核心差异

刚接触软件测试的新手常面临一个核心问题:如何快速区分黑盒测试与白盒测试?简单来说,黑盒测试更关注系统外部行为,像“观察机器如何运转”;白盒测试则深入代码内部,类似“拆解机器看零件”。理解二者的差异与互补性,是构建测试能力的步。

以常见的登录功能测试为例:黑盒测试会验证输入错误密码是否提示“密码错误”,而白盒测试则会检查代码中密码校验逻辑是否存在SQL注入风险。这种内外结合的测试方式,能更全面地保障软件质量。

黑盒测试方法详解:从基础到进阶

黑盒测试作为测试入门的核心内容,其方法体系覆盖了功能验证的主要场景。实际工作中,测试人员需根据项目特点灵活选择方法组合,以下是几种常用方法的深度解析:

1. 边界值测试:抓住临界场景的关键

边界值测试是黑盒测试的“基础武器”,尤其适用于数值输入场景。例如,某系统要求输入年龄为18-60岁,测试重点应放在17、18、60、61这几个临界点。需要注意的是,布尔型输入(如“是否同意协议”)因只有“是/否”两种状态,无法应用边界值测试,此时需结合等价类划分补充覆盖。

2. 等价类划分:提升测试效率的关键

等价类划分将输入数据分为有效等价类与无效等价类,通过测试代表性用例覆盖全量情况。以邮箱验证为例,有效等价类可包括“正确格式的邮箱(如test@example.com)”,无效等价类则涵盖“缺少@符号”“无域名后缀”等。实际操作中,建议为每个等价类编号(如E1代表有效邮箱),便于用例管理与追溯。

3. 因果图与决策表:复杂逻辑的解决方案

当功能涉及多个输入条件与输出结果的关联时,因果图是理清逻辑的有效工具。例如,某系统根据用户等级(普通/VIP)和消费金额(<1000元/>=1000元)决定是否赠送积分,通过绘制因果图可明确“用户等级为VIP且消费≥1000元→赠送积分”等规则。但需注意,因果图绘制过程较繁琐,实际中可直接转化为决策表,通过“输入条件-规则-输出结果”的表格形式快速设计用例。

4. 错误推测法:经验驱动的测试补充

错误推测法依赖测试人员的经验积累,通过“猜测可能出现的错误”设计用例。例如,曾发现某系统在网络延迟时易出现订单重复提交问题,后续测试中可针对性增加“弱网环境下连续点击提交按钮”的用例。该方法的优势是能快速定位高频缺陷,但需注意结合其他方法保障覆盖率。

白盒测试核心技巧:从代码到质量的深度把控

白盒测试是测试人员技术进阶的标志,其核心在于通过代码分析提升软件内在质量。根据测试方式的不同,可分为静态测试与动态测试两大类,各自有独特的实践要点。

静态测试:无需执行代码的深度检查

静态测试不运行程序,而是通过人工或工具检查代码结构与规范,常见方法包括:

  • 同行评审:组织开发、测试、产品人员共同阅读代码,重点关注逻辑漏洞(如未处理空指针)、代码规范(如变量命名是否清晰)等问题。
  • 静态结构分析:利用工具(如SonarQube)检测代码复杂度、重复代码、潜在安全漏洞(如SQL注入风险),生成可视化报告指导优化。
  • 数据流测试:追踪变量从定义到使用的全流程,检查是否存在“定义未使用”“使用未定义”等问题,确保数据流向清晰可控。

动态测试:基于执行路径的覆盖验证

动态测试通过运行程序验证代码逻辑,核心是设计测试用例覆盖关键路径。常见方法包括:

  • 逻辑覆盖测试:从语句覆盖(确保每行代码至少执行一次)到条件覆盖(验证所有布尔条件的真假分支),逐步提升覆盖深度。例如,若代码包含“if (a>0 || b<10)”,需设计用例覆盖“a>0且b≥10”“a≤0且b<10”等组合情况。
  • 独立路径测试:识别程序中所有独立执行路径(如循环的不同迭代次数),设计用例覆盖每条路径,避免因遗漏路径导致缺陷。
  • 循环测试:针对不同类型循环(简单循环、嵌套循环)设计用例,重点验证循环次数(如0次、1次、次数)、循环终止条件等边界场景。

白盒测试综合策略:从理论到实践的落地指南

实际项目中,白盒测试需与黑盒测试协同,以下是经过行业验证的综合策略,可帮助测试团队提升效率与质量:

1. 优先开展静态白盒测试

在核心功能模块开发阶段,每周组织代码评审会议,结合历史缺陷库(如“空指针异常”“资源未释放”)制定检查清单。例如,某金融系统在用户登录模块的评审中,通过检查清单发现“密码明文存储”的严重安全隐患,避免了上线后的风险。

2. 边界值与逻辑覆盖的双重验证

设计测试用例时,需同时考虑输入边界(如年龄18岁)与代码逻辑边界(如循环次数上限)。例如,某订单系统的“满100减10”活动,黑盒测试会验证“99元/100元/101元”的支付结果,白盒测试则需检查“满减条件判断”的代码是否覆盖“等于100”的边界情况。

3. 针对性补充白盒测试场景

黑盒测试难以覆盖的场景(如内存泄漏、线程安全),需通过白盒工具(如Valgrind检测内存泄漏)或专项测试(如多线程并发测试)补充。例如,某实时通讯软件在高并发场景下频繁崩溃,通过白盒分析发现“线程锁未正确释放”的问题,修复后稳定性显著提升。

4. 工具辅助提升测试效率

合理使用测试工具可大幅降低白盒测试成本。例如,使用JaCoCo统计代码覆盖率,快速定位未覆盖的代码段;通过PMD检查代码规范,自动标记“未使用的变量”“冗余的if-else”等问题。工具生成的报告可作为评审依据,推动开发团队持续优化代码质量。

总结:构建全面的测试能力体系

白盒测试不仅是技术能力的体现,更是保障软件质量的关键手段。从理解黑盒与白盒的差异,到掌握具体测试方法,再到灵活运用综合策略,测试人员需持续积累经验、学习工具,逐步构建“内外兼修”的测试能力。无论是刚入行的新手,还是经验丰富的测试工程师,深入理解白盒测试技巧,都将为职业发展打开更广阔的空间。

校区导航
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-03 22:32:55 HTTP/1.1 GET : http://www.aabqt.com/s/4883/n/29511.html
  2. 运行时间 : 0.016273s [ 吞吐率:61.45req/s ] 内存消耗:394.88kb 文件加载:137
  3. 缓存信息 : 0 reads,0 writes
  1. /data/web/baijiao_branch_collect/public/index.php ( 0.79 KB )
  2. /data/web/baijiao_branch_collect/vendor/autoload.php ( 0.75 KB )
  3. /data/web/baijiao_branch_collect/vendor/composer/autoload_real.php ( 1.63 KB )
  4. /data/web/baijiao_branch_collect/vendor/composer/platform_check.php ( 0.90 KB )
  5. /data/web/baijiao_branch_collect/vendor/composer/ClassLoader.php ( 15.99 KB )
  6. /data/web/baijiao_branch_collect/vendor/composer/autoload_static.php ( 4.26 KB )
  7. /data/web/baijiao_branch_collect/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /data/web/baijiao_branch_collect/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /data/web/baijiao_branch_collect/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /data/web/baijiao_branch_collect/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /data/web/baijiao_branch_collect/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /data/web/baijiao_branch_collect/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /data/web/baijiao_branch_collect/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  18. /data/web/baijiao_branch_collect/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  19. /data/web/baijiao_branch_collect/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  20. /data/web/baijiao_branch_collect/app/provider.php ( 0.19 KB )
  21. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  22. /data/web/baijiao_branch_collect/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  23. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  24. /data/web/baijiao_branch_collect/app/common.php ( 10.83 KB )
  25. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  26. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  27. /data/web/baijiao_branch_collect/config/app.php ( 1.29 KB )
  28. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  29. /data/web/baijiao_branch_collect/config/cache.php ( 1.22 KB )
  30. /data/web/baijiao_branch_collect/config/config.php ( 0.26 KB )
  31. /data/web/baijiao_branch_collect/config/console.php ( 0.29 KB )
  32. /data/web/baijiao_branch_collect/config/cookie.php ( 0.56 KB )
  33. /data/web/baijiao_branch_collect/config/database.php ( 2.29 KB )
  34. /data/web/baijiao_branch_collect/config/filesystem.php ( 0.63 KB )
  35. /data/web/baijiao_branch_collect/config/lang.php ( 0.81 KB )
  36. /data/web/baijiao_branch_collect/config/log.php ( 1.37 KB )
  37. /data/web/baijiao_branch_collect/config/middleware.php ( 0.19 KB )
  38. /data/web/baijiao_branch_collect/config/route.php ( 1.54 KB )
  39. /data/web/baijiao_branch_collect/config/session.php ( 0.57 KB )
  40. /data/web/baijiao_branch_collect/config/trace.php ( 0.34 KB )
  41. /data/web/baijiao_branch_collect/config/view.php ( 0.81 KB )
  42. /data/web/baijiao_branch_collect/app/event.php ( 0.25 KB )
  43. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  44. /data/web/baijiao_branch_collect/app/service.php ( 0.13 KB )
  45. /data/web/baijiao_branch_collect/app/AppService.php ( 0.26 KB )
  46. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  47. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  48. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  49. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  50. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  51. /data/web/baijiao_branch_collect/vendor/services.php ( 0.14 KB )
  52. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  53. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  54. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  55. /data/web/baijiao_branch_collect/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  56. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  57. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  58. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  59. /data/web/baijiao_branch_collect/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  60. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  61. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  62. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.20 KB )
  63. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.75 KB )
  64. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  65. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  66. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.30 KB )
  67. /data/web/baijiao_branch_collect/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  68. /data/web/baijiao_branch_collect/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  69. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  70. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  71. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  72. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  73. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  74. /data/web/baijiao_branch_collect/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  75. /data/web/baijiao_branch_collect/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  76. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  77. /data/web/baijiao_branch_collect/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  78. /data/web/baijiao_branch_collect/vendor/topthink/think-helper/src/helper/Arr.php ( 17.45 KB )
  79. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/cache/driver/Redis.php ( 6.94 KB )
  80. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  81. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  82. /data/web/baijiao_branch_collect/app/Request.php ( 0.09 KB )
  83. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  84. /data/web/baijiao_branch_collect/app/middleware.php ( 0.26 KB )
  85. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  86. /data/web/baijiao_branch_collect/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  87. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  88. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  89. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  90. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  91. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  92. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  93. /data/web/baijiao_branch_collect/route/app.php ( 3.05 KB )
  94. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  95. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  96. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  97. /data/web/baijiao_branch_collect/app/controller/Index.php ( 33.26 KB )
  98. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/facade/Request.php ( 9.20 KB )
  99. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/route/Url.php ( 14.07 KB )
  100. /data/web/baijiao_branch_collect/app/model/IndexModel.php ( 19.95 KB )
  101. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/facade/Config.php ( 1.37 KB )
  102. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/facade/Cache.php ( 2.06 KB )
  103. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  104. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.73 KB )
  105. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/PDOConnection.php ( 53.74 KB )
  106. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  107. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  108. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  109. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/Builder.php ( 24.07 KB )
  110. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  111. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/Query.php ( 15.97 KB )
  112. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  113. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  114. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  115. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  116. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  117. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  118. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  119. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  120. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  121. /data/web/baijiao_branch_collect/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  122. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  123. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  124. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  125. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  126. /data/web/baijiao_branch_collect/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  127. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  128. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  129. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  130. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/view/driver/Php.php ( 6.44 KB )
  132. /data/web/baijiao_branch_collect/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  133. /data/web/baijiao_branch_collect/view/index/pc/school_news_details.php ( 2.39 KB )
  134. /data/web/baijiao_branch_collect/view/index/pc/school_top.php ( 5.76 KB )
  135. /data/web/baijiao_branch_collect/view/index/pc/school_right.php ( 2.17 KB )
  136. /data/web/baijiao_branch_collect/view/index/pc/school_bottom.php ( 1.16 KB )
  137. /data/web/baijiao_branch_collect/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000400s ] mysql:host=127.0.0.1;port=3306;dbname=baijiao_branch_collect;charset=utf8
  2. SHOW FULL COLUMNS FROM `fqi_school` [ RunTime:0.001160s ]
  3. SELECT * FROM `fqi_school` WHERE `school_id` = '4883' AND `site_id` = 16 AND `school_status` = 1 LIMIT 1 [ RunTime:0.000268s ]
  4. SHOW FULL COLUMNS FROM `fqi_school_class` [ RunTime:0.000597s ]
  5. SELECT * FROM `fqi_school_class` WHERE `school_id` = 4883 [ RunTime:0.000238s ]
  6. SHOW FULL COLUMNS FROM `fqi_school_campus` [ RunTime:0.000629s ]
  7. SELECT * FROM `fqi_school_campus` WHERE `school_id` = 4883 [ RunTime:0.000235s ]
  8. SHOW FULL COLUMNS FROM `fqi_school_news` [ RunTime:0.000641s ]
  9. SELECT `a`.*,`content` FROM `fqi_school_news` `a` LEFT JOIN `fqi_school_news_content` `b` ON `b`.`content_id`=`a`.`content_id` WHERE `school_id` = 4883 AND `a`.`content_id` = '29511' AND `news_status` = 1 AND `school_status` = 1 LIMIT 1 [ RunTime:0.000760s ]
  10. (select content_id,news_name,school_id from fqi_school_news where school_id = '4883' and content_id < '29511' and site_id <= '16' order by content_id desc limit 1) union all(select content_id,news_name,school_id from fqi_school_news where school_id = '4883' and content_id > '29511' and site_id <= '16' order by content_id asc limit 1) [ RunTime:0.000497s ]
  11. SHOW FULL COLUMNS FROM `fqi_school_course` [ RunTime:0.000809s ]
  12. SELECT * FROM `fqi_school_course` WHERE `school_id` = 4883 AND `site_id` = 16 AND `course_status` = 1 AND `school_status` = 1 ORDER BY `course_id` DESC LIMIT 4 [ RunTime:0.000401s ]
  13. SELECT * FROM `fqi_school_course` WHERE `school_id` = 4883 AND `school_status` = 1 AND `course_status` = 1 ORDER BY `course_id` DESC LIMIT 8 [ RunTime:0.000196s ]
  14. SELECT * FROM `fqi_school_news` WHERE `school_id` = 4883 ORDER BY `click` DESC,`news_id` DESC LIMIT 5 [ RunTime:0.000185s ]
  15. SELECT `content_id`,`news_name`,`a`.`school_id`,`b`.`school_name` FROM `fqi_school_news` `a` LEFT JOIN `fqi_school` `b` ON `b`.`school_id`=`a`.`school_id` WHERE `a`.`site_id` = '16' AND `b`.`school_status` = '1' AND `news_status` = 1 AND `content_id` < 29511 ORDER BY `content_id` DESC LIMIT 20 [ RunTime:0.005636s ]
0.016584s