软件测试的基础------总结

一个软件的生命周期各个阶段:

  • 项目启动

主要任务是:申请项目立项、审核项目立项、召开项目立项会议

  • 项目策划:

主要任务是:制定项目策划方案、评审项目策划方案、修改项目策划方案

  • 需求开发与管理

主要任务是:编写用户需求说明书、评审用户需求说明、修改用户需求说明书;编写软件需求说明书、评审软件需求说明、修改软件需求说明书、填写需求跟踪矩阵。

  • 系统设计

主要任务是:设计软件系统的模块层次结构、设计数据库的结构、以及设计模块的控制流程,其目的是明确软件系统‘如何做’。这个阶段分为2个步骤:概要设计和详细设计。概要设计:解决软件系统的模块划分和模块的层次结构以及数据库设计。详细设计:解决每个模块的控制流程、内部算法和数据结构的设计。这个阶段结束,要交付概要设计说明书和设计说明书,也可以合并在一起,称为设计说明书。另外,还要评审概要设计和详细设计、修改概要设计和详细设计。

  • 编码阶段

主要任务是:根据需求及系统设计、软件开发工程师开始使用某种开发语言设计、编写代码、通过对代码的设计、编写、调试、最后形成一个软件产品。

  • 测试阶段

主要任务是:编写、评审、修改单元测试计划;编写、评审、修改单元测试用例;执行单元测试;编写、评审、修改单元测试报告;编写、评审、修改集成测试计划;编写、评审、修改基础测试用例;执行集成测试;编写、评审、修改集成测试报告;编写、评审、修改系统测试计划;编写、评审、修改系统测试用例;执行系统测试;编写、评审、修改系统测试报告。

  • 部署上线

主要任务是:给用户部署计算机软件的环境,并且为用户提供使用培训,接受用户的培训反馈,修改、完善计算机软件。

  • 项目结项

主要任务是:编写项目结项报告、召开项目结项会议,总结项目过程中的经验教训,并且预估项目的后续工作。

软件测试分为正确性测试和错误性测试

正确性测试:通过设计的数据来验证软件是否符合用户要求和测试规范。也就是证明软件是否符合用户的需求,软件是正确的。

错误性测试:通过设计数据,故意促使错误的发生,也就是事情在不该出现的时候出现或在应该出现的时候没有出现,或者证明软件实现了用户没有要求的事情。从本质上说,就是挖掘软件中的毛病。

软件测试分为黑盒测试和白盒测试

黑盒测试:独立于程序代码,从用户的角度通过一定的测试步骤与测试案例,验证软件功能、性能等指标是否满足实际应用需求。

白盒测试:针对程序代码进行正确性检验的测试工作。

软件测试分为静态测试和动态测试

静态测试:不需要运行程序代码而进行的测试。例如测试产品说明书,对此进行检查和审阅。静态方法不运行被测程序本身,仅通过分析或检查源程序的方法、结构、过程、接口等来检查程序的正确性。通过程序静态特性的分析,找出欠缺和可疑之处。

动态测试:通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。由编写测试用例、执行程序、分析程序的输出结果。(执行程序、验证软件的正确性也属于动态测试)

从项目整理来说,软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。

一般来说软件测试由独立产品测试部门负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范、实施测试,对测试记录进行分析,并根据回归测试情况编写测试报告。测试是为了证明程序有错,但不能保证程序没有错误。

在软件开发过程中存在的缺陷类型:

  • 需求描述存在错误、有歧义、描述不清楚,这样的需求是不正确的,是不能作为产品生产依据的。
  • 需求描述不完整、混乱且不易于修改维护,这样的需求是不正确的,是不能作为产品生产依据的。
  • 研发过程中的计划要明确研发过程的目的、接口、环境、配置、流程、进度、人力资源、沟通计划、风险计划、质量计划、测试计划、以及出口产品等信息,如果信息不完全,那么这个计划就是不全面的。
  • 研发过程设计问题,主要是设计与需求不一致,设计没有全面覆盖需求、设计架构不合理,设计中存在错误、设计可靠性、稳定性不强等。

你可能感兴趣的:(理论基础)