软件测试考试重点
- 格式:doc
- 大小:148.00 KB
- 文档页数:6
1.软件缺陷是由很多方面造成的,以下哪个方面是造成软件缺陷的最多的地方〔A 〕A.规格说明书B.系统设计结果C.编写代码D.其他2.覆盖准那么最强的是〔D 〕A.语句覆盖B.判定覆盖C.条件覆盖D.路径覆盖3.实际的逻辑覆盖测试中,一般以〔C 〕为主设计测试用例。
A.条件覆盖B.判定覆盖C.条件组合覆盖D.路径覆盖4.发现错误能力最弱的覆盖准那么是〔A 〕。
A.语句覆盖B.判定覆盖C.条件覆盖D.路径覆盖5.单元测试所使用的主要测试方法是〔B 〕A.黑盒测试B.白盒测试C.集成测试D.验收测试6.对于软件缺陷的修复费用,在哪个阶段的费用花费最小〔A 〕A.分析阶段B.设计阶段C.编码阶段D.发布阶段7.静态测试的主要对象是〔AB 〕A.代码检查B.代码风格与标准C.软件的功能D.设计的合理性8.单元测试主要测试是模块在〔ABC 〕上的错误。
A.语法B.格式C.逻辑D.功能9.单元测试主要由〔C 〕完成?其中〔A 〕起主要作用。
A.开发人员B.测试人员C.开发人员和测试人员D.以上都不对10.集成测试所使用的主要测试方法是〔A 〕。
A.黑盒测试B.静态测试C.动态测试D.白盒测试11.系统测试主要包括包含了多种测试活动,主要分为〔AB 〕。
A.功能性测试B.非功能性测试C.回归测试D.单元测试12.系统集成测试常见的有哪几种不同模式〔AB 〕。
A.非渐增式测试模式B.渐增式测试模式C.独立测试模式D.非独立测试模式13.软件的兼容性测试包括〔AD 〕。
A.向前和向后兼容B.多语言测试C.多版本测试D.横向测试14.软件的缺陷通常集中在〔AB 〕阶段。
A.需求分析B.系统设计C.编写代码D.软件测试15.对于一些关键代码或新人写的代码,主要采取〔B 〕方式。
A.走查B.会议审查C.代码互评D.自查16.在集成测试中,主要的集成方法有〔ABCD 〕。
A.自顶向下B.自底向上C.大爆炸D.三明治17.文档测试主要检查文档的〔ABCD 〕。
软件测试复习题一、判断(01)测试是为了验证软件已正确地实现了用户的要求。
错(02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。
对(03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。
错(04)黑盒测试的测试用例是根据程序内部逻辑设计的。
错(05)黑盒测试的测试用例是根据应用程序的功能需求设计的。
对(06)为了快速完成集成测试,采用一次性集成方式是适宜的。
错(07)在软件开发过程中,若能推迟暴露其中的错误,则为修复和改进错误所花费的代价就会降低。
错(05)在软件开发过程中,若能尽早暴露其中的错误,则为修复和改进错误所花费的代价就会降低。
对(09)单元测试通常由开发人员进行。
对(10)压力测试通常需要辅助工具的支持。
对(11)压力测试不需要辅助工具的支持。
错(12)测试人员说:“没有可运行的程序,我无法进行测试工作”。
错(13)软件测试员可以对产品说明书进行白盒测试。
错(14)软件测试员无法对产品说明书进行白盒测试。
对(15)在设计测试用例时,应包括合理的输入条件和不合理的输入条件。
对二、选择1、用黑盒技术设计测试用例的方法之一为( a )A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试2、软件测试的目的是(b)A)避免软件开发中出现的错误B)发现软件开发中出现的错误C)尽可能发现并排除软件中潜藏的错误,提高软件的可靠性D)修改软件中出现的错误3、下列软件属性中,软件产品首要满足的应该是(a )A)功能需求B)性能需求C)可扩展性和灵活性D)容错纠错能力4、坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期(a)。
A)技术评审 B)程序测试C)改正程序错误D)管理评审5、以程序的内部结构为基础的测试用例技术属于( d )。
A)灰盒测试B)数据测试C)黑盒测试D)白盒测试6、为了提高测试的效率,正确的做法是( a )。
软件测试技术考试试题及答案在软件开发和应用过程中,软件测试技术起到了至关重要的作用。
通过测试,可以验证软件的正确性、可靠性和安全性,帮助开发团队发现和修复潜在的问题,从而提高软件质量。
对于软件测试技术的掌握,既是软件测试人员的基本素养,也是求职者在面试过程中的一项重要能力。
下面,本文为大家总结了一些常见的软件测试技术考试试题,并给出了详细的答案,希望对大家的学习和提升有所帮助。
试题一:请简要介绍软件测试的目的和重要性。
答案一:软件测试的目的是为了发现软件中的缺陷和错误,确保软件能够按照需求规格书的要求正常工作。
软件测试的重要性主要有以下几个方面:1. 发现问题:通过测试可以发现软件中的缺陷和错误,帮助开发团队及时修复,提高软件质量。
2. 提高可靠性:经过充分的测试,可以提高软件的可靠性和稳定性,减少用户在使用过程中遇到的问题。
3. 降低成本:通过测试能够及早发现问题,避免将缺陷带入后续的开发和维护阶段,从而减少修复成本。
4. 用户满意度:通过测试可以提高软件的质量,满足用户对软件功能和性能的需求,提升用户的满意度。
试题二:请简要解释黑盒测试和白盒测试的含义,并列举它们的优缺点。
答案二:黑盒测试和白盒测试是两种常见的测试方法,它们的主要区别在于对软件内部结构的了解程度。
黑盒测试:黑盒测试是在不考虑软件内部结构的情况下进行测试,主要关注软件的功能是否按照需求规格书的要求正常运行。
黑盒测试可以模拟用户的行为,通过输入和输出来验证软件的正确性和可用性。
优点:1. 不依赖开发者:黑盒测试不需要了解软件的内部结构,可以独立进行。
2. 覆盖广泛:通过黑盒测试可以覆盖软件的各种功能和使用场景,提高测试的全面性和有效性。
缺点:1. 需要大量的测试用例:为了达到全面性,黑盒测试需要编写大量的测试用例,增加了测试的工作量。
2. 可能无法发现所有缺陷:由于无法看到软件的内部结构,黑盒测试可能无法发现一些与内部实现相关的缺陷。
专升本软件测试知识点一、知识概述《专升本软件测试知识点》①基本定义:软件测试呢,简单说就是找软件里的毛病的过程。
开发人员弄出软件后,测试人员就得看看这软件有没有功能上不对的地方、会不会容易崩坏之类的问题,就好比做衣服做完了得检查有没有缝歪或者掉线头。
②重要程度:在软件相关学科里这可是相当重要的。
要是软件没经过严格测试,就交到用户手上,可能会有各种难堪的情况。
就像你买个新电器,买回来总是出问题一样糟心。
它是保证软件质量的关键一步。
③前置知识:得先了解一些基本的电脑操作知识,知道软件是怎么个运行逻辑。
还得有一点编程的基础概念,至少得知道代码大概能干啥。
比如变量存东西,函数执行功能这些东西得有个概念,不然软件测试就像没头的苍蝇似的。
④应用价值:实际应用场景非常广泛。
凡是软件开发公司就需要软件测试。
像开发手机应用的,游戏公司这些。
不好好测试的话,用户体验会极差,然后公司就可能亏大了,名声也坏了。
二、知识体系①知识图谱:在软件学科里,软件测试处于保障软件质量的重要环节。
它像是建筑竣工后的验收环节。
其它环节像是软件开发、设计等等。
如果没做好软件测试,前面的工作就可能白费。
②关联知识:和软件开发那些知识肯定是关联紧密。
软件怎么写的很大程度上决定了怎么测试。
同时,数据库知识也有关联,因为很多软件要和数据库交互。
比如说一款学生管理系统软件,软件要操作数据库里存储的学生信息,如果数据库连接出错或者数据结构改变,软件测试就得针对这个来检查。
③重难点分析:重难点就是测试的覆盖率很难做到绝对的全面。
不同的用户可能有不同的操作方式,要考虑所有情况很难。
比如一款社交软件,用户可能各种不同的手机型号、网络环境,要测试所有这些组合情况不容易。
关键就是尽可能覆盖更多常见的情况,合理推测一些可能出现问题的地方。
④考点分析:在专升本考试里比较重要的考查方式可能是关于测试的基本概念、常用测试方法这些。
像给个软件功能描述,问你该用什么测试方法这种问题比较常见。
软件评测考试题库及答案一、选择题1. 软件评测的主要目的是:A. 提高软件的知名度B. 确保软件质量C. 降低软件开发成本D. 增加软件的功能答案:B2. 软件评测不包括以下哪项活动?A. 黑盒测试B. 白盒测试C. 灰盒测试D. 软件维护答案:D3. 以下哪个是软件评测的类型?A. 性能评测B. 安全性评测C. 可用性评测D. 所有选项都是答案:D4. 软件评测中的黑盒测试主要关注:A. 代码的内部逻辑B. 软件的输入输出行为C. 软件的界面设计D. 软件的数据库结构答案:B5. 软件评测中的白盒测试主要关注:A. 代码的内部逻辑B. 软件的输入输出行为C. 软件的界面设计D. 软件的数据库结构答案:A二、判断题1. 软件评测应该在软件开发的任何阶段都可以进行。
(错误)2. 软件评测可以完全替代用户测试。
(错误)3. 软件评测可以帮助开发者发现并修复软件中的缺陷。
(正确)4. 软件评测的结果不会影响到软件的交付和发布。
(错误)5. 软件评测只关注软件的功能实现,不关注用户体验。
(错误)三、简答题1. 简述软件评测的重要性。
软件评测是确保软件质量的关键环节。
它可以帮助开发者发现软件中的错误和缺陷,提高软件的稳定性和可靠性。
此外,软件评测还可以验证软件是否满足用户的需求和预期,从而提升用户体验。
2. 描述软件评测的一般流程。
软件评测的一般流程包括:需求分析、测试计划制定、测试用例设计、测试执行、缺陷报告、缺陷修复和回归测试。
这个过程可能需要多次迭代,直到软件达到预期的质量标准。
四、案例分析题假设你是一名软件评测工程师,你被分配到一个新项目中。
请描述你将如何进行软件评测。
1. 首先,我会与项目团队沟通,了解软件的需求和功能,确保我对软件有充分的理解。
2. 然后,我会制定详细的测试计划,包括测试的范围、方法、资源和时间表。
3. 接下来,我会设计测试用例,覆盖软件的所有功能点和可能的使用场景。
4. 执行测试用例,记录测试结果和发现的缺陷。
选择题:第一部分1. 软件本身的特点和目前的软件开发模式使隐藏在软件内部的质量缺陷不可能完全避免。
在下列关于导致软件质量缺陷的原因的描述中,不正确的是(A)。
A.软件需求模糊以及需求的变更,从根本上影响着软件产品的质量B.目前广为采用的手工开发方式难以避免出现差错C.程序员编码水平低下是导致软件缺陷最主要的原因D.软件测试技术具有缺陷2.(A)是导致软件缺陷的最大原因。
A.需求规格说明书B.设计方案C.编写代码D.测试计划3. 软件缺陷产生的原因是(D)。
A.交流不充分及沟通不畅,软件需求的变更,软件开发工具的缺陷B.软件的复杂性,软件项目的时间压力C.程序开发人员的错误,软件项目文档的缺乏D.以上都是4. 下列关于缺陷产生的原因的叙述中,不属于技术问题的是(A)。
A.文档错误,内容不正确或拼写错误B.系统结构不合理C.语法错误D.接口传递不匹配,导致模块集成出现问题5. 导致软件缺陷的原因很多,①~④是可能的原因,其中最主要的是(D)。
①软件需求说明书不全面,不完整,不准确,而且经常更改②软件设计说明书不够详细③软件操作人员的水平不足④开发人员不能够很好地理解需求说明书和沟通不足A.①②③B.①③C.①②D.①④6. 下面有关软件缺陷的说法中错误的是(C)。
A.缺陷就是软件产品在开发中存在的问题B.缺陷就是软件维护过程中存在的错误、毛病等各种问题C.缺陷就是导致系统程序崩溃的错误D.缺陷就是系统所需实现的某种功能的失效和违背7. 功能或者特性没有实现,主要功能部分丧失,次要功能完全丧失,这属于软件缺陷级别中的(B)。
A.致命缺陷B.严重缺陷C.一般缺陷D.微小缺陷8. 提高测试的有效性十分重要,“高产”的测试是指(C)。
A.用适量的测试用例运行程序,证明被测程序正确无误C.用少量的测试用例运行程序,发现被测程序尽可能多的错误D.用少量的测试用例运行程序,纠正被测程序尽可能多的错误9. 与设计测试数据无关的文档是(D)。
软件测试技术01335复习考试第1章概述•考核知识点与考核目标1.软件测试的基本概念(重点)识记:软件测试的定义理解:软件测试生命周期、软件开发与测试模型2.软件测试技术分类(重点)理解:软件测试技术的分类3.软件测试目的和原则(次重点)理解:软件测试目的和原则4.软件测试工作流程(重点)理解:软件测试工作流程5.软件开发与软件测试的关系(一般)理解:软件开发与软件测试的关系•课后习题1.软件测试的目的:发现软件中出现的错误2.软件测试的原则: 1. 测试用例不仅选用的合理的数据,还要选择不合理的数据;2.应制定测试计划并严格执行;3. 对发现错误较多的程序段,应该进行更深入的测试;3.测试时机:应该尽可能早地进行测试4.软件测试对象:软件代码、文档、数据5.什么是软件测试?简述其目的和原则。
答:简单的说,是为了发现错误而执行软件产品程序的过程;大体来讲就是软件产品在交付之前,对软件进行检测是否满足客户需求的一种工作;测试目的:通过对软件错误的原因和分布进行归纳,来发现并排除软件产品的缺陷,对在需求和设计过程中存在的问题查缺补漏,从而确保软件的产品的质量;测试原则:1、尽早的和不断的进行软件测试;2、不可能完全的测试;无法找出所有的设计错误,并且不能采用逻辑来证明程序的正确性;3、增量测试,由小及大;单元测试、集成测试、确认测试、系统测试4、避免测试自己的程序;5、设计周密的测试用例6、注意错误集中的现象;7、确认bug的有效性;8、合理安排测试计划9、回归测试;10、测试结果的统计和分析;11、及时更新测试;6.软件测试阶段是如何划分的?大体分为以下3个阶段:1、需求阶段,需求阶段是测试活动的前提,明确了软件产品最终的实现的效果,生成测试总体计划;2、设计及编码阶段,根据需求阶段的文档进行概要设计,形成集成测试方案并以模块为单位循环进行单元测试、编码、单元测试,直至所有单元测试成功;3、集成测试、系统测试、验收测试阶段,完成集成测试后,申请系统测试、最后再进行验收测试7.简述软件测试过程。
程序员所做的测试工作并非真正意义上的软件测试,从本质上来说,应该称作“调试“。
调试就是,在已知错误的情况下,对软件程序代码作出一系列检查,校正的过程。
而软件测试则是在未知错误的情况下,检查程序代码是否有问题的过程。
1。
2.2 软件测试的定义a。
软件是一个集合,包括三部分:程序代码,文档,数据。
b。
软件测试就是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程,其目的在于在软件交付使用前充分发现缺陷并协助相关部门定位、解决缺陷,最后交付一个高质量的软件给用户.c。
从广义上讲,软件测试是指软件产品生存周期内的所有检查、评审和确认活动。
如设计评审、文档审查、单元测试、集成测试、系统测试、验收测试等。
d。
软件测试中称找缺陷的过程为找Bug.Bug表示电脑系统或程序中隐藏的错误、缺陷和问题.一切不完美的地方,我们都可以认为其实一个Bug。
1。
2。
3 软件测试分类(1)一般的,我们将软件测试活动分为以下几类:黑盒测试、白盒测试、灰盒测试、静态测试、动态测试、手动测试、自动测试等。
1)黑盒测试黑盒测试又叫做功能测试、数据驱动测试或基于需求规格说明书的功能测试。
该测试类型注重于测试软件的功能性需求。
测试工程师无需了解程序代码内部结构,完全模拟软件产品的最终用户使用该软件,检查软件产品是否达到了用户的需求。
2)白盒测试白盒测试又称为结构测试、逻辑驱动测试或基于程序代码内部构成的测试.测试工程师将深入考察程序代码的内部结构,逻辑设计等。
3)灰盒测试灰盒测试是前两种测试的集合,一方面考虑程序代码的功能性表现,另一方面又要考虑程序代码内部结构。
像我们的功能测试,自动化功能测试就采用了灰盒测试的方法。
4)静态测试静态测试,顾名思义,就是静态的、不执行被测对象程序代码而寻找缺陷的过程。
通俗的讲,静态测试就是用眼睛看,阅读程序代码、文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理以及文档资料有错误的地方。
软件测试期末考试复习选择题1】CMU SEI的Watts Humphrey指出:软件产品必须提首先供用户所需要的 D。
A)性能 B)人机界面 C)可靠性 D)功能2】以下选项中不属于ISO软件质量模型的是C。
A)外部质量模型 B)使用质量模型C)维护质量模型 D)内部质量模型3】下列关于软件质量模型的说法中正确的是 D 。
A)外部质量是表征软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力的B)容错性,通用性,结构性和通信性不全属于软件的质量特性C)内部质量是表征软件产品在规定条件下使用时,满足规定的和隐含的要求的程度D)使用质量是软件产品在规定的使用环境中,规定的用户能实现规定目标的要求【例4】下列选项中不属于使用质量的属性的是 C 。
A)有效性 B)安全性 C)稳定性 D)满意度解析:软件的使用质量属性分为四种:有效性,生产性,安全性和满意度。
【例5】下列软件属性中,软件产品首要满足的应该是 A 。
A)功能需求B)性能需求C)可扩展性和灵活性D)容错、纠错能力6】内部质量需求包括 D 。
A)静态模型 B)动态模型C)文档和源代码D)以上全部【例7】在测试和使用软件产品过程中进行的度量是 B 。
A)内部度量B)外部度量C)使用度量D)性能度量解【例8 C 的结果。
A)功能性B)可靠性C)可维护性D)效率【例9】内部度量的主要目的是 D 。
A)确保获得所需的外部质量 B)确保获得所需的使用质量C)在执行前评价软件产品的质量D)以上全部考点3 软件缺陷的基本知识(考题透解)例1】以下哪一种选项不属于软件缺陷 D 。
A)软件没有实现产品规格说明所要求的功能B)软件中出现了产品规格说明不应该出现的功能C)软件实现了产品规格说明没有提到的功能D)软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题【例2】软件生存周期过程中,修改错误代价最大的阶段是 D 。
A)需求阶段 B)设计阶段C)编程阶段D)发布运行阶段【例3】以程序内部的逻辑结构为基础的测试用例设计技术属于 D 。
istqb考试内容
ISTQB(国际软件测试认证委员会)考试内容主要包括软件测试基础、测试过程和测试度量三个部分。
1. 软件测试基础:涉及软件测试的定义、目标、原则以及测试的生命周期和过程。
包括但不限于对完整性原则(测试应覆盖所有功能和需求)、缺陷定位原则(测试应能够准确定位缺陷)、缺陷复现原则(测试应能够重现缺陷)和缺陷预防原则(测试应帮助预防缺陷的产生)的理解。
2. 测试过程:这是考试的核心部分,涵盖了从测试计划、设计、执行到评估的整个生命周期。
具体包括如何制定测试策略和计划,根据需求和设计文档编写测试用例,执行测试用例并记录测试结果,以及分析测试结果并生成测试报告等步骤。
3. 测试度量:这部分主要考察如何使用各种度量来评估测试的效果,例如再测试和回归测试的状态可以用来监控测试进度,识别的测试条件数目可以用来监控测试质量等。
以上内容仅供参考,建议登陆ISTQB官网获取更全面准确的信息。
一、单项选择题(每小题2分,共20分)二、判断题(每题1分,共10分)三、名词解释(每题2分,共10分)四、分析题(共6题30分)五、综合题(共2题30分)第二章软件质量:软件质量是软件特性的总和,以及满足规定和潜在用户需求的能力产品质量的标准:1.功能性2.可用性(简单安装; 轻松使用; 友好界面)3.可靠性(用户使用的根本)4.性能5.容量6.可测量性7.可维护性8.兼容性9.可扩展性软件测试分类:1.方法:白盒,黑盒2.目标/特性:功能,强壮性,性能,适用性,安全性,可靠性3.阶段/层次:单元,集成,系统,验收单元测试的对象是程序系统中的最小单元---模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。
集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。
两种集成方式:一次性集成方式和增殖式集成方式。
功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。
功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等。
验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试。
第三章测试的关键问题是如何选择测试用例:高效的测试用例测试用例:由测试数据和预期结果构成的测试的对象:源程序、目标程序、数据及相关文档。
测试的目的:为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。
软件是人的创造活动,错误不可避免,因此只能发现错误,不能预防错误。
掌握各种逻辑覆盖法和基路径覆盖法的概念,并能设计相关的测试用例白盒(逻辑覆盖法):语句,判定,条件,判定条件,条件组合,路径掌握控制流图的画法、控制流图的圈复杂度的计算方法、掌握使用基本路径测试法设计测试用例的方法黑盒:掌握等价类划分法,能够划分等价类并设计测试用例。
掌握弱一般等价类测试、强一般等价类测试、弱健壮等价类测试、强健壮等价类测试的概念掌握判定表法的基本原理,并能运用它设计测试用例。
了解因果图法、场景法、错误推测法掌握静态测试与动态测试的区别第四章:软件测试过程模型:v模型,w模型,TMAP模型了解测试过程的3种模型,具体掌握v\M模型的原理,知道各阶段的对应关系第五章:单元测试:对软件基本组成单元进行的测试,一般在代码完成后由开发人员完成,QA人员辅助。
静态测试技术:不运行被测试程序,对代码通过检查、阅读进行分析。
走查:采用讲解、讨论和模拟运行的方式进行的查找错误的活动审查:采用讲解、提问方式进行,一般有正式的计划、流程和结果。
主要方法采用缺陷检查表。
评审: 通常在审查会后进行,审查小组根据记录和报告进行评估动态测试:需要真正将程序运行起来,需要设计系列的测试用例保证测试的完整性和有效性。
白盒,黑盒(灰盒)单元测试阶段的工具:junit,cppunit,sourcemonitor等。
第六章集成测试:在软件系统集成过程中所进行的测试,其主要目的是检查软件单元之间的接口是否正确。
它根据集成测试计划,一边将模块或其他软件单元组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。
集成测试的策略主要有自顶向下和自底向上两种。
系统测试:对已经集成好的软件系统进行彻底的测试;以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”;因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。
软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。
两者区别:1.测试方法集成测试:通常采用白盒测试和黑盒测试相结合的测试方法。
系统测试:通常使用黑盒测试方法。
2.测试内容集成测试:各个单元模块直接的接口,以及各个模块集成后所实现的功能。
系统测试:整个系统的功能和性能。
3.测试目的集成测试:发现单元之间接口的错误,以及发现集成后的软件同软件概要设计说明书不一致的地方,确保各个单元模块组合在一起后,能够达到软件概要设计说明的要求,协调一致地工作。
系统测试:通过与系统需求定义相比较,发现软件与系统定义不符合或矛盾的地方。
集成测试的第一步:模块划分是集成测试的第一步,也是最重要的工作之一。
模块划分的好坏直接影响集成测试工作量、进度和质量。
软件工程的2/8原则:测试中发现的80%的错误可能源于20%的模块。
一般将模块划分为3个等级:高危模块、一般模块和低危模块。
高危模块应该优先测试。
集成测试与开发:集成测试与软件开发过程中的概要设计相关,概要设计中关于整个系统的体系结构是集成测试用例设计的基础。
概要设计作为软件设计的骨架,可以清晰地表示出大型系统中的组件或子系统的层次构造,软件产品的层次、组件分布、子系统分布等信息为集成测试策略的选取提供了重要的参考依据。
集成测试可以检验所设计的软件构架是否存在错误和遗漏,以及是否存在二义性。
集成测试的层次:对于传统软件来说,按集成粒度不同,可以把集成测试分为3个层次,即:模块间集成测试,子系统内集成测试,子系统间集成测试对于面向对象的应用系统来说,按集成粒度不同,可以把集成测试分为2个层次:类内集成测试,类间集成测试集成测试的模式:非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。
渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。
驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。
驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。
桩程序/桩模块(stub),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。
桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口自顶向下法:从主控模块开始,按照软件的控制层次结构,以深度优先或广度优先的策略,逐步把各个模块集成在一起。
优点:能尽早地对程序的主要控制和决策机制进行检验,因此能够较早地发现错误。
缺点:在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能及时回送到上层模块,因此测试并不充分。
自底向上集成:从“原子”模块(即软件结构最低层的模块)开始组装测试,因测试到较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块。
优点:自底向上集成方法不用桩模块,测试用例的设计亦相对简单;缺点:程序最后一个模块加入时才具有整体形象。
它与自顶向下综合测试方法优缺点正好相反,因此在测试软件系统时,应根据软件的特点和工程的进度,选用适当的测试方法,有时混和使用两种方法更为有效,上层模块用自项向下的方法,下层模块用自底向上的方法。
大棒集成法:是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。
这种方法并不推荐在任何系统中使用,适合在规模较小的应用系统中使用。
三明治集成法:采用三明治方法的优点是:它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。
采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。
掌握回归测试、性能测试、压力测试的概念与各自的特点回归测试:当发现一些严重的缺陷需要修正时,会构造一个新的软件包,需要对新的软件包进行测试。
这个测试不仅验证被修复的软件缺陷是否真正被解决了,而且要保证以前所有运行正常的功能依旧保持正常。
性能测试:为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。
性能测试指标的来源:用户对各项指标提出的明确需求;如果用户没有提出性能指标则根据用户需求、测试设计人员的经验来设计各项测试指标。
(需求+经验)主要的性能指标:服务器的各项指标(CPU、内存占用率等)、后台数据库的各项指标、网络流量、响应时间系统负载:1.在线用户:通过浏览器访问登录系统后还没有退出的用户。
2.虚拟用户:模拟浏览器向web服务器发送请求并接收响应的一个进程或线程。
3.并发用户:同时在线并操作系统。
在性能测试中,一般同时模拟多个用户运行一套脚本,即执行相同操作。
4.用户并发数量:不一定等于在线用户数量,因为有些在线用户不进行操作。
5思考时间:浏览器在收到响应后提交下一个请求之间的间隔时间。
思考时间越短,服务器就承受更大的负载。
6.负载模式:1)一次性建立200个并发连接2)每秒逐渐增加10个连接,直至200个。
系统性能指标:1.请求响应时间:客户端浏览器向web服务器提交一个请求到收到响应之间的间隔时间2.事务响应时间:事务可能由一系列请求组成,这一系列请求完成处理所花费的时间。
3.数据吞吐量:单位时间内客户端和服务器之间网络上传输的数据量;(单位时间内web服务器成功处理的HTTP页面数量)两种负载类型:“Flat”测试:对于一次建立连接数的测试,应该取响应时间和吞吐量的平均值。
精确地获得这些值的唯一方法是一次加载所有的用户,然后在预定的时间段内持续运行。
Ramp-up测试: 用户是交错上升的(每几秒增加一些新用户)。
ramp-up测试不能产生精确和可重现的平均值,这是因为由于用户的增加是每次一部分,系统的负载在不断地变化。
其优点是,可以看出随着系统负载的改变,测量值是如何改变的,据此选择要运行的flat测试的范围。
压力测试:在一种需要反常(如长时间的峰值)数量、频率或资源的方式下,在软件负载达到极限前,执行可重复的负载测试,以检查程序对异常情况的抵抗能力,找出性能瓶颈。
从本质上来说,测试者是想要破坏程序。
第七章验收测试:在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。