软件测试基础理论软件测试是通过执行程序或系统评估其是否满足预期需求、发现缺陷并验证质量的过程。核心目的是确保软件的功能性、可靠性、性能和安全性与用户需求一致。软件八大质量特征软件质量特征通常分为功能性质量属性和非功能性质量属性两大类。国际标准化组织ISO/IEC 25010标准定义了软件质量的八大特性原为九大后整合调整以下为详细说明功能性质量特征功能性Functionality软件在指定条件下满足明确和隐含需求的能力。包括子特性完备性、正确性、适用性。可靠性Reliability在特定条件下维持指定性能水平的能力。子特性成熟性稳定性、容错性、易恢复性。易用性Usability用户理解、学习和操作软件的便捷程度。子特性易学性、易操作性、用户界面友好性。非功能性质量特征效率Efficiency软件在运行时消耗资源CPU、内存等的优化程度。子特性时间特性响应速度、资源利用率。可维护性Maintainability软件适应变更或修复缺陷的难易程度。子特性模块化、可分析性、可修改性。可移植性Portability软件在不同环境中硬件、操作系统等的适应能力。子特性适应性、易安装性、兼容性。安全性Security保护数据和系统免受未授权访问或攻击的能力。子特性机密性、完整性、抗抵赖性。兼容性Compatibility软件与其他系统或组件协同工作的能力。子特性共存性、互操作性。软件测试设计根据测试点输出测试用例什么是测试用例它是描述输入、动作、和一个期望的结果的测试文档。测试用例的核心要素用例编号唯一标识符便于追踪和管理。模块模块功能一个项目存在多个模块一个模块下存在多个 功能。功能一个功能存在一个或多个用例。用例标题描述测试的目的用例标题不能重复言简意赅。格式条件动作预期结果优先级重要级别1.级别高低来表示高核心流程用例冒烟用例中一般流程。异常流程低界面、兼容2.通过数字表示1、2、3执行条件测试所需的预置环境如操作系统、数据库状态。执行当前用例的嵌套条件,比如账号登陆成功前置条件存在当前账号且有效。预期结果在正确实现功能时应输出的结果或行为。操作步骤1.路径【一级路径二级路径】2.输入什么数据输入3.做了什么操作(动作)实际结果测试执行后记录的真实输出通常在测试报告中补充。问题重复测试、冗余测试一个测试的可以写多条用例吗用例中的测试数据是可以随意编写的吗测试目的1测试覆盖率高测试人员决定影响测试覆盖率高低的因素。1.测速点覆盖率需求分析阶段2.用例覆盖率越高越好测试设计阶段3.测试执行率越高越好测试执行阶段测试点覆盖率80%测试执行率100%用力覆盖率100%测试覆盖率80%2bug(错误)遗留率低 开发人员决定3如何在最少的测试中找到最多的bug。测试用例设计方法等价类划分将输入数据分为有效和无效类别减少冗余测试。有效等价类符合输入条件的数据集合无效等价类不符合输入条件的数据集合用最少的测试用例去覆盖最多的有效等价类用最多的用例一一覆盖无效等价类边界值分析针对输入范围的边界值如最小值、最大值设计用例。对于范围[a, b]测试a-1、a、a1、b-1、b、b1适用于数值、长度、数量等有明确边界的情况错误推测基于经验预测可能出错的场景并设计用例。常见错误类型数据溢出、空指针、重复提交、特殊字符处理等需结合历史缺陷数据或常见编程陷阱场景测试模拟用户实际使用流程如电商下单流程。典型场景正常流程、异常流程、备选流程适用于业务逻辑复杂的系统因果图法判定表法正交实验法:因果关系庞大的情况下一般就使用正交实验法用例评审目的用例准确性和项目需求一致和完整性覆盖率高不要出现漏侧用力评审两种方式组内评审项目组测试的人员、组外评审项目组外的人员测试执行测试执行的前提条件测试环境搭建好并且冒烟测试通过怎样执行测试运行被测项目根据测试用例执行测试、如果实际结果和预期结果不一样可能就是bug什么是bug在计算机科学和软件开发领域bug指程序或系统中存在的错误、故障或缺陷导致其无法按预期运行。这些错误可能由编码逻辑错误、设计缺陷、硬件兼容性问题或其他意外因素引起。Bug类型代码功能错误因为实现的功能跟需求不一样导致这类bug这类bug是最多的界面优化界面不好看或者是不符合用户使用习惯设计缺陷与开发、产品需求文档不一致的Bug等级致命级Critical/Blocker系统崩溃或核心功能完全失效数据丢失或严重损坏安全漏洞导致系统被入侵主要业务流程无法继续严重级Major重要功能模块无法正常使用性能问题显著影响用户体验数据计算或显示错误兼容性问题导致部分用户无法使用一般级Normal/Minor次要功能异常但不影响主流程界面显示问题但不影响功能操作逻辑不够友好文档描述不准确轻微级Trivial/Cosmetic界面元素轻微错位拼写或排版错误不影响功能的提示信息问题非关键路径的UI显示问题建议级Enhancement功能改进建议用户体验优化点非缺陷类的需求变更性能或架构优化建议Bug的类型及等级判断致命1、严重2、一般3、细微4、感谢与建议5用户输入正确的用户名和密码不能登录网站一等客户需求要有充值功能但是网站没有做重要2次要3网站充值后出现金额错误1在某购物APP上进行商品搜索时闪退回到手机桌面1在某购物APP上进行商品搜索时手机卡死1关闭按钮在弹窗左侧4APP某个图标显示太小或者像素失真4某个提示语需要改进一下用户对专业术语不太懂4忘记密码功能没有实现----次要功能没有实现3Bug的生命周期及流程新建提Bug 指派 已解决 待验 关闭注意与预期结果不一定就是一个bug不予解决时1.参考bug的优先级界面或者建议性的bug沟通无果则与产品确认。延期处理:1.建议性bug优先级低改动太大的影响大的。2.衡量时间bug影响程度。3.产品做最后的确认把确认结果写入备注。如何验证bug1.在解决的版本上验证是否解决。2.与bug之相关联的的功能是否解决。没有解决的话再重新激活。禅道处理工具禅道是一款开源的项目管理软件提供需求管理、任务分配、缺陷跟踪等功能。其处理工具主要包括内置功能模块及第三方集成工具用于提升团队协作效率。BUG的管理工具的使用常见的BUG管理工具包括Jira、Bugzilla、Trello、Asana、Mantis等。选择工具时需考虑团队规模、项目复杂度、集成需求如与GitHub、Jenkins等工具的兼容性以及预算。Jira适合中大型团队提供丰富的自定义功能Trello适合轻量级需求界面简洁Bugzilla是开源工具适合预算有限的团队。工具的初始配置创建项目空间定义工作流状态如“待处理”“修复中”“已测试”“已关闭”。设置优先级如高/中/低、严重程度如崩溃/阻塞/次要和分类标签如前端/后端。配置邮件通知规则确保相关人员及时接收BUG更新。BUG提交规范提交BUG时需包含以下信息标题简明描述问题、重现步骤详细操作流程、预期与实际结果、环境信息操作系统、浏览器版本等、截图或日志附件。避免模糊描述例如“功能失效”应改为“点击提交按钮后页面无响应”。分配与跟踪根据模块或职责分配BUG给对应成员如前端BUG分配给前端开发者。定期检查BUG状态避免长时间滞留。使用工具中的看板或甘特图功能可视化进度确保高优先级BUG优先处理。验证与关闭修复后需由测试人员验证确认问题解决后更新状态为“已关闭”。若未通过验证重新激活并添加注释说明。保留历史记录便于后续回溯分析。数据分析与改进利用工具的报表功能如Jira的Dashboard统计BUG数量、解决周期、复发率等。识别高频问题模块优化开发或测试流程。定期复盘调整BUG管理策略。团队协作建议统一工具使用规范避免信息分散。定期同步BUG状态如每日站会提及阻塞性BUG。鼓励开发与测试人员直接沟通减少工具中的无效流转。BUG单包含那些内容BUG单的基本要素标题简洁描述问题如“登录页面验证码无法显示”。描述详细说明BUG的现象、触发条件和预期结果。重现步骤明确的操作步骤帮助开发人员复现问题。环境信息操作系统、浏览器版本、设备型号等。优先级/严重程度标注BUG的影响等级如阻塞、严重、一般。附件截图、日志文件或视频等辅助材料。扩展内容模块/功能分类关联到具体功能模块便于跟踪。提交人/日期记录提交者和时间便于追溯。状态跟踪如“新建”“修复中”“已关闭”等。关联需求或任务链接到相关的需求文档或开发任务。示例模板标题支付页面金额计算错误描述输入商品数量为2时总价未按单价×数量更新。重现步骤进入商品页选择任意商品修改数量为2观察总价栏实际显示总价仍为单件价格。环境Chrome 120, Windows 11优先级严重附件支付页面截图附错误高亮标注
软件测试入门:从理论到实践(基础3)
软件测试基础理论软件测试是通过执行程序或系统评估其是否满足预期需求、发现缺陷并验证质量的过程。核心目的是确保软件的功能性、可靠性、性能和安全性与用户需求一致。软件八大质量特征软件质量特征通常分为功能性质量属性和非功能性质量属性两大类。国际标准化组织ISO/IEC 25010标准定义了软件质量的八大特性原为九大后整合调整以下为详细说明功能性质量特征功能性Functionality软件在指定条件下满足明确和隐含需求的能力。包括子特性完备性、正确性、适用性。可靠性Reliability在特定条件下维持指定性能水平的能力。子特性成熟性稳定性、容错性、易恢复性。易用性Usability用户理解、学习和操作软件的便捷程度。子特性易学性、易操作性、用户界面友好性。非功能性质量特征效率Efficiency软件在运行时消耗资源CPU、内存等的优化程度。子特性时间特性响应速度、资源利用率。可维护性Maintainability软件适应变更或修复缺陷的难易程度。子特性模块化、可分析性、可修改性。可移植性Portability软件在不同环境中硬件、操作系统等的适应能力。子特性适应性、易安装性、兼容性。安全性Security保护数据和系统免受未授权访问或攻击的能力。子特性机密性、完整性、抗抵赖性。兼容性Compatibility软件与其他系统或组件协同工作的能力。子特性共存性、互操作性。软件测试设计根据测试点输出测试用例什么是测试用例它是描述输入、动作、和一个期望的结果的测试文档。测试用例的核心要素用例编号唯一标识符便于追踪和管理。模块模块功能一个项目存在多个模块一个模块下存在多个 功能。功能一个功能存在一个或多个用例。用例标题描述测试的目的用例标题不能重复言简意赅。格式条件动作预期结果优先级重要级别1.级别高低来表示高核心流程用例冒烟用例中一般流程。异常流程低界面、兼容2.通过数字表示1、2、3执行条件测试所需的预置环境如操作系统、数据库状态。执行当前用例的嵌套条件,比如账号登陆成功前置条件存在当前账号且有效。预期结果在正确实现功能时应输出的结果或行为。操作步骤1.路径【一级路径二级路径】2.输入什么数据输入3.做了什么操作(动作)实际结果测试执行后记录的真实输出通常在测试报告中补充。问题重复测试、冗余测试一个测试的可以写多条用例吗用例中的测试数据是可以随意编写的吗测试目的1测试覆盖率高测试人员决定影响测试覆盖率高低的因素。1.测速点覆盖率需求分析阶段2.用例覆盖率越高越好测试设计阶段3.测试执行率越高越好测试执行阶段测试点覆盖率80%测试执行率100%用力覆盖率100%测试覆盖率80%2bug(错误)遗留率低 开发人员决定3如何在最少的测试中找到最多的bug。测试用例设计方法等价类划分将输入数据分为有效和无效类别减少冗余测试。有效等价类符合输入条件的数据集合无效等价类不符合输入条件的数据集合用最少的测试用例去覆盖最多的有效等价类用最多的用例一一覆盖无效等价类边界值分析针对输入范围的边界值如最小值、最大值设计用例。对于范围[a, b]测试a-1、a、a1、b-1、b、b1适用于数值、长度、数量等有明确边界的情况错误推测基于经验预测可能出错的场景并设计用例。常见错误类型数据溢出、空指针、重复提交、特殊字符处理等需结合历史缺陷数据或常见编程陷阱场景测试模拟用户实际使用流程如电商下单流程。典型场景正常流程、异常流程、备选流程适用于业务逻辑复杂的系统因果图法判定表法正交实验法:因果关系庞大的情况下一般就使用正交实验法用例评审目的用例准确性和项目需求一致和完整性覆盖率高不要出现漏侧用力评审两种方式组内评审项目组测试的人员、组外评审项目组外的人员测试执行测试执行的前提条件测试环境搭建好并且冒烟测试通过怎样执行测试运行被测项目根据测试用例执行测试、如果实际结果和预期结果不一样可能就是bug什么是bug在计算机科学和软件开发领域bug指程序或系统中存在的错误、故障或缺陷导致其无法按预期运行。这些错误可能由编码逻辑错误、设计缺陷、硬件兼容性问题或其他意外因素引起。Bug类型代码功能错误因为实现的功能跟需求不一样导致这类bug这类bug是最多的界面优化界面不好看或者是不符合用户使用习惯设计缺陷与开发、产品需求文档不一致的Bug等级致命级Critical/Blocker系统崩溃或核心功能完全失效数据丢失或严重损坏安全漏洞导致系统被入侵主要业务流程无法继续严重级Major重要功能模块无法正常使用性能问题显著影响用户体验数据计算或显示错误兼容性问题导致部分用户无法使用一般级Normal/Minor次要功能异常但不影响主流程界面显示问题但不影响功能操作逻辑不够友好文档描述不准确轻微级Trivial/Cosmetic界面元素轻微错位拼写或排版错误不影响功能的提示信息问题非关键路径的UI显示问题建议级Enhancement功能改进建议用户体验优化点非缺陷类的需求变更性能或架构优化建议Bug的类型及等级判断致命1、严重2、一般3、细微4、感谢与建议5用户输入正确的用户名和密码不能登录网站一等客户需求要有充值功能但是网站没有做重要2次要3网站充值后出现金额错误1在某购物APP上进行商品搜索时闪退回到手机桌面1在某购物APP上进行商品搜索时手机卡死1关闭按钮在弹窗左侧4APP某个图标显示太小或者像素失真4某个提示语需要改进一下用户对专业术语不太懂4忘记密码功能没有实现----次要功能没有实现3Bug的生命周期及流程新建提Bug 指派 已解决 待验 关闭注意与预期结果不一定就是一个bug不予解决时1.参考bug的优先级界面或者建议性的bug沟通无果则与产品确认。延期处理:1.建议性bug优先级低改动太大的影响大的。2.衡量时间bug影响程度。3.产品做最后的确认把确认结果写入备注。如何验证bug1.在解决的版本上验证是否解决。2.与bug之相关联的的功能是否解决。没有解决的话再重新激活。禅道处理工具禅道是一款开源的项目管理软件提供需求管理、任务分配、缺陷跟踪等功能。其处理工具主要包括内置功能模块及第三方集成工具用于提升团队协作效率。BUG的管理工具的使用常见的BUG管理工具包括Jira、Bugzilla、Trello、Asana、Mantis等。选择工具时需考虑团队规模、项目复杂度、集成需求如与GitHub、Jenkins等工具的兼容性以及预算。Jira适合中大型团队提供丰富的自定义功能Trello适合轻量级需求界面简洁Bugzilla是开源工具适合预算有限的团队。工具的初始配置创建项目空间定义工作流状态如“待处理”“修复中”“已测试”“已关闭”。设置优先级如高/中/低、严重程度如崩溃/阻塞/次要和分类标签如前端/后端。配置邮件通知规则确保相关人员及时接收BUG更新。BUG提交规范提交BUG时需包含以下信息标题简明描述问题、重现步骤详细操作流程、预期与实际结果、环境信息操作系统、浏览器版本等、截图或日志附件。避免模糊描述例如“功能失效”应改为“点击提交按钮后页面无响应”。分配与跟踪根据模块或职责分配BUG给对应成员如前端BUG分配给前端开发者。定期检查BUG状态避免长时间滞留。使用工具中的看板或甘特图功能可视化进度确保高优先级BUG优先处理。验证与关闭修复后需由测试人员验证确认问题解决后更新状态为“已关闭”。若未通过验证重新激活并添加注释说明。保留历史记录便于后续回溯分析。数据分析与改进利用工具的报表功能如Jira的Dashboard统计BUG数量、解决周期、复发率等。识别高频问题模块优化开发或测试流程。定期复盘调整BUG管理策略。团队协作建议统一工具使用规范避免信息分散。定期同步BUG状态如每日站会提及阻塞性BUG。鼓励开发与测试人员直接沟通减少工具中的无效流转。BUG单包含那些内容BUG单的基本要素标题简洁描述问题如“登录页面验证码无法显示”。描述详细说明BUG的现象、触发条件和预期结果。重现步骤明确的操作步骤帮助开发人员复现问题。环境信息操作系统、浏览器版本、设备型号等。优先级/严重程度标注BUG的影响等级如阻塞、严重、一般。附件截图、日志文件或视频等辅助材料。扩展内容模块/功能分类关联到具体功能模块便于跟踪。提交人/日期记录提交者和时间便于追溯。状态跟踪如“新建”“修复中”“已关闭”等。关联需求或任务链接到相关的需求文档或开发任务。示例模板标题支付页面金额计算错误描述输入商品数量为2时总价未按单价×数量更新。重现步骤进入商品页选择任意商品修改数量为2观察总价栏实际显示总价仍为单件价格。环境Chrome 120, Windows 11优先级严重附件支付页面截图附错误高亮标注