软件测试理论基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试理论基础相关的知识,希望对你有一定的参考价值。
1.什么是软件测试?其目的是?
软件测试的定义为:使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差异。
该定义明确提出了软件测试以检验是否满足需求为目标。
软件测试的目的在于发现错误;一个好的测试用例在于发现从前未发现的错误;一个成功的测试时发现了从前未发现的错误的测试。
所以更为合适的的定义是:测试时为发现错误而执行程序的过程。
2.什么是软件缺陷?
满足下列五个规则之一才称为软件缺陷:
软件未达到产品说明书标明的功能
软件出现了产品说明书指明不会出现的错误
软件功能超出产品说明书指明的范围
软件未达到产品说明书虽未指出但应该达到的目标
软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好
3.什么是黑盒测试?黑盒测试方法都包括哪些?
黑盒测试意味着测试要在软件的接口处进行,是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫做功能测试或者数据驱动测试。
黑盒测试方法包括:等价类划分、边界值分析、因果图分析、错误推测法、功能图分析等。
4.什么是白盒测试?白盒测试方法包括哪些?
白盒测试是对软件的过程性细节做细致的检查。是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又成为结构测试或逻辑驱动测试。
白盒测试方法包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等。
5.软件测试策略包括哪些?
一般讲软件测试过程分为:单元测试、集成测试、系统测试、验收测试四个大的阶段。
6.静态测试和动态测试的概念。
答: 静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配参数、不适当循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
动态方法是指通过运行被测程序, 检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法有三部分组成:构造测试实例、执行程序、分许程序的输出结果。所谓软件的饿动态测试,就是通过运行软件来检验软件的动态行为和运行结果的正确性。目前,动态测试也是公司的测试工作的主要方式。根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为:单元测试、集成测试、系统测试、验收测试、回归测试。
7.什么是Alpha和Beta测试?
Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现在错误和使用中遇到的问题。总之,Alpha测试是在受控的环境中进行的。
Beta测试由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不同,开发者通常在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户Beta测试过程中遇到的一切问题(真实在或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。
8.什么是冒烟测试?
冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。
9.什么是功能测试?
Functional testing (功能测试),也称为behavioral testing(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。
功能测试也叫黑盒子测试或数据驱动测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码.一般从软件产品的界面、架构出发,按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。
10.什么是性能测试?
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
11.什么是测试用例?
测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
测试用例目前没有经典的定义,比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方法、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
测试用例是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是讲测试具体量化的方法之一。
12.等价类有几种,含义分别是什么?
等价类分为有效等价类和无效等价类:
有效等价类:对程序的规格说明有意义的,合理的输入数据所构成的集合,利用有效等价类可验证程序是否实现了规格说明中的功能和性能。
无效等价类是那些对程序的规格说明不合理或者无意义的数据所构成的,为了验证程序做其不应作的事情。
13.等价类划分的优缺点:
优点:考虑了单个数据域的各类情况,避免盲目或随机的选取输入数据的不完整性和不稳定性,同时可有效控制测试设计的数量。
缺点:对组合情况考虑不足,同时等价类划分基于等价类中的输入都能产生相同的效果,在很多情况下用例选择不当会产生问题(如边界)。
14.等价划分类的原则:
(1)在输入条件规定的取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类
(2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确力一个有效等价类和一个无效等价类
(3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
(4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
(5)在规定了输入数据必须遵守的规则的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
(6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步划分为更小的等价类。
15.边界值测试方法的优缺点:
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
不过边界值分析法与等价类划分法一样,没有考虑输入之间的组合情况,因此需要进一步结合其他测试用例设计方法。
啦啦啦,小姐姐的分享!
以上是关于软件测试理论基础的主要内容,如果未能解决你的问题,请参考以下文章