软件测试设计
软件测试流程
软件测试计划
为什么要编写测试计划?
- 领导能够根据测试计划做宏观调控,进行相应资源配置等
- 测试人员能够了解整个项目测试情况,以及项目测试不同阶段所要进行的工作等
- 便于其他人员了解测试人员的工作内容,进行有关配合工作
什么时间开始编写测试计划?
- 测试需求分析前总体测试计划,测试需求分析后详细编写测试计划
测试计划编写六大要素?
- Why -为什么要进行这些测试
- What -测试哪些方面,不同阶段的工作内容
- When -测试不同阶段的起始时间
- Where-相应的文档、缺陷的存放位置、测试环境等
- Who- 项目相关人员组成,安排哪些测试人员测试
- How-如何去做,使用哪些测试工具以及测试方法进行测试
软件测试报告
什么是测试报告?
- 测试报告是测试阶段最后的文档产出物
- 测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进 行分析,为纠正软件中存在的质量问题提供依据,同时为软件验收和 交付打下基础
测试报告的元素?
- 引言(目的,背景,缩略语,参考文献);
- 测试概要(测试方法、范围、测试环境、工具);
- 测试结果与缺陷分析(功能、性能);
- 测试结论与建议(项目概况、测试时间、测试情况、结论性汇总);
- 附录(缺陷统计);
软件测试管理
配置管理
- 通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范 的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开 发者在软件生命周期中各个阶段都能得到精确的产品配置
- 配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状 态统计等任务的工具,如cvs、vss、Harvest、ClearCase等
禅道的使用
- 需求管理
- 用例管理
- bug管理
测试团队、环境
测试团队
测试团队的责任
- 测试人员的基本责任:
测试团队的责任发现软件程序、系统或产品中所有的问题
尽早地发现问题
督促开发人员尽快地解决程序中的缺陷
- 除此以外,测试团队的责任还包括:
帮助项目管理人员制定合理的开发计划
对问题进行分析、分类总结和跟踪,以便让项目的管理者和相关的负责人能够 对产品当前的质量情况一目了然
帮助改善开发流程,提高产品开发效率
提高程序编写的规范性、易读性、可维护性等
测试团队的地位
- 以开发为核心,测试只是开发队伍的一部分,也就是开发团队中有测试人 员,但没有形成独立的团队
- 以项目经理为核心,开发小组和测试小组并存,隶属于项目经理领导
- 项目经理、开发经理和测试经理“三国鼎立”,测试团队具有独立性、权 威性的地位
测试团队的基本构成
- 一个比较健全的测试部门应该具有以下角色
测试经理:人员招聘、培训、管理、资源调配、测试方法改进等
实验室管理人员:设置、配置和维护实验室的测试环境、主要是服务器和网络 环境等
内审员:审查流程,并提出改进流程的建议;建立测试文档所需的各种模板, 检查软件缺陷描述及其他测试报告的质量等
测试组长:业务专家,负责项目的管理,测试计划的制订、项目文档的审查、 测试用例的设计和审查、任务的安排、和项目经理、开发组长的沟通等
测试设计人员/资深测试工程师:负责产品设计规格说明书的审查、测试用例的 设计、技术难题的解决、新人和一般测试人员的培训和指导、实际测试任务的 执行
一般(初级)测试人员:执行测试用例和相关的测试任务
树立良好的测试团队意识
- 目标意识
目标到人
个人目标和团队目标相结合
责任心
自信心
- 团队意识
集体成功观
水桶原理衡量团队战斗力
良好的沟通
- 服务意识
面向客户的服务
面向团队内部的服务
- 竞争意识
责权利均衡
所有的角色都一样重要
- 危机意识
测试团队的激励机制
- 表扬和奖励
最有价值bug、测试用例,优秀测试计划,优秀员工等
站在测试小组一边
提高士气(薪水,职务,工作时间,培训机会等)
支持合理的工作方式{白天创建脚本,晚上自动运行 / 将测试工作进行分解、细化}
测试环境
测试环境是软件测试的基础,使用错误的测试环境,可能会遇到以下情形:
- 得出完全错误,甚至是相反的结果
- 忽略了实际使用可能会出现的严重错误,将严重的bug遗留到客户的手中
- 导致项目返工,造成巨大的资源浪费
- 导致项目延期,信誉的损失
稳定和可控的测试环境,可以使测试人员花费较少的时间就完成测试用例 的执行,也无需为测试用例、测试过程的维护花费额外的时间,并且可以保证 每一个被提交的缺陷都可以在任何时候被准确的重现。
各种研发环境
- 开发环境
做编程开发时需要用到的指定软硬件要求,以及对应的系统以 及应用程序工具等,这个整体就是开发环境。
配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。(程序员 接到需求后,开始写代码,开发,运行程序,看看程序有没有达到预期的功能)
- 测试环境
是指为了完成软件测试工作所必需的 计算机硬件、软件、网络设备、历史数据、测试工具的总称。
- 生产环境
即线上环境,正式提供对外服务的、用户使用的环境。由特定 人员来维护,一般人没有权限去修改。
- 预发布环境
测试环境到生产环境的过渡。测试环境可能会受到一些限制, 一些流程或者数据没有测试到,就可以在预发布环境进行验证,从而保证产品 上线质量
- 预发布环境和生产环境区别:
预发环境中新功能为最新代码,其他功能代码和生产环境一致。
预发环境和生产环境的访问域名不同。
- 注意事项:
预发布环境一般会连接生产环境的数据库,测试时要注意,以免产生脏数据, 影响生产环境的使用。
- 灰度发布,发生在预发布环境之后,生产环境之前。
- 生产环境一般会部署在多台机器上,以防某台机器出现故障,这样其他机 器可以继续运行,不影响用户使用。
- 灰度发布会发布到其中的几台机器上,验证新功能是否正常。如果失败, 只需回滚这几台机器即可。