1联想软件测试中心新员工培训2003.8.4-2003.8.82软件测试中心培训体系感知理解深化技术方面《软件测试基础介绍》《软件质量介绍》《黑盒测试技术》《白盒测试技术》《测试说明的设计和编写》《单元测试过程》《集成测试过程》《确认测试过程》《系统测试过程》《通用测试方法》《软件质量度量与测试》《软件测试工具》管理流程方面《联想软件开发过程概述》《软件测试流程》《软件测试文档》《测试同行评审活动》《测试工作职责和相关素质要求》《软件测试策略与方法经验谈》《编写高质量文档指南》《测试工作改进》《软件测试文化》3课程主线•软件测试基础•软件研发过程和软件测试过程•软件测试相关活动和工作产品•测试人员的职责和要求•测试人员的技术素质和非技术素质要求4本次培训课程表日期时间课程讲师周一10:00—12:00软件测试基础史昕14:00---16:00联想软件测试流程关鹏周二10:30—12:30软件质量体系史昕14:00---16:00软件测试执行史昕周三10:00—12:00黑盒测试关鹏14:00---17:00确认测试过程&系统测试过程赵伟民周四10:00—12:00软件测试文档和同行评审刘笛14:00---18:00软件测试工具马玉华周五10:00—12:00软件测试设计史昕14:00---16:00测试文化尚琪16:00---17:00测试工作经验谈(座谈)各位经理和骨干员工5软件测试基础测试中心2019年9月15日6软件测试基础(目录)1.软件测试的目的和价值2.对软件测试的理解3.软件测试的原则4.软件测试内容和类型5.软件测试人员职责6.软件测试人员要求71.软件测试的价值•防止质量灾难的发生•确保软件满足用户的需求(功能性,非功能性…)•确保软件符合质量标准(国家,行业,企业…)89软件测试的目的•证明程序的正确性——除非仅处理有限种情况。(实际上是不可能的)•发现程序错误(BUG)——直接目标。•检查软件(系统)是否满足需求——期望目标。10软件测试的目的GlenMyers提出关于测试目标的规则:•测试是一个为了寻找错误而运行程序的过程。•一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。•一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。112.对软件测试的理解软件测试定义(1983,IEEE):使用人工或自动手段来进行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。“软件测试以检验是否满足需求为目标”。12对软件测试的理解对测试的正确理解:•贯穿在整个开发各阶段的复查、评估与检验活动,远远超出了程序测试的范围,可以统称为确认、验证与测试活动(V,V&T——Validation,VerificationandTesting广义上的测试)。•从心理上讲,软件测试可以看成是摧毁性的而不是建设性的。•软件测试是软件开发的一部分。13对软件测试的理解对测试工作的误解:认为测试工作不如设计和编码那样具有开拓性,也不容易看到进展。以发现软件错误为目标的测试是非建设性的,甚至是破坏性的。测试工作枯燥无味,不能引起人的兴趣。测试的目的是在于证实程序的正确性,测试是为了说明程序是没有问题的。14对软件测试的理解测试的心理问题:•测试涉及到:测试人员、开发人员、设计人员、管理人员、用户和项目组其他人员。•不同人的心理,关注的焦点不同。•不同人之间的交流和沟通中的重要障碍,站在他人的角度,换位思考。15163.软件测试的原则–测试必须是有计划、有准备的,包括任务、时间、人员、设备、经费、方法与工具、问题等。–所有的测试都应追溯到用户需求。–应当尽早地和不断地进行软件测试。–把Pareto原则应用于软件测试,充分注意测试中的群集现象。–总假定程序是有错误的。–穷举测试是不可能的。–彻底检查每一个测试结果。17软件测试的原则–为了达到最佳效果,应该由独立的第三方来构造测试,程序员应避免检查自己的程序。–严格执行测试计划,排除测试的随意性。–在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。–应当对每一个测试结果做全面检查。–妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。18软件测试的原则“好”的测试的一些属性:一个好的测试发现错误的可能性很高。一个好的测试并不冗余。一个好的测试应该是“最佳品种”。一个好的测试既不会太简单、也不会太复杂。19休息5分钟204.软件测试内容和类型按照测试阶段划分•单元测试•集成测试•确认测试•系统测试•……按照测试技术划分……214.1静态测试和动态测试静态测试:针对测试不运行的部分的检查和审阅动态测试:是指通常意义上的测试——运行和使用软件22汽车:打开前盖是静态测试上路行驶是动态测试23静态测试包括以下内容:•1、代码审查(包括代码评审和走查)。检查代码和设计的一致性;检查代码的标准性、可读性;检查代码逻辑表达的正确性和完整性;检查代码结构的合理性等。•2、静态分析。主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。静态分析功能的软件测试工具有很多,如Purify、Macabe等。•3、文档检查。24动态测试包括:功能测试(黑盒、非分析方法):等价类、因果图、边界、强度等结构测试(白盒、分析方法):语句测试、分支测试、条件测试、路径测试等。实际测试工作中的大部分测试形态都属于动态测试254.2黑盒测试和白盒测试黑盒测试:已知产品的用户需求规格,可以通过测试证明整个软件系统是否符合用户的最终需求白盒测试:已知产品的详细设计过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经通过检查。26黑盒测试-------测试员知道软件做了什么,但不知道软件如何运行,为什么会这样27白盒测试------测试员可以访问程序代码,通过检查代码来协助测试能够看到盒子(软件)里面的结构.28黑盒测试VS白盒测试黑盒测试白盒测试测试依据根据用户能看到的规格说明,即针对命令、信息、报表等用户界面及体现它们的输入数据与输出数据之间的对应关系,特别是针对功能进行测试。根据程序的内部结构,比如语句的控制结构,模块间的控制结构以及内部数据结构等进行测试。优点能站在用户立场上进行测试。能够对程序内部的特定部位进行覆盖测试。特点缺点不能测试程序内部特定部位。如果规格说明有误,则无法发现。无法检验程序的外部特性。无法对未实现规格说明的程序内部欠缺部分进行测试。方法举例等价类划分边值分析因果图语句覆盖判定覆盖条件覆盖判定/条件覆盖路径覆盖模块接口测试29黑盒测试技术•等价类划分•数据测试(边值分析,特殊数据分析)•状态测试(因果图)•ALAC•……304.3其他测试技术•配置测试•兼容性测试•本地化测试•易用性测试•网站测试•文档测试•性能测试•强度测试•……315.测试人员的职责•参与评审(包括需求,设计,代码,测试说明等等,有课程介绍同行评审)•测试计划•测试设计与开发•测试实施•测试总结与评估32测试计划•分析测试需求•估计测试工作量•确定测试资源•确定测试活动•生成《项目测试计划》33测试设计与开发•需求分析•设计测试策略•测试用例的设计与实现•建立测试开发环境,录制和回放测试过程。34测试执行•建立测试环境与系统•生成《阶段测试计划》•执行测试用例•BUG交流与跟踪•修改、补充《测试说明》•生成《阶段测试报告》或《测试报告》35测试总结与评估•各种形式的总结•生成《测试总结报告》•测试评估–测试计划完成情况;–测试质量评估;–测试管理评估。366.测试人员的要求•技术素质•非技术素质37技术素质•测试技术•项目开发技术•行业知识•软件工程能力–需求分析、概要设计……38非技术素质•沟通能力•自信心•幽默感•超强的记忆力•足够的耐心•怀疑精神•自我监督•洞察力39软件测试人员能力结构产品分类教育行业(电子教室,数字校园)企业方案与办公信息化(CRM/ERP/PRC)随机软件(幸福之家,满意办公,)硬盘安全(拯救者),嵌入式(LEOS,NC),服务器监控管理,关联应用测试能力测试执行测试设计项目测试管理(计划,组织,控制,协调)测试技术黑盒测试(边界值、等价类划分、因果图)白盒测试(路径分析、条件分析)单元测试确认测试集成测试系统测试…测试工具单元测试工具压力测试工具回归测试工具…测试辅助工具(系统监测工具、系统比较工具,)…编程工具ASP、COM、VBJava、j2EEVCDELPHI汇编操作系统等桌面操作系统网络操作系统(NT2000)嵌入式操作系统(LINUX)数据库驱动BIOS协议标准行业知识教育行业财务、物流、证券、电信、公安、税务等硬件知识主板、硬盘显卡、MODEM、电视卡,网卡、多媒体卡、声卡笔记本服务器软件工程CMM需求(UML)、系统设计、概要设计,同行评审,配置管理质量管理40测试人员的发展之路•测试执行(敏锐,逆向思维,洞察力)•测试设计(周密,细致,专业知识)•测试管理-计划/组织/控制/实施/改进(全局观念,沟通,协调,影响力)41网上资源•(测试中心技术构架)•(软件事业部信息网)•(软件信息中心)•(软件技术共享网)•Vss或PVCS(项目过程文档的存放地)•BUG信息管理系统42参考资料•《软件工程-实践者的研究方法》(美ROGERSPRESSMAN著)•《面向对象系统的测试》(美ROBERTVBINDER著)•《软件测试技术》(郑人杰著)•《软件测试》(美RONPATTON著)43回顾与讨论•AnyQuestion?44谢谢大家