恩瑞特 笔试

1、软件测试过程:
测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。
开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。
2、 软件测试的目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。
3、什么是黑盒测试和白盒测试?
任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。
黑盒测试的测试人员更偏重于业务方向, 白盒测试的测试人员更偏重于实现方式; 黑盒测试更注重整体, 白盒测试更注重局部;它们是相辅相成的。
黑盒测试被称为功能测试或数据驱动测试 技术方法主要包括边界值分析法、等价类划分法、比较测试法、因果图法、决策表法等。 
白盒测试方法:程序结构分析、逻辑覆盖、基本路径测试。 
白盒概念:控制流图、环形复杂度、矩阵图
 
白盒测试的优缺点
  1. 优点
・迫使测试人员去仔细思考软件的实现
・可以检测代码中的每条分支和路径
・揭示隐藏在代码中的错误
・对代码的测试比较彻底
・最优化
  2. 缺点
・昂贵
・无法检测代码中遗漏的路径和数据敏感性错误
・不验证规格的正确性
黑盒测试的优缺点
优点有:
1)比较简单,不需要了解程序内部的代码及实现;
2)与软件的内部实现无关;
3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
5)在做软件自动化测试时较为方便。
缺点有:
1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
2)自动化测试的复用性较低。
4、二分插入的算法
#include<iostream>  
  using   namespace   std;  
  int   main()  
  {  
  int   const   MAX=10;  
  int   arr[MAX]={1,3,5,7,9,11,13,15,17};     //9个数,留一个位置插入num  
  int   low=0,high=MAX-1,mid;  
  int   i,j,num=6;     //num为要插入的数  
  while(low<=high)  
  {  
  mid=(low+high)/2;  
  if(num<arr[mid])   //   如小于则在插入点在左半区  
  high=mid-1;  
  else  
  low=mid+1;  
  }  
  for(j=MAX-2;j>=high+1;j--)    
  arr[j+1]=arr[j];    
  arr[j+1]=num;   //插入num         //////改成这样  
  for(i=0;i<10;i++)  
  cout<<arr[i]<<"   ";  
  cout<<endl<<endl;  
          return   0;  
  }  
5、错误 缺陷 失效 的含义以及之间的关系
错误(error)--人类会犯错误,很接近的一个同义词是过错(mistake),人们在编写代码时会出现过错,我们把这种过错叫bug,错误很可能扩散,需求错误在设计期间有可能被放大,在编写代码是还会进一步扩大。

缺陷(fault)--缺陷是错误的表现。把缺陷分为过错缺陷和遗漏缺陷。
过错缺陷:如果把某些信息输入到不正确的表示中
遗漏缺陷:如果没有输入正确的信息。遗漏缺陷更难检测和解决。

失效--(failure)--当缺陷执行时会发生失效。一失效只出现在可执行的表现中,通常是源代码,或确切地说是被装载的目标代码;二这种定义只与过错缺陷有关。

事故(incident)--当出现失效时,可能会也可能不会呈现给用户,事故说明出现了与失效类似的情况,警告用户注意出现的失效。
缺陷(fault)是潜在的,人的错误(error)会引起缺陷。
  bug是被激活的缺陷,失效则是由于缺陷被执行引起的现象。
首先由于存在错误,才导致产生缺陷,缺陷被激活产生故障,故障导致失效。
6. 软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。如果对项目进行风险管理,就可以最大限度的减少风险的发生。但是,目前国内的软件企业不太关心软件项目的风险管理,结果造成软件项目经常性的延期、超过预算,甚至失败。成功的项目管理一般都对项目风险进行了良好的管理。因此任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容 。
风险管理的步骤包括:风险识别、风险估计、风险评价、风险决策和风险应对
风险决策的方法有:满意度准则、期望值准则、最小方差准则和期望方差准则。至于他们的优缺点你可以参考工程经济学教材
风险应对的四种基本方法是:风险回避、损失控制、风险转移和风险保留
risk pressure risk possibility
 

你可能感兴趣的:(职场,笔试,休闲,恩瑞特)