《软件测试面试必备——软件测试技术及策略.doc》由会员分享,可在线阅读,更多相关《软件测试面试必备——软件测试技术及策略.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件测试面试必备软件测试技术及策略软件测试的流程软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。最后淘汰。测试计划的前期是否需要需求调研?需要测试具体分几个阶段,每个阶段执行的依据是什么?计划测试:需要制定测试计划 整理测试需求设计测试:要设计测试用例和测试过程;要保证测试用例完全覆盖测试需求;要根据测试用例实现具体的自动化脚本或者手工的操作步骤执行测试:通过自动化测试工具或人手工来执行那些自动化脚本或手工的操作步骤 评估:要对软件的质量和测试工作自身的质量做出一个客观的评价开发生命周期中的验证活动:需求;设计;编码;测试;安装;维护
2、单元测试:Unit testing目标:检验程序最小单元有无错误(类,文件,窗口,函数,菜单,报表或一个存储过程)接口,数据结构,边界,覆盖,逻辑进入条件:代码无错误地通过编译或汇编方法:白盒测试测试执行人:开发工程师测试内容: 模块接口:对被测模块,信息是否能正确地流入和流出 局部数据结构:模块的工作过程中,其内部的数据能否保持其完整性 边界条件:在边界上模块是否能正常工作 覆盖条件:模块运行是否达到了规定的逻辑覆盖 出错处理:检查模块的错误处理设施是否有效具体要求: 在进行单元测试之前,由项目负责人决定是否进行静态分析 单元测试的主要形式是结构测试 单元测试的测试计划应该根据被测单元的性质
3、而制定 语句覆盖率达到100% 分支覆盖率达到85% 单元测试有开发部负责开展 集成测试:intergration testing目标:检验组成系统的模块接口有无错误;代码实现的系统设计与需求定义是否吻合 进入条件:主要的单元测试完成后,经常与单元测试同步进行方法:黑盒测试,白盒测试测试执行人:开发工程师、测试工程师系统测试:system testing 目标: 检验组成整个系统的代码,以及系统的软硬件配合有无错误 代码实现的系统与用户需求是否吻合 检验系统的文档等各种是否完整、有效 模拟验收测试的要球,检查系统是否符合用户的验收标准进入条件:多数集成测试完成后方法:黑盒测试测试执行人:测试工
4、程师验收测试: acceptance testing目标: 使客户验收签字 系统是否符合实现约定的验收标准 进入条件:系统测试完成后,在项目组看来开发和测试工作已经全部完成,可以交付使用 方法:黑盒测试测试 是由用户在开发环境下进行的测试,也可以使开发机构内部的用户在模拟实际操作环境下进行的测试 目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持) 可以在软件编码结束时开始,或在模块(子系统)测试完成后开始,也可在确认测试过程中软件达到一定的稳定和可靠程度之后再开始 需要开发人员参与测试 是由用户在实际使用环境下进行的测试,这些用户通常是与公司签订一定合同的外部用户,
5、用户在使用该产品是愿意返回有关错误信息给开发者。 开发人员不在测试现场 主要衡量产品的FLURPS,着重于产品的支持性,包括文档,客户培训和支持产品生产能力 只有当测试达到一定可靠程度时,才能开始测试 通常由主持产品发行的人员来管理测试过程的总结 测试类型 对象 目的 测试依据 测试方法单元测试 模块内部的 消除局部模块的 模块逻辑设计 大量采用程序错误 逻辑和功能的错误 模块外部说明 白盒测试集成测试 模块间的集 找出与软件设计相 程序结构设计 成和调用关系 关的程序结构,模 黑白结合 块调用关系,接口问题系统测试 整个系统包括 对整个系统进行一 系统结构设计系统中的软硬件 系列的整体、有效
6、 目标说明书 黑盒测试 性测试 需求说明书软件测试的分类 按测试阶段分类单元,集成,系统,验收 按测试策略分类 黑白盒(要不要看代码),动态静态(是否运行代码、软件),手工自动 按测试技术方法分类功能测试,性能测试(包含压力测试),压力测试,易用性测试,安装测试,容错性测试,兼容性测试,安全性测试常用的测试技术功能测试 使用测试应用系统的功能需求的黑盒测试方法 应由测试员做,这并不意味着程序员在发布前不必检查他们的代码能否工作 运行系统,查看其功能是否正常实现,是否满足需求,对于需求没有涵盖,但功能实现上部合理的地方与项目经理沟通,进行系统完善。性能测试压力测试负载测试易用性测试安装测试 安装
7、测试需要测试些什么? 安装测试;运行测试;卸载测试界面测试配置测试文档测试哪些文档需要测试? 联机帮助;用户手册;readme文件;包装文字和图形;市场宣传材料;授权/注册登记表/用户许可协议;标签;指南、向导兼容性测试测试平台兼容 操作系统;应用程序数据共享兼容 版本兼容(向前、向后兼容) 数据格式兼容 剪贴板标准和规范安全性测试恢复测试测试技术小结 测试用例设计的目的是导出可能发现错误的测试集 测试用例设计的技术主要是白盒和黑盒 白盒测试注重程序的结构,是小规模的低层测试 黑盒测试注重需求的实现,是大规模的高层测试 还有大量的特定软件系统的测试方法,需要专门的测试技术和指南 测试永无止境,
8、设计测试用例最终目的是为了尽量多的发现问题,在产品发布前解决。软件测试策略 我们无法为软件做穷举测试,存在着组合爆炸的情况 软件测试中的“杀虫剂”现象 我们无法修复所有发现的错误黑盒测试:又称功能测试,数据驱动测试或给予规格说明书的测试是对需求的所有输入条件进行测试黑盒测试发现的错误类型 功能不对或遗漏 界面错误数据结构或外部数据库访问错误性能错误初始化和终止错误关注点 功能 数值 界面 性能 其他白盒测试: 又称结构测试,逻辑驱动测试或给予程序的测试白盒测试发现的错误类型语法错误编译错误Memory leakPerformance problem逻辑问题判定条件问题编程规范测试技术基本路径控
9、制结构基本路径测试 根据源代码导出流图 分析程序逻辑复杂度 导出测试case优缺点比较黑盒测试 白盒测试测试依据 用户能看到的规格说明针对功能进行测试 |程序的内部结构优点 能站在用户立场上进行测试 |能够对程序内部的特定部位进行覆盖测试缺点 不能测试程序内部特定部位 |无法检验程序的外特性 如果规格说明有误则无法发现 |无法对为实现规格说明的程序内部欠缺部分进行测试静态测试与动态测试 静态测试:不实际运行被测试的程序而是同国检查和阅读等手段来发现错误并评估代码质量的软件测试技术 测试对象:软件文档(用户类、开发类);源代码 分类: 代码走查walkthrough:开发组内部进行的,采用讲解、
10、讨论和模拟运行的方式进行的查找错误的活动代码审查inspection:开发组内部进行的,采用讲解,提问并使用checklist方式进行的查找错误的活动,一般有正式的计划、流程和结果报告技术评审review:开发组、测试组、相关人员联合进行的,采用讲解,提问并使用checklist方式进行的查找错误的活动,一般有正式的计划、流程和结果报告。为了使工作效率提高,提出了测试驱动开发敏捷编程动态测试:实际运行程序并通过观察程序运行的实际结果来发现错误的软件测试技术手工测试与自动测试 手工测试:测试人员手动执行软件进行测试 自动测试:利用测试工具和测试脚本来进行测试自动化测试与手工测试的关系自动化测试是
11、对手工测试的一种补充自动化测试不可能完全代替手工测试手工测试和自动化测试一个都不能少,关键是在合适的地方使用合适的测试手段自动化测试是软件测试发展的一个趋势自动测试的优势 对程序的回归测试更方便,可以极大提高测试效率,缩短回归测试时间 可以运行更多更繁琐的测试,自动化的一个明显的好处是可以在较少的时间内运行更多的测试 可以执行一些手工测试困难或不可能进行的测试 更好的利用资源,将繁琐的任务自动化 可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例测试具有一致性和可重复性测试的复用性增加软件信任度自动测试的缺陷手工测试比自动测试发现的缺陷更多(85% 15%)工具本身不具有想象力不能处理意外事件(如网络中断)前期的购置工具、培训成本高不能取代手工测试测试自动化不能提高有效性测试自动化可能会制约软件开发,由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发。软件测试的分类总结 测试策略 黑盒/白盒 动态/静态 手工/自动 冒烟/回归 测试方法 功能测试 界面测试 版本测试 性能测试 压力测试 稳定性测试 容错性测试 随机测试 安装测试 安全测试 易用性测试 兼容性测试_软件测试面试必备
限制150内