软件测试

来源:互联网 发布:深入java虚拟机百度云 编辑:程序博客网 时间:2024/04/28 14:36

软件测试是动态查找程序代码中的各类错误和问题的过程。

  • 目的与任务
  • 测试的特性
    • 1挑剔性
    • 2复杂性
    • 3不彻底性
    • 4经济性
  • 测试的种类
  • 测试的文档
  • 软件测试过程


目的与任务

定义:程序测试是为了发现错误而执行程序的过程。

根据定义,测试的目的与任务可以描述为:

  • 目的:发现程序的错误
  • 任务:通过在计算机上执行程序,暴露程序中潜在的错误。

另一个与测试相关的术语是纠错。它的目的与任务可以规定为:

  • 目的:定位和纠正错误
  • 任务:消除软件故障,保证程序的可靠运行。

通常把一次程序执行所需要的测试数据,成为一个测试用例。

每一个测试用例产生一个相应的测试结果。如果它与期望结果不相符合,便说明程序中存在错误,需要通过纠错来改正。

测试与纠错信息流程

对于长度仅有数百行的小程序,测试与纠错一般由编码者一人完成;但对于大型的程序,测试与纠错必须分开进行。

为了保证大程序的测试不受干扰,通常都把它交给独立的小组进行,对于程序中的错误,应退回编码者进行纠错。

有人把小程序的测试和纠错合称为调试。一旦编好了一个小程序,先在计算机上运行测试,发现错误便进行纠错,修改后再重复测试。这一交替进行的“测试—纠错—再测试—再纠错”的过程,常被通俗地称为调试程序。


测试的特性

1:挑剔性

测试是对质量的监督与保证,所以对于被测程序就是要“吹毛求疵”,就是要在“鸡蛋里面挑骨头”。只有抱着为证明程序有错的目的去测试,才能把程序中潜在的大部分错误找出来。

2:复杂性

做好一个大型程序的测试,其复杂性不亚于对这个程序的开发,主张挑选最有才华的程序猿参与测试工作。

3:不彻底性

所谓彻底测试,就是让被测程序在一切可能的输入情况下全部执行一遍。通常这种测试为穷举测试。

4:经济性

为了降低测试成本(一般占整个开发成本的1/3左右),选择测试用例时应该遵守经济性的原则:第一,要根据程序的重要性和一旦发生故障将造成的损失来确定它的可靠性等级,不要随意提高等级,从而增加测试的成本;第二,要认真研究测试策略,以便能使用尽可能少的测试用例,发现尽可能多的程序错误。


测试的种类

测试是一个执行程序的过程,即要求被测程序在计算机上运行。

其实,不执行程序也可以发现程序的错误。为便于区分,一般把前者称为动态测试,后者称为静态分析。

动态测试区分为两类。一类把被测程序看成一个黑盒,根据程序的功能来设计测试用例,称为黑盒测试。

另一类则根据被测程序的内部结构设计测试用例,测试者需要事先了解被测程序的结构,故称为白盒测试。

测试的分类


测试的文档

为了保证测试质量,软件测试必须完成规定的文档。按照软件工程的需求,测试文档主要应包括计划和测试报告两个方面的内容。

测试计划的主体是测试内容说明。它包括测试项目的名称,各项测试的目的、步骤和进度,以及测试用例的设计等。测试报告的主体是测试结果,它包括测试项目名称,实测结果与期望结果的比较,发现的问题,以及测试达到的效果等。

一个程序所需的测试用例可以定义为:

  • 测试用例={测试数据+期望结果}
  • 其中{ }表示重复。

它表明,测试一个程序要使用多个测试用例,而每一个测试用例都应包括一组测试数据和一个相应的期望结果。如果在测试用例后面再加上“实际结果”,就成为测试结果,即:

  • 测试结果={测试数据+期望结果+实际结果}

软件测试过程

随着软件工程实践经验的积累和软件的产品化,项目一开始就要考虑测试过程,制定测试计划,然后管理测试计划的实施,和项目开发计划的实施相配合,写出测试报告并及时归档,以便开发者能及早得知设计中的问题。

测试为软件开发的各种活动提供全方位的服务。

测试过程和项目开发过程完全平行,并有机的交互,将测试的问题纳入项目的风险和进度分析中,以调整下一步的开发和测试活动。

一个项目首先要做开发过程的订制或设计,然后做测试的需求和设计,再然后是测试实施。

原创粉丝点击