免费智能真题库 > 历年试卷 > 软件评测师 > 2019年下半年 软件评测师 上午试卷 综合知识
  第55题      
  知识点:   软件测试原则   测试原则   软件测试
  章/节:   软件测试基本概念       

 
以下关于软件测试原则的叙述中,不正确的是( )。
 
 
  A.  所有的软件测试都应追溯到用户需求
 
  B.  应当尽早和不断地进行测试
 
  C.  人力充足时应进行完全测试
 
  D.  非单元测试阶段,程序员应避免检查自己的程序
 
 
 

 
  第56题    2011年下半年  
   30%
以下关于软件测试原则的叙述中,不正确的是(56)。
  第57题    2011年下半年  
   32%
以下关于测试时机的叙述中,正确的是(57)。
  第55题    2013年下半年  
   28%
以下关于软件测试原则的叙述中,正确的是(55)。
   知识点讲解    
   · 软件测试原则    · 测试原则    · 软件测试
 
       软件测试原则
        基于测试是为了寻找软件的错误与缺陷,评估与提高软件质量,我们提出这样的一组测试原则,如下所示。
        . 所有的软件测试都应追溯到用户需求。
        这是因为软件的目的是使用户完成预定的任务,并满足用户的需求,而软件测试所揭示的缺陷和错误使软件达不到用户的目标,满足不了用户需求。
        . 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
        由于软件的复杂性和抽象性,在软件生命周期各个阶段都可能产生错误,所以不应把软件测试仅仅看作是软件开发的一个独立阶段的工作,而应当把它贯穿到软件开发的各个阶段中。在软件开发的需求分析和设计阶段就应开始测试工作,编写相应的测试文档。同时,坚持在软件开发的各个阶段进行技术评审与验证,这样才能在开发过程中尽早发现和预防错误,杜绝某些缺陷和隐患,提高软件质量。只要测试在生命周期中进行得足够早,就能够提高被测软件的质量,这就是预防性测试的基本原则。
        . 完全测试是不可能的,测试需要终止。
        想要进行完全的测试,在有限的时间和资源条件下,找出所有的软件缺陷和错误,使软件趋于完美,是不可能的。主要有三个原因:
        ①输入量太大;
        ②输出结果太多;
        ③路径组合太多。
        一个适度规模的程序,其路径组合近似天文数字,对于每一种可能的路径都执行一次的穷举测试是不可能的。此外,测试也是有成本的,越是测试后期,为发现错误所付出的代价就会越大,因此也要根据测试错误的概率以及软件可靠性要求,确定最佳停止测试时间,我们不能无限地测试下去。
        . 测试无法显示软件潜在的缺陷。
        进行测试是可以查找并报告发现的软件缺陷和错误,但不能保证软件的缺陷和错误全部找到,继续进一步测试可能还会找到一些,也就是说测试只能证明软件存在错误而不能证明软件没有错误。
        . 充分注意测试中的群集现象。
        经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成正比。根据这个规律,应当对错误群集的程序段进行重点测试,以提高测试投资的效益。在所测程序段中,若发现错误数目多,则残存错误数目也比较多。这种错误群集性现象,已为许多程序的测试实践所证实。例如,在美国IBM公司的OS/370操作系统中,47%的错误仅与该系统的4%的程序模块有关。这种现象对测试很有用。如果发现某一程序模块似乎比其他程序模块有更多的错误倾向,则应当花费较多的时间和代价测试这个程序模块。
        . 程序员应避免检查自己的程序。
        基于心理因素,人们认为揭露自己程序中的问题总不是一件愉快的事,不愿否认自己的工作;由于思维定势,人们难于发现自己的错误。因此,为达到测试目的,应由客观、公正、严格的独立的测试部门或者独立的第三方测试机构进行测试。
        . 尽量避免测试的随意性。
        应该从工程的角度去理解软件测试,它是有组织、有计划、有步骤的活动。
 
       测试原则
        系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析、系统设计和实施的最后复查。根据测试的概念和目的,在进行信息系统测试时应遵循以下基本原则。
        (1)应尽早并不断地进行测试。测试不是在应用系统开发完之后才进行的。由于原始问题的复杂性、开发各阶段的多样性以及参加人员之间的协调等因素,使得在开发的各个阶段都有可能出现错误。因此,测试应贯穿在开发的各个阶段,应尽早纠正错误,消除隐患。
        (2)测试工作应该避免由原开发软件的人或小组承担,一方面,开发人员往往不愿否认自己的工作,总认为自己开发的软件没有错误;另一方面,开发人员的错误很难由本人测试出来,很容易根据自己编程的思路来制定测试思路,具有局限性。测试工作应由专门人员来进行,这样会更客观、更有效。
        (3)在设计测试方案时,不仅要确定输入数据,而且要根据系统功能确定预期输出结果。将实际输出结果与预期结果相比较就能发现测试对象是否正确。
        (4)在设计测试用例时,不仅要设计有效、合理的输入条件,也要包含不合理、失效的输入条件。在测试的时候,人们往往习惯按照合理的、正常的情况进行测试,而忽略了对异常、不合理、意想不到的情况进行测试,而这可能就是隐患。
        (5)在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该做的事。多余的工作会带来副作用,影响程序的效率,有时会带来潜在的危害或错误。
        (6)严格按照测试计划来进行,避免测试的随意性。测试计划应包括测试内容、进度安排、人员安排、测试环境、测试工具和测试资料等。严格地按照测试计划可以保证进度,使各方面都得以协调进行。
        (7)妥善保存测试计划、测试用例,作为软件文档的组成部分,为维护提供方便。
        (8)测试例子都是精心设计出来的,可以为重新测试或追加测试提供方便。当纠正错误、系统功能扩充后,都需要重新开始测试,而这些工作的重复性很高,可以利用以前的测试用例,或在其基础上修改,然后进行测试。
 
       软件测试
        测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
        软件测试是针对一个程序的行为,在有限测试用例集合上动态验证软件是否达到预期的行为。
        软件测试过程如下:
        (1)拟定测试计划。
        (2)编制测试大纲。
        (3)设计和生成测试用例。
        (4)实施测试。
        (5)生成测试报告。
        软件测试方法:
        .人工测试:采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。人工测试包括个人复查、抽查和会审等。
        .机器测试:把设计好的测试用例作用于被测程序,比较测试结果和预期结果是否一致。机器测试包括黑盒测试(功能测试)和白盒测试(结构测试)。
        软件测试伴随软件开发和维护过程,通常可以在概念上划分为以下三个阶段:
        .单元测试:也称为模块测试,在模块编写完成且无编译错误后就可以进行。
        .集成测试:也称为组装测试,就是把模块按系统设计说明书的要求组合起来进行测试。
        .系统测试:是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装和确认测试。其目的是通过与系统需求相比较,发现所开发的系统与用户需求不符合的地方。
   题号导航      2019年下半年 软件评测师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第55题    在手机中做本题