软件测试基础总结
软件测试概述
软件的概念
软件是计算机系统中与硬件相互依存的另一部分,它包括了程序、文档、数据的完整集合。
软件的分类
按照软件功能分类:
系统软件:WIN7 IOS 安卓。
支持软件:VB VC 等开发工具。
应用软件:office,Photoshop,机票查询等
按照技术特点分类:
业务管理软件:MIS ERP DSS CRM
科学计算软件:Scilab 辅助计算。
嵌入式软件:WindowsCe VxWorks
桌面软件:QQ 输入法
个人计算机软件:文字处理,电子报表,娱乐
人工智能软件:专家系统,辅助决策和识别模式。
按照部署结构分类:
单机版软件、分布式软件(CS/BS)
软件测试的定义
使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果的差别。
软件测试的目的
软件测试是程序的执行过程,目的在于发现错误。
测试是为了证明程序有错误,而不是证明程序无错误
一个成功的测试用例在于发现至今未发现的错误。
一个成功的测试是为了发现至今未发现的错误测试。
通过分析错误,发现当前所采用的软件过程缺陷,改进软件过程。
通过被测试软件业务的深入了解,对新产品的改进提出有意义的建议。
验证产品符合质量标准。
软件测试工程师必备的基本素质
正确高效的沟通能力
超强责任心
坚持原则
懂得尊重开发人员,不要背后评论
有较全面的技术知识
软件测试工程师必备技能
测试专业技能
软件编程技能
网络、操作系统、中间件等知识
软件缺陷的概念
在软件工程整个生命周期中任何背离需求、无法正确完成用户所需求的功能的问题,包括存在于组件、
设备或系统软件中,因异常条件不支持而导致系统的失败等都属于缺陷。
缺陷产生的原因
掌握避免提交无效缺陷的的技巧
测试环境错误。测试过程中,测试工程师不仔细检查测试环境,直接当成一个缺陷提交了。
发现一个错误不要马上想着提交,而应该分析一下是否测试机器的配置环境是否有问题。
需求文档没有明确产品需求:需求不明确时,提交缺陷应做充分分析。
需求理解错误:扩充自己的知识面,寻找正确的测试方法。
缺陷重复。同一个缺陷A测试工程师提交后,B测试工程师又提交。
掌握重现缺陷的方法
检查系统日志(log),看有没有异常。
检查数据库配置、网络、硬件配置是否与开发环境有差异。
状态缺陷是否仅在特定软件状态中显露。
检查被测对象版本信息状态缺陷是否只在特定的软件状态显露。
借助其他工具,如Debug或者fiddler工具去分析。
软件测试环境异于开发环境。
完整的缺陷报告
简单描述
用一句话简单地描述清楚问题。
详细描述
描述问题的基本环境,包括操作系统,硬件环境,网络环境。
使用最少步骤去重现测试工程师的操作步骤和使用的数据。
测试工程师根据上述信息可以给出对问题的简单分析。
被测试软件版本。
状态、严重级别、优先级别。
提交日期、提交人。
相关附件
如果从图形界面上反映出软件的异常,最好采用拷屏的方式截图。
被测试软件运行时的相关日志文件。
缺陷报告准则
方便阅读
统一缺陷严重程度
一个缺陷一个报告
报告小缺陷
及时报告缺陷
引用他人报告时要小心
缺陷报告的用途
记录缺陷、缺陷分类、缺陷跟踪、缺陷统计。
缺陷报告分类
按缺陷所属模块分类。
按缺陷严重程度分类。
按优先级分类。
按缺陷引入原因分类。
按缺陷复现率分类。
缺陷处理流程
正常的处理流程:
测试人员提交缺陷报告-->分配给相应的开发人员-->开发人员处理了缺陷-->测试人员验证缺陷已经修改-->测试人员关闭缺陷。
其他流程
软件开发和测试流程
软件开发模型
瀑布模型、原型模型、螺旋模型、敏捷开发模型。
瀑布模型生命周期:计划、需求分析、设计、编码、测试、运行维护。
软件测试的生命周期:软件测试计划、测试用例设计和开发,实施测试和提交缺陷、提交测试总结报告。
常用的开发模型:V模型、W模型、H模型、X模型。
软件测试分类
按测试阶段分:单元测试、集成测试、冒烟测试、系统测试、Alpha测试、Beta测试、验收测试
按技术分:白盒测试、黑盒测试、灰盒测试、静态测试、动态测试。
按测试实施组织分:开发商测试、外包测试。
外包测试又分为:现场测试、完全离岸外包、设立联合研发中心
软件测试的生命周期
软件测试流程图
WEB系统测试类型
功能测试、性能测试、安全性测试、兼容性测试、易用性测试、配置测试、文档测试、压力测试、负载测试。
编写测试计划和测试方案
项目管理
项目管理通常是指在项目活动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人的需要和期望。
项目管理包括:范围管理、人力资源管理、时间管理、风险管理、质量管理、沟通管理、采购管理、成本管理。
软件测试计划包括的内容
简介、测试参考文档和测试提交文档、测试进度、测试资源、测试策略、问题严重程度及优先级描述、测试风险
软件测试计划原则
避免测试项目只有一个软件测试计划
避免不分析就进行软件阶段日常安排
避免测试任务的安排超前于开发任务
避免有些系统测试类型无法按期进入测试
不正确的变更测试计划
测试计划中明确更新周期和暂停测试原则
测试计划不是一成不变的
测试风险分析
软件需求风险
人员风险
测试环境风险
测试工程师对产品业务不熟悉
软件测试原则
尽早地进行软件测试,并把软件测试贯穿于整个软件生命周期
所有测试的标准都是建立在用户需求之上
测试应由第三方来测试
穷举测试是不可能的,要遵循Good-enough原则
软件测试计划是做好软件测试工作的前提
必须确定预期输出结果
充分注意测试中的群集现象
测试用例是设计出来的,不是写出来的
事先定义好产品的质量标准
软件测试的二八定理
正确认识软件测试
软件的质量不是测出来的
软件测试不一定比开发软件容易
软件测试需要开发人员和测试人员共同努力
关于处理缺陷
关注开发修复缺陷时写的回归测试范围
修改缺陷要量力而行
关注被推迟修改的缺陷
如果决定据理力争就一定要赢
定期进行缺陷交流
软件测试结束标准
模块测试用例执行完毕
缺陷收敛趋势符合质量要求
缺陷修复率达到产品设计人员需求
测试覆盖了全部软件需求
按照客户交付时间结束
达到预先的缺陷度量原则基于“质量/成本/进度”的原则
值得借鉴的经验
测试人员关注失效,才能保证产品质量
测试必须依据需求
重视界面测试
不能进行“疲劳”测试
软件测试总结报告包括哪些内容
概述
测试情况
测试环境
测试结果及缺陷分析
测试遗留问题报告
测试评价