1、单行函数 ................................................................................................................... 49 2、字符函数 ................................................................................................................... 49 3、数字函数 ................................................................................................................... 50 4、转换函数 ................................................................................................................... 50 5、日期函数 ................................................................................................................... 50 6、to_char函数处理日期 ............................................................................................. 50 7、to_char函数处理数字 ............................................................................................. 51 8、to_number函数 ....................................................................................................... 51 9、to_date函数 ............................................................................................................. 51 10、NVL函数 ................................................................................................................. 51 11、NVL2函数 ............................................................................................................... 51 12、deocde函数 ............................................................................................................ 51 13、嵌套函数 ................................................................................................................. 52 五、从多个表显示数据 ......................................................................................................... 52 六、使用组函数 ..................................................................................................................... 52
1、group by子句 ........................................................................................................... 52 2、having子句 ............................................................................................................... 53 七、子查询 ............................................................................................................................. 53
1、子查询 ....................................................................................................................... 53 2、单行子查询 ............................................................................................................... 53 3、多行子查询 ............................................................................................................... 53 八、数据库相关名词 ............................................................................................................. 54
1、主键 ........................................................................................................................... 54 2、外键 ........................................................................................................................... 54 3、索引 ........................................................................................................................... 54 4、char和varchar2的区别........................................................................................... 55 5、分区表 ....................................................................................................................... 55 6、数据库事务 ............................................................................................................... 55 7、Commit和Rollback .................................................................................................. 55 8、常见关系数据库 ....................................................................................................... 56 9、常见数据库操作 ....................................................................................................... 56
第一章 测试基础和缺陷管理
1、软件测试的定义和目的
定义:使用人工和自动化手段来运行或测试某个系统的过程
目的:检验它是否满足规定的需求或弄清预期结果与实际结果之间的区别 认识过程:证明(60年代)——检测(70年代中期)——预防(90年代)
2、软件测试观念的转变
类型 介入阶段 范围 目的 传统测试 开发后期 基于代码 发现错误 现在测试 整个生命周期 静态范畴 错误预防
3、测试的主要工作
1. 2. 3. 4. 5. 6. 7.
评审SRS
制定计划和方案 编写及评审用例
搭建测试环境,准备数据
执行测试,发现缺陷,提交缺陷报告,回测记录的缺陷 分析测试结果,编写测试报告,度量软件质量 ……
4、测试用例
指对一项特定的软件产品测试任务的描述,体现测试方案、方法、技术和策略。
5、软件发展历史
程序设计阶段(50~60年代中期)、程序系统阶段(60年代中期~70年代中期)、软件工程阶段(70年代中期之后)
6、软件危机
主要表现:
1. 缺乏大型软件开发经验和软件开发数据积累,开发工作计划很难制定 2. 开发早期需求分析不明确,后期矛盾集中暴露
3. 不遵循开发规范,开发文档不完整,软件难以维护 4. 缺乏软件质量检查手段 根源:
1. 硬件发展越快,软件系统的期望越高 2. 软件系统的复杂性提高,需多人合作
3. 软件开发无法用已有的产业工程方法来管理 解决方法:A.软件工程 B.研究新的软件设计技术
7、软件生命周期
计划、需求分析、设计、编码、测试、运行和维护
8、软件研发三要素
人员、过程、工具
9、软件项目组人员
分析人员、设计人员、开发人员、测试人员、配置管理人员(CMO)、软件质量保证(SQA)
QA:检验产品的质量,保证产品符合客户的需求;是产品质量检查者 QC:审计过程的质量,保证过程被正确执行;是过程质量审计者
10、基本软件研发流程
RUP流程 所有工作流在各个阶段都有体现 IPD流程 从整个产品角度出发,不仅仅针对研发 瀑布模型 螺旋模型 综合了基本的瀑布式模型和演化/渐增原型方法 充分考虑风险,抗风险能力强 概应用最广泛、缺述 陷也显而易见 优点 简单高效 1.针对大型复杂的系统,进行逐步完善,降低了实施复杂度 2.用户可在早期提出变更并进行修复,从而有效控制变更风险及代价 3.可在早期增强用户的信心 1.要有专业的架构师 2.已确定的功能不能变更 大型复杂的项目,耦合度较低的系统,当功能与功能之1.将软硬件研发及生产、销售等各个部门有效整合,集中在一个平台下统一管理,提高了决策的准确性及时效性 2.有利于各部门关键数据的共享 1.管理成本高 2.部门之间的协调关系较复杂 大型软硬件集成厂商 缺测试介入晚,人点 员闲置严重,后续工作跟不上 适不适合需求频用 繁变更的项目、成本高,需专业的风险分析专家参与 与生命财产相关的系统 大项目,适合小规模传统项目 RUP流程:
IPD流程:集成产品开发流程
间联系太紧密就不适用 11、主要软件研发过程
需求管理、配置管理、缺陷管理、同行评审
12、软件缺陷
定义:是对软件产品预期属性的偏离现象
BUG: 缺陷的一种表现形式
其他相关术语:
错误:编写错误的代码,导致软件包含故障的人的行为,包含逻辑错误和语法错误 缺陷:静态存在于软件工作产品(代码、文档)中的错误 故障:软件运行中出现的状态,可引起意外情况
失效:软件运行时产生的外部异常行为结果,表现与用户需求不一致,功能能力终止,用户无法完成所需要的应用。
13、引入缺陷的原因
1. 2. 3. 4. 5. 6. ……
开发过程缺乏有效沟通,或没有进行沟通 软件复杂度越来越高 编程中产生错误 需求不断变更 不重视开发文档
软件开发工具本身隐藏的问题
14、缺陷
缺陷的分布:需求:56% 设计 27% 代码 7% 其它 10%
导致软件缺陷的最大原因:软件产品说明书 软件缺陷产生的第二大来源:设计方案 缺陷类型:遗漏、错误、额外实现
缺陷管理的目的:
a) 保证信息的一致性
b) 保证缺陷得到有效的跟踪,解决
c) 获取正确的Bug信息,用作缺陷分析和产品度量
缺陷管理支撑工具:QC、
缺陷的相关属性:发现人、发现时间、状态、严重程度、所属版本、修改日期 缺陷的严重程度:致命、严重、一般、提示
缺陷跟踪单的写作准则(5C):准确、清晰、简洁、完整、一致
第二章 软件质量
1、质量
质量定义:实体基于这些特性满足需求的程度 影响质量的因素:流程,技术,组织 软件质量的三个层次: A.符合需求规格 B.符合用户显示需求 C.符合用户实际需求
2、软件质量管理体系(质量常见模式)
ISO9000:适用于各行各业
CMMI:只适用软件
6SIGMA:软件和非软件制造业 6sigma和ISO9000关系:
6sigma提供了一个ISO9000之后企业进一步改善的方向、步骤和系统的方法,它既能够促进企业改革又能保证在企业各个层面上的持续改善。
3、八项质量管理原则
1.以客户为中心 2.领导作用 3.全员参与 4.过程方法
5.管理的系统方法 6.持续改进
7.基于事实的决策方法 8.互利的供方关系
4、八项质量管理原则的意义
1. 2. 3. 4.
是质量管理的理论基础
用于高度概括易于理解的语言所表述的质量管理 为组织建立质量管理体系提供了理论依据
是组织的领导者有效的实施质量管理工作必须遵守的原则