软件测试的发展过程
1956年调试时期(测试即调试)
1957年 -1978年论证时期(软件测试是验证软件是正确的)和1979年 - 1982年破坏性测试时期(为了发现错误而执行程序的过程)
1983年起,软件测试已有了行业标准(IEEE829),它需要运用专门的方法和手段,需要专门人才和专家来承担。
1990年起软件迅速发展,测试行业也更着发生了巨大变化,开始引入专业测试工具
软件测试认识过程
什么是软件测试
在规定条件下对程序进行操作,从而发现问题,对软件质量进行评估的过程。
软件测试的目的
测试的目的:
是想以最少的人力,物力和时间找出软件中潜在的各种错误与缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患以及带来的商业风险。(注意这个问题的答案,经常会与软件测试的定义混淆)
软件测试的定义
测试的定义:
使用人工和自动手段来运行或测试某个系练的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
软件测试的原则
- 所有的测试都应追溯到用户需求(视频网站,点击后最大化)
- 应当把“尽早和不断地测试”作为座右铭
- 测试工作应该由独立的专业的软件测试机构来完成
- Pareto原则,测试发现的错误中80%很可能起源于20%的模块中。
- 设计测试用例时,应该考虑各种情况。
- 对测试出的错误结果一定要有一个确认的过程(描述缺陷报告)
- 制定严格的测试计划
- 完全测试是不可能的,测试需要终止。
- 注意回归测试(见下一页)的关联性。
- 妥善保存一切测试过程文档。
回归测试
指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
软件产品质量模型(ISO/IEC9126)
软件产品质量模型对产品设计时需要考虑的地方进行了高度概括。
六大特性:
- 功能性:是指软件产品在指定条件下使用时,提供满足明确和隐含要求的功能的能力。
- 可靠性:是指在特定条件下使用时,软件产品维持规定的性能级别能力。第一层:设备最好不要出故障;第二层:设备出现故障了不要影响主要的功能和业务;第三层:如果影响了主要功能和业务,系统可以尽快定位并恢复。
- 易用性:是指用户在指定条件下使用软件产品时,产品被用户理解、学习、使用和吸引用户的能力。简单10个字:易懂、易学、易用、漂亮好看(用户体验好)。
- 效率:是指在规定条件下,相对于所用资源的数量,软件产品可提供适当的性能的能力。通常,效率就是我们常说的产品性能(单选、多选例子)。
- 可维持性:是指产品可被修改的能力。这里的修改是指纠正、改进软件产品和软件产品对环境、功能规格变化的适应性(qq隐身在线显示)
http://www.kuaihou.com/s/qqlishibanben/快速滑动会有问题,经典的js代码bug - 可移植性:是指软件产品从一种环境迁移到另外一种环境的能力。这里的环境,可以理解为硬件、软件或组织等不同的环境。(win7、win10、安卓、ios。…)
软件质量模型保证(SQA)
软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
基本目标
- 软件质量保证工作是有计划进行的。
- 客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。
- 将软件质量保证工作及结果通知给相关组别和个人。
- 高级管理层接触到在项目内部不能解决的不符合类问题。
- 软件质量需要全面的测试工作来保证。
QC:检验产品的质量,保证产品符合客户的需求;是产品质量检查者;
QA:审计过程的质量,保证过程被正确执行;是过程质量审计者;注意区别检查和审计的不同
检查:就是我们常说的找茬是挑毛病的;
审计:来确认项目按照要求进行的证据;审计的内容主要是过程;
QC进行质量控制,向管理层反馈质量信息;QA则确保QC按照过程进行质量控制活动,按照过程将检查结果向管理层汇报。这就是QA和QC工作的关系。
软件测试基本流程
- 需求分析
- 编写测试用例(测什么怎么测)
- 评审测试用例
- 搭建测试环境
- 等待开发提交测试包
- 部署测试包
- 冒烟测试(对软件主体基本功能进行基本测试)
- 执行测试用例
- BUG跟踪处理(提交及回归BUG)
- N轮之后符合需求
署测试包 - 冒烟测试(对软件主体基本功能进行基本测试)
- 执行测试用例
- BUG跟踪处理(提交及回归BUG)
- N轮之后符合需求
- 测试结束