软件的概念
软件是计算机系统中与硬件相互依存的一部分,包括程序、数据以及与其相关文档的完整集合。
软件的生存周期
可行性分析-项目开发计划-需求分析-概要设计-详细设计-编码-测试-运行维护
软件测试定义
使用人工或自动的手段来运行或测试程序的过程,其目的是为了发现程序中存在的错误,或是弄清预期结果与实际结果之间的差异。
百度定义:为了发现程序中的错误而执行程序的过程。
软件测试的目的
为了发现程序存在的代码或业务逻辑错误;
测试为了检验产品是否符合用户的需求;
为了提高用户的体验
软件测试的原则
- 软件测试可以证明缺陷存在,不能证明系统不存在缺陷
- 穷举测试是不可能的
- 尽早的介入测试,在需求设计阶段就应该开始设计
- 缺陷集群性(二八原则)
- 杀虫剂悖论
- 程序员应避免检查自己的程序,由第三方进行测试更客观有效
- 所有测试的标准都是建立在用户需求之上的,测试的目的在于发现系统是否满足规定的需求
- 设计测试用例时应包括合理输入和不合理输入,以及各种边界条件、特殊情况下要制造极端状态和意外状态;
- 注意回归测试的关联系,往往修改一个错误会引起更多错误;
软件测试的过程
计划--> 设计-->执行-->评估-->验收
1.计划阶段
一般由测试经理编写,根据需求估算测试所需资源、所需时间、功能点划分、如何合理安排资源。
2.设计阶段
主要编写测试用例,参考需求分析、概要设计、详细设计等文档,也会和开发和产品经理沟通。
3.执行阶段
搭建测试环境,执行预测,判断当前版本是否可测试。
如果测试通过,则正式进入系统测试,遇到问题提交缺陷报告,对bug进行跟踪。
具体测试轮次由开发质量和版本复杂程度决定
4.评估阶段
出测试报告,对整体过程做总结,对当前版本质量进行评估。
5.验收阶段
出用户手册,操作指引,严格评审流程,保证每一步输出有效。