一、软件测试的定义和目的
1、定义:使用人工和自动化的手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求,或是弄清预期结果与实际结果之间的差别。
软件测试的含义:
软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一;
进行软件测试可以人工方式也可以借助于工具;
进行软件测试可以运行软件也可以不运行软件;
软件测试的目的不仅仅是了为发现错误。
2、软件测试的目的
1)证明软件能正常运行;
2)发现缺陷、错误和系统不足;
3)提供组件、工作产品和系统的质量信息来进行质量管理。
3、软件测试工程师的主要工作
1)检视代码,评审开发文档;
2)进行测试设计、写作测试文档(包括测试计划、测试方案、测试用例等);
3)执行测试、发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正;
4)通过测试度量软件的质量。
二、软件的生命周期
一般分为七个阶段:计划、需求分析、设计、编码、测试、运行、评价
需求分析阶段:写出软件需求说明书SRS(Software Requirement Specification)
设计阶段:需要完成设计说明书,包括概要设计HLD(High Level Design)、详细设计LLD(Low Level Design)
测试阶段:分为单元测试(UT)、集成测试(IT)、系统测试(ST)。
三、软件研发组织和流程
1、软件项目组常见人员架构
项目经理
QA质量保障人员:过程质量管理
软件开发组:开发经理、分析人员、设计人员、开发人员
软件测试组:测试经理、测试人员
配置管理组:配置经理、配置管理员(CMO)
(配置项:需求文档、计划文档、设计文档、源代码、可执行程序、测试文档、测试用例等。)
2、常见的软件研发流程:
瀑布模型
螺旋模型
RUP流程:(Rational Unified Process)统一软件开发过程
IPD流程:(Integrated Product Development)集成产品开发
四、软件中引入缺陷的原因
开发过程缺乏有效的沟通,或没有进行沟通;
软件复杂度越来越高;
编程中产生错误;
需求不断变更;
项目进度的压力;
不重视开发文档;
软件开发工具本身隐藏的问题。
缺陷的类型:遗漏、错误、额外的实现、可优化。