1、测测 试试 入入 门门 软件测试目的软件测试目的?测试是一个为了寻找错误而运行程序的过程 一个好的测试用例是只可能找到迄今为止尚未发现错误的用例 一个成功的测试是揭示了迄今为止尚未发现的错误的测试 软件测试方法分类软件测试方法分类 黑盒测试黑盒测试 白盒测试白盒测试 两种测试方法从不同的角度出发,两种测试方法从不同的角度出发,反映了软件的不同侧面,也适用于反映了软件的不同侧面,也适用于 不同的开发环境。不同的开发环境。软件测试方法:白盒测试软件测试方法:白盒测试 应用程序应用程序 白盒测试又称结构测试、逻辑驱动测试白盒测试又称结构测试、逻辑驱动测试或基于程序本身的测试,也可称为测试或基于程序本
2、身的测试,也可称为测试员测试,主要应用于结构化开发环境。员测试,主要应用于结构化开发环境。软件测试方法:黑盒测试软件测试方法:黑盒测试 黑盒测试又称功能测试、数据驱动测试或基黑盒测试又称功能测试、数据驱动测试或基于规格说明的测试,也可被称为用户测试,于规格说明的测试,也可被称为用户测试,主要应用于快速应用开发(主要应用于快速应用开发(RAD)环境。)环境。RAD:Rapid Application Development RAD为软件测试带来新的挑战为软件测试带来新的挑战?软件结构越来越复杂软件结构越来越复杂?团队规模越来越大团队规模越来越大?开发成本与风险越来开发成本与风险越来越高越高?用户
3、对应用程序的质用户对应用程序的质量要求越来越严格量要求越来越严格 软件测试生命周期软件测试生命周期 软件测试的阶段组成软件测试的阶段组成 测试开发测试开发 测试设计测试设计 测试计划测试计划 测试评估测试评估 测试执行测试执行 测试计划的目标测试计划的目标?收集并组织测试计划信息收集并组织测试计划信息?将软件细化为可检验的测试需求将软件细化为可检验的测试需求?建立测试计划建立测试计划 测试计划:定义测试需求测试计划:定义测试需求 测试需求测试需求 用户需求用户需求 定义定义 根据用户需求定义并完善测试根据用户需求定义并完善测试需求,以作为整个测试的标准需求,以作为整个测试的标准 测试计划:考虑
4、测试内容测试计划:考虑测试内容?系统功能系统功能?用户界面用户界面?系统性能系统性能?加载测试加载测试?强化测试强化测试?容量测试容量测试?配置测试配置测试?安装测试安装测试 测试设计的目标测试设计的目标?定义自动测试过程定义自动测试过程?选择适当的测试用例选择适当的测试用例?组织测试过程信息,并传递给测试开发组织测试过程信息,并传递给测试开发人员人员 测试设计测试设计 定义定义 测试需求测试需求 用户需求用户需求 决定决定 测测试试过过程程选择选择 测测试试用用例例 测试开发目标测试开发目标?建立可重用的自动测试建立可重用的自动测试?维护测试对于测试需求的可跟踪性维护测试对于测试需求的可跟踪
5、性 测试开发技术:编程测试开发技术:编程 优势:优势:具有较大的灵活性具有较大的灵活性 缺点:缺点:编程过程复杂编程过程复杂 测试开发技术:录制测试开发技术:录制 优势:优势:操作简单、快捷操作简单、快捷 缺点:缺点:灵活性较差灵活性较差 测试开发技术测试开发技术 录录 制制 脚本脚本 自动生成自动生成 脚本生成自动化,并可根据需要修改脚本生成自动化,并可根据需要修改 测试执行的目标测试执行的目标?执行测试执行测试?检查测试结果检查测试结果?研究并组织测试结果以便评估研究并组织测试结果以便评估?维护缺陷记录维护缺陷记录 测试执行的步骤:单元测试执行的步骤:单元 测试执行的步骤:模块测试执行的步
6、骤:模块 测试执行的步骤:集成测试执行的步骤:集成 测试执行的步骤:系统联调测试执行的步骤:系统联调 测试执行的步骤:验收测试测试执行的步骤:验收测试?系统联调成功后,系统联调成功后,系统便可以进入试运系统便可以进入试运行阶段。行阶段。?经过相对时间的系经过相对时间的系统试运行后,如果系统试运行后,如果系统运行正常。便可进统运行正常。便可进行用户验收测试阶段行用户验收测试阶段。测试执行的步骤:维护测试执行的步骤:维护 测试评估的目标测试评估的目标?提交量化的测试覆盖域及缺陷跟踪报提交量化的测试覆盖域及缺陷跟踪报告告?评估软件质量评估软件质量 测试评估的内容:覆盖域测试评估的内容:覆盖域?哪些测
7、试需哪些测试需求经过了测试求经过了测试?哪些需求通哪些需求通过了测试过了测试?我们的工作我们的工作进度及效率如进度及效率如何何 测试评估的内容:缺陷测试评估的内容:缺陷?我们发现了哪我们发现了哪些缺陷些缺陷?我们解决了哪我们解决了哪些缺陷些缺陷?遗留缺陷对软遗留缺陷对软件有何影响件有何影响 测试评估:综合评价测试评估:综合评价 测试模式测试模式 错误分级严重性错误分级严重性 我们一般把发现的错误我们一般把发现的错误(Bug)/缺陷缺陷(Defect)按严重性分为按严重性分为4类:类:1.严重:严重:系统崩溃或挂起等导致系统不能继续运行;系统崩溃或挂起等导致系统不能继续运行;2.主要:主要:使系
8、统不稳定、或破坏数据、或产生错误结果,而且是常规操作中经使系统不稳定、或破坏数据、或产生错误结果,而且是常规操作中经常发生或非常规操作中不可避免的主要问题;常发生或非常规操作中不可避免的主要问题;3.次要:次要:系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果等系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果等影响有限的问题,如:显示不正确但输出正确;影响有限的问题,如:显示不正确但输出正确;4.轻微:轻微:界面拼写错误或用户使用不方便等小问题或需要完善的问题;界面拼写错误或用户使用不方便等小问题或需要完善的问题;错误分级优先级错误分级优先级 我们也把发现的错误按优先级分为
9、三种:?1.高:立即修改;?2.中:必须修改,但不一定马上修改;?3.低:允许不修改;一般来说是越影响用户接受或使用该产品的错误优先级越高。常见问题常见问题 下面将列出一些问题,他们具有一些特征:?显而易见的?开发时容易被忽略?容易避免?容易修改 但是对于测试人员或用户来说可能却是非常头痛和不方便的 这类问题一般是表面上的,技术含量不高,但是给予用户的感觉往往是软件不这类问题一般是表面上的,技术含量不高,但是给予用户的感觉往往是软件不够专业够专业?1.不符合用户操作习惯。如,快捷键定义不科学(不易理解、与系统快捷键不符合用户操作习惯。如,快捷键定义不科学(不易理解、与系统快捷键冲突等)、不实用
10、冲突等)、不实用(键位分布不合理、按键太多,甚至没有快捷键等键位分布不合理、按键太多,甚至没有快捷键等);?2.风格的统一性;对于同一个系统,同一系统环境下的应用程序出现不同的风格的统一性;对于同一个系统,同一系统环境下的应用程序出现不同的界面风格和操作风格,对用户来说是一大考验,对开发者来说是专业性和正规界面风格和操作风格,对用户来说是一大考验,对开发者来说是专业性和正规性的表现。性的表现。形象类问题形象类问题?3.界面中英文混杂,经常弹出莫名其妙的信息,界面中英文混杂,经常弹出莫名其妙的信息,甚至还拼错单词;甚至还拼错单词;?4.提示、标题等不够专业,或各处描述不一致;提示、标题等不够专业
11、,或各处描述不一致;形象类问题(续)形象类问题(续)?5.界面元素的位置:缺省认为用户使用某种分辨率,导致在其他分辨率界面元素的位置:缺省认为用户使用某种分辨率,导致在其他分辨率下显示不正常;下显示不正常;?6.说明书或帮助的排版格式不专业:中英文搭配不对、标点符号全角半说明书或帮助的排版格式不专业:中英文搭配不对、标点符号全角半角部分、没有排版禁则角部分、没有排版禁则?7.程序名程序名/路径名不规则(比如为程序员的名字等);路径名不规则(比如为程序员的名字等);?8.没有安装程序、或安装程序不完善没有安装程序、或安装程序不完善(丢掉一些必要的模块或文件丢掉一些必要的模块或文件);?9.界面元
12、素参差不齐,文字不能完全显示,界面元素参差不齐,文字不能完全显示,TAB键顺序与使用顺序不一键顺序与使用顺序不一致等;致等;可用性问题可用性问题 用户比开发或测试人员在接触界面上要花费更多时间。错误和低效的用户界用户比开发或测试人员在接触界面上要花费更多时间。错误和低效的用户界面的影响会变得越来越大,最终甚至会掩盖了产品有用的方面。面的影响会变得越来越大,最终甚至会掩盖了产品有用的方面。下面是一些用户界面错误的例子:下面是一些用户界面错误的例子:?1.输入无合法性检查和值域检查,允许用户输入错误的数据类型(有时只输入无合法性检查和值域检查,允许用户输入错误的数据类型(有时只需要选择合适的输入控
13、件即可,比如日期用专门的日期输入控件),并导致需要选择合适的输入控件即可,比如日期用专门的日期输入控件),并导致不可逆料的后果;不可逆料的后果;?2.界面中的信息不能及时更新,不能正确反映数据状态,甚至对用户产生界面中的信息不能及时更新,不能正确反映数据状态,甚至对用户产生错误的误导(如:记录个数、参数设置对话框中的缺省值等);错误的误导(如:记录个数、参数设置对话框中的缺省值等);可用性问题(续)可用性问题(续)下面是一些低效的用户界面的例子:下面是一些低效的用户界面的例子:?1.表达不清或过于模糊的信息提示;表达不清或过于模糊的信息提示;?2.要求用户输入多余的、本来系统可以自己得到的数据
14、(如:安装后用户要求用户输入多余的、本来系统可以自己得到的数据(如:安装后用户要手动修改某些配置文件);要手动修改某些配置文件);?3.为了达到某个设置或对话框,用户必须做许为了达到某个设置或对话框,用户必须做许多冗余操作(如对话框嵌套层次太多);多冗余操作(如对话框嵌套层次太多);?4.不能记忆用户的设置或操作习惯(如用户每不能记忆用户的设置或操作习惯(如用户每次进入都需要重新操作一次初始环境);次进入都需要重新操作一次初始环境);?5.使用不完善的功能且不给用户以恰当的提示;使用不完善的功能且不给用户以恰当的提示;?6.不经用户确认就对系统或数据进行重大修改;不经用户确认就对系统或数据进行
15、重大修改;稳定性问题稳定性问题 往往是在设计时考虑不周而造成的一些问题。往往是在设计时考虑不周而造成的一些问题。?1.不可重现的死机,或不断申请但不完全释放不可重现的死机,或不断申请但不完全释放资源,系统性能越来越低;资源,系统性能越来越低;?2.主系统和子系统使用同样的临界资源而互相主系统和子系统使用同样的临界资源而互相不知道(如:使用同样的类名或临时文件名、使不知道(如:使用同样的类名或临时文件名、使用同样的数据库字段名或登录帐号);用同样的数据库字段名或登录帐号);?3.不能重现的错误(如不检查异常情况不能重现的错误(如不检查异常情况(如内如内存申请不成功、网络突然中断或长时间没有响应存
16、申请不成功、网络突然中断或长时间没有响应)导致错误等);导致错误等);其他问题其他问题?1.文档匮乏:文档不标准;无新功能使用方法;无版本改动说明。我们不仅要认为没有说明文档的产品不是是一个完整的产品,也要认为没有说明或没有正确说明的功能是一个没有完全实现的功能,因为用户无法用得起来。2.运行时不检查内存、数据库或硬盘空间等;3.假设用户环境(硬件/网络环境、软件环境等、配置等);4.安装困难,或根本无法安装等;5.提供的应用程序带有病毒;6.程序不经调试,或提供Debug版本给测试组或测试用户;7.用户现场开发和修改,没有修改记录和保存版本;其他问题(续)其他问题(续)8.错误反复出现,改动得不彻底、或版本管理出现混乱;?9.改动时不小心,导致错误越改越多;?10.版本中部分内容和接口倒退;?11.状态没有正确变更(有些选项永远是灰的,有些选项、菜单项在该灰时还不灰);?12.资源没有和代码分离,不同语言版本间不能平滑转换;?13.模块(子系统)间接口不一致;?期望项目组关注的一些问题期望项目组关注的一些问题?1.修改Bug 时考虑得不够;2.将问题留给测试人员去发现的心态(不仔细测试、不小心修改、修改不彻底);3.更多地从用户使用的角度考虑设计、编码与测试;4.程序可重用性问题(很多不同的功能写在一个应用程序内);5.开发过程中人员变动;6.项目负责人对于BUG 的跟踪;