软件测试理论知识

上一篇 / 下一篇  2012-03-15 22:56:21 / 个人分类:测试技术

   目录
0.自底向上和自顶向下的优缺点比较?
1.非渐增式测试与渐增式测试有什么区别
2.采用黑盒测试设计测试用例有哪几种方法?这些方法的特点?
3.    什么是白盒测试?什么是黑盒测试?
4.    简述白盒测试和黑盒测试的区别。
5.静态测试和动态测试的区别?
6.手工测试和自动化测试的区别?自动化测试能否代替手工测试?
7.设计测试用例的方法有哪些?
8.测试方法选择的原则?
9.单元测试的意义?(重要性)
10.白盒测试用到的技术?
11.质量评估的概念?
12.通过测试和失败测试的定义?

0.自底向上和自顶向下的优缺点比较?
(1)自底向上测试优点:由于驱动模块模拟了所有调用参数,即使数据流并未构成邮箱的非环状图,生成测试数据也没有困难。特别适合于关键模块在结构图的底部的情况。
            缺点:1.直到最后一个模块被加载进去之后才能看到整个程序的框架。2.只有到测试过程的后期才能发现时序问题和资源竞争问题。
(2)自顶向下测试优点:可以自然做到逐步求精,一开始就能让测试者看到系统的框架。
            缺点:1.需要桩模块。2.在输入/输出模块接入系统之前,在桩模块中表示测试数据有一定的困难。3.由于驱动模块不能模拟数据,如果模块间的数据流不能构成有向的非环状图,则一些模块的测试数据难于生成。
            4.观察和解释程序输出往往也是困难的。

1.非渐增式测试与渐增式测试有什么区别?
区别:(1)非增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的的单元测试,后一阶段完成集成测试。
而渐增式测试往往把单元测试和集成测试放在一起,同时完成
(2)非增式需要更多的工作量。因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。
(3)渐增式可以较早的发现接口之间的错误,非渐增式最后组装时才发现。
(4)渐增式有利于排错,发生错误往往和最近加进来的模块有关,非渐增式发现接口错误推迟到最后,很难判断是那一部分接口出错。
(5)渐增式比较彻底,已测试的模块和新的模块再测试。
(6)渐增式占用的时间较多,但非渐增式需更多的驱动模块、桩模块也占用一些时间。
(7)非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型的软件很有意义。

2.采用黑盒测试设计测试用例有哪几种方法?这些方法的特点?
(1)等价类划分。等价类划分是将输入数据按有效的或无效的划分成若干个等价类,测试每个等价类的代表就等于对该类其他值的测试。
(2)边界值分析。该方法是将测试边界的情况作为重点的目标,选取正好等于,刚刚大于或刚刚小雨边界值的情况,根据这些情况选择测试用例。
(3)错误推测。错误推测法没有确定的步骤,凭检验进行。它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例。
(4)因果图法。因果图法能有效的检测输入条件的各种组合可能会引起的错误。因果图的基本原理是通过画因果图,把自然语言
描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。

3.    什么是白盒测试?什么是黑盒测试?
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

4.    简述白盒测试和黑盒测试的区别。
黑盒测试也称功能测试、数据驱动测试或基于规格说明书的测试。它注重于测试软件的功能性需求。白盒测试也称结构测试、逻辑驱动测试或基于程序本身的测试。
黑盒测试和白盒测试是从完全不同的起点出发的,并且这两个出发点在某种程度上是完全对立的,反映了测试思路的两个极端情况。黑盒测试的优势在于能够从用户使用的角度出发进行测试,
而白盒测试的优势在于能够对程序内部的特定部位进行覆盖测试。黑盒测试的缺点是无法测试程序内部的特定部位。如果需求说明有误,则无法发现问题。
白盒测试的缺点是无法检验程序的外部特征,无法对未实现规格说明的程序欠缺部分进行测试。
黑盒测试主要在确认测试、系统测试阶段进行,白盒测试是在编码、单元测试、集成测试阶段进行。

5.静态测试和动态测试的区别?
(1)静态测试是不运行被测程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
动态测试是实际运行被测程序,输入相应的的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
(2)静态测试是通过分析或检查源程序的文法、结构、过程和接口等来检验程序的正确性,找出欠缺和可疑之处。而动态测试必须生成测试数据来运行程序,取得程序运行的真实情况、动态情况,进而进行分析。
(3)静态测试不需要进行测试用例的设计和结果判断等工作。而动态测试依赖于测试数据即测试用例
(4)静态测试实施不需要特别的条件,容易开展。而动态测试中涉及多方面的工作,要求较好的管理和工作程序。

6.手工测试和自动化测试的区别?自动化测试能否代替手工测试?
 手工测试是传统的测试方法,由测试人员手工编写测试用例,缺点在于测试工作量大,重复多,回归测试难以实现;
 自动化测试利用软件测试工具自动实现全部或者部分测试工作:管理、设计、执行和报告,自动化测试节省大量的测试开销,并能够完成一些手工测试无法实现的测试。
  自动化测试是对手工测试的一种补充,自动化测试不可能完全替代手工测试,因为很多数据的正确性、界面是否美观、业务逻辑的满足程度等都离不开测试人员的人工判断。而仅仅依赖手工测试的话,则会让测试过于低效,尤其是回归测试的重复工作量对测试人员造成了巨大的压力。
因此,自动化测试仅仅是某些条件下手工测试的一种补充,而无法全面取代手工测试。

7.设计测试用例的方法有哪些?
(1)等价类划分法。用来确定产生相同结果的输入范围和初始条件。
(2)正交排列法。能够使用最小的测试过程获得最大的测试覆盖率。
(3)边界值分析法。主要用于输入编辑的逻辑的测试,用于检查对非法数据的过滤处理工作是否正常。
(4)测试大纲方法。着眼于需求。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。

8.测试方法选择的原则?
(1)在任何情况下都必须使用边界值分析方法。(2)用等价类划分方法补充一些测试用例。(3)用错误推测法再追加一些测试用例。
(4)如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选择用因果图法。(5)如果程序的某些功能适合自动测试,可以采用自动测试以及随机测试。
 
9.单元测试的意义?
(1)一个好的单元测试将会把大部分的缺陷控制在产品开发阶段,降低修改成本。
(2)在软件开发的后期阶段,缺陷的发现并修改将会变得更加困难,并要消耗大量的时间和开发费用。
(3)无论什么时候做出修改,都要进行回归测试。在单元测试发现并修复缺陷,有利于测试人员尽早完成这一工作,从而使产品效率和质量得到更好的保证。
(4)经过单元测试的系统,产品的集成过程将会大大地简化。
(5)使测试工作的效力发挥到最大化的关键在于选择正确的测试策略,这包含了完全的单元测试。

10.白盒测试用到的技术?
桌面检查、单元测试、代码评审、同行评审、代码走查、静态分析。

11.质量评估的概念?
质量评估是通过单元测试过程和结果分析得到对被测单元的代码质量的一种评价。质量评估包括功能、性能、可靠性、可维护性等方面。

12.通过测试和失败测试的定义?
通过测试:主要用于验证系统和它的需求一致性,确认软件至少能做什么。
失败测试:纯粹为了破坏软件而设计和执行的测试案例。失败测试主要证明一个系统不会做不需要它做的事情。

TAG: 区别 测试 单元测试

 

评分:0

我来说两句

龙飞

龙飞

追随自己的梦想,永不言弃。

日历

« 2024-03-14  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 70829
  • 日志数: 62
  • 文件数: 1
  • 书签数: 4
  • 建立时间: 2011-01-27
  • 更新时间: 2012-06-16

RSS订阅

Open Toolbar