01软件研发流程
1.软件产品
软件产品是指向用户提供的计算机软件、信息系统或设备中嵌入的软件或在提供计算机信息系统集成、应用服务等技术服务时提供的计算机软件。
2.软件工程
软件工程,英文名SoftwareEngineering,是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
“软件工程是开发、运行、维护和修复软件的系统方法。”这个定义相当概括,它主要强调软件工程是系统方法而不是某种神秘的个人技巧。
3.软件开发过程
软件产品从最初构思到公开发行的过程,称为软件开发过程。
开发过程有各种不同的方法,没有所谓最好的模式。
最常见的4种:
瀑布模式
螺旋模式
快速原型
4.软件生命周期
5.软件研发流程
6.软件测试流程
需求分析
测试计划
测试方案
测试用例
测试执行
测试报告
7.软件项目成员
- 项目经理
驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队,进行重大决策。
- 架构师 / 系统工程师
技术专家,经验丰富,负责整个系统的体系架构的设计以及关键模块的设计。
- 程序员 / 开发人员
设计、编写软件,并修复软件中的缺陷。
- 测试工程师
负责找出软件产品存在的问题并报告。
- 资料工程师
负责编写软件产品附带的文件和联机帮助文档
- 配置管理员
负责管理程序员写的代码和资料工程师写的文档资料,并组合成一个软件包
- QA
质量监管人员
02软件测试基础
1.软件测试概念以及目的(掌握)
测试的目的不仅仅是为了发现软件缺陷与错误,而且也是对软件质量进行度量和评估,以提高软件的质量。
测试是程序的执行过程,目的在于发现错误;
一个好的测试用例在于能发现至今未发现的错误;
一个成功的测试是发现了至今未发现的错误的测试。
2.软件测试质量(了解)
软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”
明确的需求指:软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准;隐含的需求指:所有专业开发的软件都应具有的隐含特征的程度。
3.软件测试原则(掌握)
基于测试是为了寻找软件的错误与缺陷,评估与提高软件质量,因此我们提出了这样的一组测试原则,如下所示。
1) 所有的软件测试都应追溯到用户需求。
2) 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
3) 完全测试是不可能的,测试需要终止。
4) 测试无法显示软件潜在的缺陷。
5) 充分注意测试中的群集现象。
6) 程序员应避免检查自己的程序。
7) 尽量避免测试的随意性
4.软件测试对象(掌握)
1) 根据软件的定义,软件包括程序、数据、文档,所以软件测试并不仅仅是程序测试。软件测试贯穿于整个软件生命周期中。
2) 由于在整个软件生命周期中,各阶段有不同的测试对象,形成了不同开发阶段的不同类型的测试。需求分析、概要设计、详细设计以及程序编码等各阶段产生的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应作为“软件测试”的对象。
5.软件测试分类(掌握)
1) 按照开发阶段划分软件测试:单元测试、集成测试、系统测试、验收测试
2) 按照测试实施组织划分软件测试:开发方测试、用户测试(Beta测试)、第三方测试
3) 按照测试技术划分:白盒测试、黑盒测试、灰盒测试。
软件测试方法和技术的分类与软件开发过程相关联,它贯穿了整个软件生命周期。
6.软件测试风险(掌握)
软件测试中的软件风险分析是根据预测软件将出现的风险,制定软件测试计划并排列优先等级,风险分析是对软件中潜在的问题进行识别、估计和评价的过程。
风险也包括进度风险、质量风险、人员风险、变更风险、成本风险等
7.软件测试工程师(了解)
具备的技能:
1) 计算机相关知识,能够熟练使用常用的管理工具
2) 开发语言:C,Java,JavaScript,VBScript,Shell。
3) 数据库:SQLServer, Oracle,MySQL等数据库知识
4) 操作系统,如Windows 2003以及2008,UNIX,Linux,MAC,Solaris等
5) 网络基本知识,能够独立完成测试环境的搭建。
6) 软件基础知识:软件工程,软件生命周期,测试理论和测试方式有较深的理解。
7) 软件测试技术,方法,流程,测试文档编写,能独立设计和执行测试用例,提交完整的缺陷报告单,