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