一、概述
(一)测试的定义
1.IEEE(电子和电气工程师协会,全称Institute of Electrical and Electronics Engineers)的定义
通过人工或者自动化手段来运行或检查某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差距
2.自己理解的定义
(1)软件测试是一个过程;
(2)软件测试可以人工方式也可借助工具;
(3)进行软件测试可以运行软件也可以不运行软件;
(4)软件测试就是证明程序有错,而不是证明程序无错;
(5)软件测试的目的不仅仅是为了发现错误;
(6)以最少的人力、物力、时间找到软件中的缺陷并修改,从而回避商业风险。
(二)测试的目的
1. 根本目的
提高软件的质量,给用户带来更好的体验
2.目的
(1)证明:证明软件在受控条件下可用;
(2)检验:检查产品中的缺陷,检验产品中的质量信息;
(3)预防:通过尽早的测试发现问题,修复问题,避免问题延续到后续阶段扩大化,通过测试发现问题,并找出问题的原因并加以改进,避免同类问题在次发生。
(三)软件中的缺陷(BUG)
1.软件中为什么会引入缺陷(bug)?
(1)开发过程中缺乏有效的沟通;
(2)软件复杂度越来越高;
(3)编程中产生的错误;
(4)需求不断变更;
(5)项目进度压力;
(6)不重视开发文档;
(7)开发工具本身存在问题。
2.软件缺陷类型
未按照软件需求规格说明书(SRS)而出现的以下几种缺陷:
(1)遗漏 (2)错误 (3)冗(rǒng)余 (4)提高/建议
(四)测试工程师的主要工作
- 测试计划、测试方案、需求评审、设计评审
- 编写测试用例、用例评审
- 执行测试
- 测试日报
- 测试报告
(五)软件测试流程
1.需求分析
2.测试需求
3.测试计划
4.测试方案
5.测试用例
6.执行测试
7.测试报告
二、软件的生命周期
一个软件的生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用、8个阶段
(一)制定计划阶段
1. 计划阶段的工作内容
(1)确定软件开发总目标;
(2)给出软件的功能、性能、可靠性以及接口等方面的设想;
(3)研究完成该项目的可行性,探讨问题解决方案(三峡工程);
(4)对可供开发使用的资源、成本、可取得的效益和开发进度做出评估(还包括风险);
(5)指定完成开发任务的实施计划。
2. 举例(以研发计算器为例)
(1)研发一个计算器;
(2)支持加、减、乘、除,所有运算都在一定时间之内完成;
(3)该项目目前不存在任何技术问题;
(4)需要在三个月之内完成所有开发项目和测试工作,并推向市场;
(5)具体计划参见一般项目一级计划。
(二)软件需求分析阶段
1. 需求分析阶段的工作内容
对开发的软件进行详细的定义,由需求分析人员和用户共同讨论决定哪些需求是可以满足的,并且给予确切的描述,写出软件说明书(SRS)。
软件研发的类型(产品/项目)不同,需求的来源也不同、用户也不同。
2. 举例(以分析计算器为例)
(1)功能需求:十进制加、减、乘、除;八进制;二进制;十六进制。
(2)性能需求:十进制加法需在1s内完成;十六进制乘法需在3s内完成。
(三)软件设计阶段
设计是软件工程的技术核心,这个阶段需要完成设计说明书。
1. 分类
概要设计(HLD):英文缩写High Level Design (顶层设计) 在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块。
详细设计(LLD):英文缩写Low Level Design (底层设计) 对每个模块要完成的工作进行具体的描述。
2. 举例(以设计计算器为例)
(1)概要设计
整个软件分成六个模块:界面模块、主控模块、加法模块、减法模块、乘法模块、除法模块等(主控模块调用后四个模块)。
加法模块包含五个主函数:加法主函数、十进制主函数、二进制主函数、八进制加法主函数、十六进制加法主函数(加法主函数调
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/te-jc/8016.html