软件测试理论基础

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.边界值测试方法的优缺点:

长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。

不过边界值分析法与等价类划分法一样,没有考虑输入之间的组合情况,因此需要进一步结合其他测试用例设计方法。

啦啦啦,小姐姐的分享!

时间: 2024-10-16 03:00:04

软件测试理论基础的相关文章

软件测试理论基础总结

1.什么是软件? 程序+文档: 程序=源程序+目标程序: 文档=需求规格说明书+概要设计+详细文档+用户手册+...; 2.软件测试的产生.意义和概念? 2-1.软件测试的产生? 软件规模越来越大:开发人员和用户之间的矛盾: 2-2.软件测试的意义? 克服软件危机:发现程序中的bug:为了程序更好的交付: 2-3.软件测试的定义? 为了发现错误而执行程序或系统的过程: 或:使用人工或自动的手段,来运行或检测系统的过程,其目的在于检验它是否满足规定的需求弄清预期结果和实际结果的差距: 2-4.软件

软件测试理论基础总结(二)

1.软件开发的生命周期? 软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间: 2.软件生命周期的模型? ①瀑布模型 特点:从上一项活动接受本项活动的工作对象,作为输入:利用这一输入实施本项活动应完成的内容:给出本项活动的工作成果,作为输出传给 下一项活动: 瀑布模型的优缺点: ②螺旋模型 特点:瀑布模型(系统化)+快速原型(迭代过程)+风险分析: 一个螺旋式周期: 确定目标,选择方案,选定完成目标的策略: 风险角度分析该策略: 启动一个开发阶段: 评价前一步的结果,计划下一轮的工作

软件测试理论基础总结(七) --21个故障模型

1.输入非法数据 1.1.缺陷产生原因 开发人员通常用以下3种技术来处理非法输入: --防止不正确的输入进入被测软件.过滤掉不正确的输入,只允许合法输入通过界面: --输入了不正确的数据后,软件提示错误信息,拒绝不正确的输入: --允许不正确的输入进入系统并进行处理,软件失效时调用异常处理程序,显示一些错误信息: 可见开发人员除了编写主要的功能代码外,还必须编写对非法输入的检查代码,这些代码经常被遗忘,或者编写完这部分代码后,开发人员很少认真检查,导致处理非法输入经常出错: 1.2.如何发现这类

软件测试人员需不需要懂代码

无论是刚入测试行业的萌新,还是已经在测试行业闯荡了两三年的小司机们,都会琢磨一个问题:如果要持续发展下去,我要不要懂代码? 在软件测试初级阶段,不需要编程能力.但是任何一个职业,都会追求长期发展. 让我们来看看软件测试的几种职业生涯历程(转行的就另说了). 1.技术 + 管理方向:一枚萌新 - >技术阶段 ->测试经理.主管这样的管理岗 -------编程能力 + 管理能力俱在 2.纯技术方向 :一枚萌新 ->功能测试 ->自动化/性能/安全 - >测试开发/性能.安全测试专

学习第一天——感想、理念和目标

今天是正式学习的第一天. 先回顾一下我和软件的历史吧. 早在初中对,学校组织特长班,参加了C语言特长班的同学在班级活动上用C语言写了一个关于随机抽取同学学号的程序.同样是在初中时期,接触到了QQ等聊天软件,以及各种电脑游戏,从那时起就开始对计算机软件方面开始感兴趣. 后来高考结束,选择学校和专业,义无反顾的选择了山东电子职业技术学院的软件技术专业,然而很不幸被分到了软件外包班,后来调剂调剂到了软件测试班,从而接触到了C.C++.C#.Java各种编程语言和数据库,后来由于学校第一年开设软件测试专

mark一下岗位

一.中国移动杭州研发中心--测试开发工程师 https://campusresume.zhaopin.com/resume/14375/1   待投递 岗位描述:作为产品的质量守护者,在全面理解被测产品的基础上,运用自身技术特长.从用户体验层面和代码层面发现.定位产品质量缺陷并推动修复,保证产品的高质量及良好用户体验.同时你也将运用各类自动化测试工具.通过设计.开发.执行.维护自动化测试,提高团队的测试能力和测试效率.岗位要求:2019年毕业本科及以上学历,计算机软件相关专业1.掌握软件工程基础

软件测试工程师理论基础(一)

软件工程师理论基础和如何写测试用例(以登录界面和QQ个人聊天界面为例) 软件测试 定义:人工或自动化 运行或测试 过程 测试用例 目标: 1.确保软件质量 2.提供信息 3.保证开发过程 对象:程序+所有过程文档(可行性报告.项目实施计划.软件需求说明书.系统功能说明书.概要设计说明书.详细设计说明书等) 原则: 1.尽早.不断 2.pareto原则 3.不是所有的软件错误都是能修复的,但是还是要提交所有bug错误的文档 4.由小到大 5.避免开发人员自己测试自己的代码 6.追溯至客户需求 7.

《软件测试》总结

<软件测试>Ron Patton著. 这本书很全面地介绍了软件测试的理论基础知识,也就是看了这本书对软件测试有了一定的了解,帮助我找到了一份关于软件测试的工作.在看这本过程中也有一些有疑问的地方,这里主要是针对自学软件测试以来对软件测试的理解的一点总结,并把自己不懂的地方梳理一遍. 一.软件测试工程师究竟要做些什么? 这本书中给到一个相对完整的答案:软件测试员的目标就是尽可能早地找出软件缺陷,并确保其得以修复. 在面试过程中,面试官曾经告诉过我,并不是为了找bug,而是协助开发人员完善产品.有

读:一个女孩从软件测试工程师到主管的成长历程 文章有感

今天我从网上读到了一篇文章,是一个女孩分享了她的成功经历:从一名软件测试工程师成为一名主管的奋斗历程.读了之后颇有感悟,分享上来希望与大家共享,也希望能给大家带来一些希望和激励.她从前是学经济贸易的,由于对测试行业的强烈兴趣,毕业后在北京学校学习软件测试工程专业.工作不到一年的时间里,她已经从测试员升职到测试主管了.对于学习.工作,她积累了许多点点滴滴的经验,所以她将这一年的经历写下来与大家分享. 原文章: 走入测试行业:兴趣.知识   说实话,我做测试工作的时间不是很长,学完软件测试工程师的课