目录
一、软件测试
1.1 什么是软件测试
在规定的条件下对程序进行操作,以发现程序问题,对软件质量进行评估的过程。
1.2 目的
以最少的人力、物力、时间找到软件中的缺陷并修改,提高软件系统的质量和可靠性。
1.3 定义
使用人工和自动手段来运行某个程序,目的在于验证软件系统是否符合预期需求和质量标准
1.4 软件测试的原则
- 测试证明软件缺陷的存在。测试的本质就是检验软件存在的缺陷,没有缺陷的软件是不存在的。
- 穷尽测试是不可能的。策略:精准测试、二八原则等。
- 尽早介入测试。
- 缺陷具有集群性。80%的错误往往是由20%的模块引起的(二八原则)。
- 杀虫剂悖论。长时间使用相同的测试方法和测试用例只能排查出同一类型bug,会让其他bug一致隐藏。制定严格的测试计划,设计测试用例时,要考虑各种情况。
- 测试是上下文相关的。应对不同的项目需要用不同的测试策略,所有测试追随到用户需求。
- 无错误谬论。测试的终极目的不是为了无bug,而是为了满足用户需求。
二、软件质量模型
2.1 软件质量模型(ISO9126)
- 功能性:软件产品是否提供所需的功能和满足用户的需求。
- 可靠性:软件产品在特定的条件下是否能够保持期望水平,并具备容错能力和可恢复性。(第一层:设备最好不要出现故障;第二层:设备出现故障不要影响主要功能和业务;第三层:影响主要功能和业务,需尽快定位错误和修复)
- 易用性:软件产品是否易于理解、学习和操作,以及用户界面是否友好和易于导航。
- 效率:软件产品在给定的条件下的性能和效率(响应时间、处理能力和资源利用率等)。
- 可维护性:软件产品是否容易维护和改进。
- 可移植性:软件产品是否能够在不同平台和环境中运行,并支持修改和重新编译部署。
2.2 软件质量保证(SQA)
2.2.1 定义、目的、目标
SQA是一种通过规划、监督和控制软件开发过程来确保软件质量的活动。
目的:使软件过程对于管理层人员来说是可见的。
五个基本目标:
- 保证有计划地进行
- 保证遵循了步骤和需求
- 及时通知给对应人员
- 高管可以接触到项目内部
- 软件质量需要测试工作来保证
2.2.2 QC 和 QA
QC:检验产品的质量
QA:审计过程的质量
工作关系:QC进行质量控制,QA确保QC按步骤执行
三、软件测试基本流程
- 需求分析和测试计划
- 测试设计(设计测试用例和测试数据等,简单来说:测试什么和怎么测)
- 评审测试用例
- 搭建测试环境
- 等待开发提交测试包
- 部署测试包
- 冒烟测试(对软件主体基本功能进行基本测试)
- 测试执行(执行测试用例)
- BUG跟踪处理
- 重复测试和回归测试
- 测试结束