测试基础

测试基础

软件生命周期

  • 计划
  • 需求分析
  • 设计
  • 编码
  • 测试
  • 运行和维护
计划
工作内容:
  • 确定软件开发总目标;
  • 给出软件的功能、性能、可靠性以及接口等方面的设想;
  • 研究完成该项目的可行性,探讨问题解决方案;
  • 对可供开发使用的资源、成本、可取得的效益和开发进度作出估计;
  • 制定完成开发任务的实施计划。
需求分析
工作内容:
  • 对开发的软件进行详细的定义,由需求分析人员和用户共同讨论决定,哪些需求是可以满足的,并且给予确切的描述,写出软件需求说明书SRS (Software Requirement Specification) 或者 产品需求文档PRD (Product Requirement Document)以及原型图。
设计
工作内容:
  • 设计是软件工程的技术核心,这个阶段需要完成设计说明书
  • 概要设计(HLD),在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块;High Level Document
  • 详细设计(LLD),对每个模块要完成的工作进行具体的描述。Low level Document
编码
工作内容:
  • 把软件设计转换成计算机可以接受的程序,即写成以某个程序设计语言表示的源程序清单,使用RDBMS工具建立数据库。
测试
工作内容:
  • 测试是检验软件是否符合客户需求,达到质量要求,一般由独立的小组执行,测试工作分为:
  • 单元测试
  • 集成测试
  • 系统测试
运行和维护
工作内容:
  • 这个阶段将软件交付用户投入正式使用,以后便进入维护阶段,可能有多种原因需要对它进行修改,如软件错误、系统软件升级、增强软件功能、提高性能等。

软件研发相关要素

  • 人员
  • 过程
  • 工具
  • 只有合适的人员借助合适的工具经过合适的过程才能研发出高质量的软件。
  • 工具为人员和过程服务,起辅助作用,起关键作用的是人员和过程。

软件项目组人员组成

项目组一般由项目经理领导并负责制定项目计划,分配任务。
项目组一般有下列人员参与:

  • 项目经理
  • 分析人员
  • 设计人员
  • 开发人员
  • 测试人员
  • 配置管理人员
  • SQA

常见项目组架构

在这里插入图片描述

软件开发生命周期模型

5种常用模式:
  • 大爆炸模式
  • 边写边改模式
  • 瀑布模式
  • 迭代模式
  • 螺旋模式
  • 敏捷开发模式
敏捷软件开发的目的:
  • 每个开发活动都有对应的测试
  • 每个测试级别都有对应的测试目标
  • 每个测试都有测试分析和设计
  • 开发周期中,在文档初期稿阶段就应该参与文档的评审

什么是软件测试?

“软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。”

G.J.Myers认为:
  1. 程序测试是为了发现错误而执行程序的过程;
  2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
  3. 成功的测试是发现了至今为止尚未发现的错误的测试 。
软件测试的含义:
  • 软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一
  • 进行软件测试可以人工方式也可以借助于工具
  • 进行软件测试可以运行软件也可以不运行软件
  • 软件测试的目的不仅仅是为了发现错误
为什么做软件测试:
  • 一个糟糕的测试程序可能导致任务的失败, 影响操作的性能和可靠性,导致维护阶段的成本提高。
  • 一个好的测试程序是项目的主要成本。
  • 一个好的测试程序可以极大地帮助你定义需求和设计。
  • 一个好的测试可以迫使你在工作时必须面对和处理问题,使得修改缺陷成本降低。
  • 一个好的测试不能弥补一个糟糕的软件项目,但是的确有助于发现许多问题,并且至少使得你尽早知道你处在问题当中。
软件缺陷和Bug:
  • 软件缺陷:既指静态存在于软件工作产品(文档、代码)中的错误,也指软件运行时由于这些错误被激发引起的和软件产品预期属性的偏离现象。
  • Bug:代码中的缺陷。有时也被泛指因软件产品内部的缺陷引起的软件产品最终运行时和预期属性的偏离。
  • 软件错误、软件缺陷、Bug在实际工作中可以认为一样。
常见的引入缺陷的原因:
  • 开发过程缺乏有效的沟通,或者没有进行沟通
  • 软件复杂度越来越高
  • 编程中产生错误
  • 需求不断变更
  • 项目进度的压力
  • 不重视开发文档
  • 软件开发工具本身隐藏的问题

缺陷类型:

所有缺陷可以归结为四类:
  • 遗漏:规定的或预期的需求未体现在产品中(可能未将规格说明全面实现,也可能需求分析阶段就遗漏了需求)
  • 错误:未将规格说明正确实现(可能设计错误、也可能编码错误)
  • 额外的实现:规格说明并未规定的需求被纳入产品,得到实现
  • 改进(Enhancement)

软件测试的误区

  • 调试和测试是一样的;
  • 测试组应当为保证质量负责;
  • 过分依赖Beta测试;
  • 把测试作为新员工的一个过渡工作;
  • 把不合格的开发人员安排做测试;
  • 关注于测试的执行而忽略测试的设计;
  • 测试自动化是万能的;
  • 测试是可以穷尽的;
  • 测试是为了证明软件的正确性;
  • 测试是枯燥乏味,缺乏创造力的工作;

软件测试的主要工作

软件测试工程师一般会承担以下一些具体工作:
  • 检视代码、评审开发文档
  • 进行测试设计、写作测试文档(测试计划、测试方案、测试用例等)
  • 执行测试,发现软件缺陷,提交缺陷报告, 并确认缺陷最终得到了修正
  • 通过测试度量软件的质量

软件测试人员的职业发展

三核心要素:管理技能、测试技能、业务技能
六个方向:
  • 管理方向
  • 测试技术方向
  • 业务技术方向
  • 技术支持方向
  • 质量保证方向
  • 其他方向
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值