测试基础理论
1.软件测试是什么?
在规定条件下对软件系统进行审核、运行、评估,检验软件系统是否满足规定需求或者找出预期结果与实际结果之间的差别。为软件产品的质量和评价提供依据。
2.为什么要进行软件测试?
确保软件完成了它所承诺或公布的功能。
确保软件满足性能和效率的要求。
确保软件是健壮的、适应用户的环境。
3.软件测试怎么测?
通过手工和自动化方式,利用各种测试工具和管理工具等手段、更早、更快、更多的发现缺陷,并确保这些缺陷得以修复。
4.软件测试对象
(1)软件程序
(2)与程序匹配的文档
(3)支撑软件运行的配置数据
5.软件测试的原则
(1)有计划的尽早测试,解决问题的成本越小。
(2)成功的测试在于发现迄今未发现的缺陷。
(3)测试并不能保证软件100%的没有问题。
(4)测试工作的本质都应追溯到用户需求。
(5)测试的规模由小而大,从单元测试到系统测试。
(6)Good-enough原则,穷举测试是不可能实现的。
软件生命周期及常见开发模型
软件生命周期:
软件开发的全周期,是从可行性研究到需求分析、软件设计、编码、测试软件发布维护的全部过程。
瀑布模型
强调产品定义,各步骤是分离的,前一阶段完成后才能开始后一阶段。
缺点: 无法回溯,测试在最后运行,惧怕需求变更。
螺旋模型
螺旋模型的总体思想是一开始不必详细定义所有细节。从小开始,定义重要功能,努力实现这些功能,接受客户反馈,然后进入下一阶段。重复上述过程,直至得到最终产品。
缺点: 需要经常风险分析。
敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。
V模型
V模型是软件开发瀑布模型的变种,把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,从左到右,描述了基本的开发过程和测试行为。