1.什么是软件?
在学习软件测试之前,首先应该知道什么是软件,那么什么是软件呢?
简单的来说,软件是程序、数据和文档的集合,并且是基于计算机系统的,与硬件相互依存的。
所以:软件=程序+数据+文档
其中程序是能够完成预定功能和性能的可执行的指令序列,数据是程序需要处理的有关数据结构,文档是指开发、使用和维护程序所需要的图文资料,像需求分析、概要设计、详细设计、用户文档等各个阶段的文档。
软件的分类可以依据两种标准:软件在计算机中的层次和使用范围。
特性:
- 软件是一个逻辑实体,具有抽象性。
- 软件生产主要是研制,成本主要在开发和研制。
- 使用中没有磨损和老化的问题。
- 对硬件和环境有依赖性。
- 软件的研发仍然是手工作坊式。
- 软件是复杂的,以后会更复杂。
- 成本高。
2.软件测试基础
2.1 什么是软件测试
软件测试是对于软件的阶段性结构结果进行质量检验。软件的bug会对生活和工作带来毁灭性的打击,整个市场每年会因此损失近600亿美元。
软件测试的定义:使用人工或自动的手段,来运行和测试某个系统的过程。目的是为了检验它是否满足与规定的需求或弄清预期的如果与实际结构的差别。
软件测试的任务包括制定测试计划,设计测试用例,实施测试,提交缺陷报告和提交测试总结。
软件测试应该遵循一系列的原则:
2.2 测试的思维模型
测试的思维模型是我认为最重要的知识点之一。软件测试这应该具备的两种测试的思维模型,正向测试和逆向测试。
正向测试是检验软件对于功能的实现是否完善,确保软件能够工作。
逆向测试是为了发现软件中存在的bug,是为了发现错误而执行一个程序或系统的过程。
这也是适用于软件测试的目的的出发点:
- 测试是程序执行的过程,目的在于发现错误。
- 一个成功的测试用例在于发现至今未发现错误。
- 一个成功的测试在于发现了至今未发现的错误的测试。
- 确保产品完成了它所承诺过公布的功能,并且用户可以访问到的功能有明确的书面说明。
- 确保产品满足性能和效率的要求。
- 确保产品是健壮的和适应用户环境的。
2.3 测试人员必须具备的素质
测试人员要应该重视自身软技能,软技能的培养与专业技能的学习一样重要。