什么是测试用例?

  • 标题
  • 测试环境
  • 测试数据
  • 测试步骤
  • 期望结果

多表查询

1
2
3
4
SELECT s.student_name
FROM students s
JOIN courses c ON s.course_id = c.course_id
WHERE c.course_name = '数学';

多表修改

1
2
3
4
UPDATE students
JOIN courses ON students.course_id = courses.course_id
SET students.course_id = 2
WHERE courses.course_name = '数学';

多表删除

1
2
3
4
DELETE s
FROM students s
JOIN courses c ON s.course_id = c.course_id
WHERE c.course_name = '数学';

冒烟测试

主要作用是对新版本的软件进行快速初步验证,以确保系统的基本功能正常,适合进一步深入测试。
代码评审是检查源代码是否达到模块设计的要求。

性能测试(Performance Testing)

通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

负载测试(Load Testing)

模拟实际软件所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其他加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(CPU、内存等),以检验系统的行为和特性,以发现系统可能存在的性能瓶颈,内存泄漏,不能实时同步等问题,负载测试更多的体现了一种方法或一种技术。

压力测试(stress testing)

在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下的操作行为,从而有效地发现系统的某项功能隐患,系统是否具有良好的容错能力和可恢复能力。

白盒测试

  • 语句覆盖
  • 判定覆盖
  • 条件覆盖
  • 判定/条件覆盖
  • 条件组合覆盖
  • 路径覆盖。

黑盒测试

  • 等价类边界值
  • 判定表法
  • 正交法
  • 场景法
  • 错误猜测法

软件验收测试

按照开发阶段划分,测试过程可以分为以下三个主要阶段:
单元测试:这是对软件的最小可测试单元进行测试通常由开发人员在开发过程中进行,目的是验证代码的正确性和功能的正确性。
集成测试:在各个模块集成之后进行,目的是检测模块之间的接口和交互是否正确。
系统测试:对整个系统进行全面测试,确保所有模块和功能在集成后能够正常工作。

按照软件测试阶段划分,可以分为以下几种测试:
Alpha测试:在开发环境或类似环境下进行的内部测试,通常由开发团队进行,目的是发现并修复软件中的缺陷。
Beta测试:在真实环境下进行的外部测试,由用户或第三方进行,目的是获取用户反馈和发现潜在问题。
验收测试:由客户或最终用户进行,以确认软件是否满足需求和要求。
冒烟测试:在每次构建后进行的快速测试,目的是快速验证软件的基本功能是否正常,确保没有重大问题。

对面向过程的系统采用的集成策略有:自顶向下,自底向上

为了提高测试效率,最佳的选择是:选择发现错误可能性大的数据作为测试数据。

软件测试中的二八原则暗示着测试发现的错误中的80%很可能起源于程序模块的20%。

错误猜测法基于这样一种假设,以前犯过的错误,以后同样会犯,我犯过的错误别人同样会犯,前人犯过的错误,后人同样会犯。

测试人员要坚持原则,缺陷未修复完坚决不予通过。

验收测试一般由客户或最终用户参与,有时会委托给测试团队协助,目的是验证系统是否符合用户需求和合同要求。