1.1软件工程要点
(1)软件定义:程序+数据结构+文档
(2)软件定义:程序+数据结构+文档
(3)软件危机:落后的软件生产方式方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
(4)软件工程:方法+工具+过程
(5)软件生命周期模型:瀑布模型、V模型、迭代模型等
瀑布模型生命周期
(6)软件开发主流技术:C/S,B/S
1.2软件测试基础
(1)软件测试原则:
a显示缺陷的存在;
b穷尽测试是不可能的;
c测试尽早介入;
d缺陷集群性;
e杀虫剂悖论;
f测试活动依赖于测试背景;
g不存在缺陷(就是有用系统)的谬论。
(2)软件测试的定义:是对软件需求分析、设计、编码的最终复查的一系列过程,是软件质量保证的关键步骤。
(3)软件测试的目标:系统的找出软件中潜在的各种错误和缺陷,并能够证明软件的功能和性能与需求说明相符合。
(4)软件测试的流程:a测试计划和控制;b测试需求分析和用例设计;c实现和执行测试用例;d、评估出口准则和报告;e、测试活动结束。
(5)软件测试心理学:开发人员是构造思维,测试人员是破坏性思维。
1.3基于生命周期的软件测试
(1)生命周期测试概念:a定义了软件测试的流程和方法;b指导测试项目所要求的进度、成本和质量;c开展测试任务必须覆盖整个软件测试生命周期的一组有序的软件测试活动。
(2)软件测试过程:需求分析->测试计划->用例设计->执行用例->缺陷追踪->测试报告评估。
(3)生命周期各阶段的测试内容:
a需求分析阶段:重点是确认定义的需求符合机构的要求;
b设计和编码阶段:验证设计的程序实现了需求;
c测试和安装阶段:检查实现的系统符合系统规格说明;
d维护阶段:重新测试已决定改变的部分和未改变的部分能继续工作。
(4)全生命周期软件测试的最终要求:
a保证软件系统在全生命周期中每个阶段的正确性,验证整个软件开发周期中各个阶段的软件质量是否合格;
b保证最终系统符合用户的要求和需求,验证最终交付给用户的系统是否满足用户需要、符合其要求;
c用样本测试数据检查系统的行为特征;
d把尽可能多的问题在产品交给用户之前发现并改正。
1.4软件测试分类与分级
(1)软件测试分类:
A 是否关心内部结构:白盒测试、黑盒测试、灰盒测试;
B 开发过程和级别:单元测试、集成测试、系统测试、验收测试;
C 是否执行程序:静态测试、动态测试;
D 执行过程是否需要人工干预:手工测试、自动化测试;
E 测试实施组织:开发测试、用户测试、第三方测试;
F CSCI:功能测试、性能测试、安全测试、配置测试。
(2)软件测试分级:严重缺陷、较严重的缺陷、一般性缺陷、较小缺陷、其他缺陷。
1.5软件缺陷管理
(1)一般符合下列5个规则之一,就是软件缺陷
软件未实现产品说明书要求的功能
软件出现了产品说明书指明不应该出现的错误
软件实现了产品说明书未提到的功能
软件未实现产品说明书虽未明确提及但应该实现的目标
软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好
(2)软件缺陷来源:
需求分析是造成软件缺陷出现的最大来源;
设计是缺陷产生的一个主要来源;
软件缺陷在编码阶段出现是另一个主要来源。