学习小tips

上一篇 / 下一篇  2011-06-11 16:00:45 / 个人分类:心得体会

1、编程语言可分为两类:系统编程语言(如Pascal、C、C++、Java等)和脚本语言(如perl.python,rexx.tcl ,vb ,unix shells等)。系统编程语言在从头开始构建和性能方面会更好点,而脚本语言在重用代码和快速开发方面有优势,是理想的自动化测试工具。
2、软件的生命周期分成六个阶段:计划、需求分析、设计、编码、测试和运行维护
3、常用的软件开发模式:线性模型(如瀑布模型)、渐进式模型(如螺旋模型)、变换模型
4. 白盒测试的方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等
语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误;判定覆盖是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,但若程序中的判定是有几个条件联合构成时,它未必能发现每个条件的错误;条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支;判定/条件覆盖是使判定中每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次;条件组合覆盖是使每个判定中条件结果的所有可能组合至少出现一次,因此判定本身的所有可能解说也至少出现一次,同时也是每个条件的所有可能结果至少出现一次;路径覆盖是每条可能执行到的路径至少执行一次;其中语句覆盖是一种最弱的覆盖,判定覆盖和条件覆盖比语句覆盖强,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖,条件组合覆盖是除路径覆盖外最强的,路径覆盖也是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 
if   A   and   B   then   Action1 
if   C   or   D   then   Action2 

语句覆盖最弱,只需要让程序中的语句都执行一遍即可   。上例中只需设计测试用例使得A=true   B=true   C=true   即可。 

分支覆盖又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。上例需要设计测试用例使其分别满足下列条件即可(1)A=true,B=true,C=true,D=false(2)A=true,B=false,C=false,D=false。 

条件覆盖:要使得每个判断中的每个条件的可能取值至少满足一次。上例中第一个判断应考虑到A=true,A=false,B=true,B=false第二个判断应考虑到C=true,C=false,D=true,D=false,所以上例中可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false。 

路径覆盖:要求覆盖程序中所有可能的路径。所以可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。 

不论哪种覆盖方法,都不能保证程序的正确性。


 (1)。判定覆盖或分支覆盖:譔准则要求必须编写足够的测试用例,使得每一个判断都至少有一个为真和为假的输出结果。换句话说,也就是每条分支路径都必须至少遍历一次。
(2)。条件覆盖:编写足够的测试用例以确保将一个判断中的每个条件的所有可能的结果至少执行一次。
(3)。判定/条件覆盖准则:将一个判断中的每个条件的所有可能的结果至少执行一次,将每个判断的所有可能的结果至少执行一次,将每个入口点都至少调用一次。
(4)。多重条件覆盖:将每个判定中的所有可能的条件结果的组合,以及所有的入口点都至少执行一次。
5.黑盒测试的方法:等价类划分、边界值分析、因果图分析、错误推测法、功能图分析等
(1).使用等价划分方法设计测试用例主要有两个步骤:确定等价类,生成测试用例,编写新的测试用例时,尽可能多的覆盖那些尚未被涵盖的有效等价类,覆盖一个且仅一个尚未被涵盖的无效等价类。
6.模块(单元)测试: 单元测试的测试用例的设计过程如下:使用一种或者多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例。
7.软件测试是否应先独立地测试每个模块,然后再将这些模块组装成完整的程序?还是先将下一步要测试的模块组装到模块集合中,然后再进行测试?第一种方法称为非增量测试或“崩溃测试”,其需要驱动模块与桩模块。第二种方法称之为增量测试或集成,分为自底向上或是自顶向下






11.质量保证(QA)与质量控制(QC)都属于质量管理(Quality Management)的一环。QC找的是产品中的错误,QA找的是过程中的错误。
QA的目标是预防缺陷和错误的发生,而QC则是找出缺陷和错误。这两种方式在运作上的方向是有不同,QA是属于防御性的方法,而QC采取主动出击的方法。QA所进行的活动有:需求审查、设计审查、程序代码审查、测试用例审查等等;QC所进行的活动有:测试、跟踪、监督等等。从这种划分方式来看,QA所进行的是静态测试和保证部分流程质量,而QC进行的是动态测试。
    还有一种理解是,软件质量由组织、流程、和技术三个方面来决定,其中QA是从流程方面来保证软件质量,如协助SEPG制订流程、对流程的执行进行监督和审核、提出流程改进意见等等,而测试是从技术方面来保证质量,包括静态测试(如评审)和动态测试。




TAG:

 

评分:0

我来说两句

日历

« 2024-05-15  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 4109
  • 日志数: 7
  • 建立时间: 2011-06-03
  • 更新时间: 2011-06-22

RSS订阅

Open Toolbar