在规定的条件下对程序进行操做,以发现错误;也是对软件质量进行评估的一个过程。安全
软件知足规定或潜在用户需求的能力。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及全部专业开发的软件都应具备的和隐含特征相一致的程度。工具
主要工做是经过预防,检查与改进来保证软件质量。它所关注的是软件质量的检查与测量。着眼软件开发活动中的过程、步骤及产物,而不是对软件进行剖析进而找出问题。性能
测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程当中的产物——开发文档和源代码进行走查,运行,以找出问题,报告质量。测试人员也必须假设软件存在问题,因此所作的操做都是为了找出更多的问题,而不只仅验证每一件事是正确的。单元测试
根据测试定义,测试贯穿于整个软件生命周期中。在开发的不一样阶段,须要测试不一样的内容。包括文档,源代码,数据等。测试
功能测试:对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。设计
黑盒测试:把测试对象看作一个黑盒子,测试人员彻底不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。所以黑盒测试又叫功能测试或数据驱动测试。
黑盒测试方法包括:等价类划分、边界值分析、因果图分析、错误推测法、功能图分析等。指针
白盒测试:是对软件的过程性细节作细致的检查。是把测试对象看作一个打开的盒子,它容许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序全部逻辑路径进行测试。经过在不一样点检查程序状态,肯定实际状态是否与预期的状态一致。所以白盒测试又称为结构测试或逻辑驱动测试。
白盒测试方法包括:语句覆盖、断定覆盖、条件覆盖、断定/条件覆盖、条件组合覆盖、路径覆盖等。对象
单元测试:是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。一个软件单元的正确性是相对于该单元的规约(详细设计)而言的。所以,单元测试以被测试单位的规约为基准。
单元测试方法包括:控制流测试、数据流测试、排错测试、分域测试等。递归
集成测试:是在软件系统集成过程当中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其余软件单位组合成愈来愈大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。接口
系统测试:是对已经集成好的软件系统进行完全的测试,以验证软件系统的正确性和性能等知足其规约所指定的要求,检查软件的行为和输出是否正确并不是一项简单的任务,它被称为测试的“先知者问题”。所以,系统测试应该按照测试计划进行,其输入、输出和其余动态运行行为应该与软件规约进行对比。软件系统测试方法不少,主要有功能测试、性能测试、随机测试等。
回归测试:是指修改了旧代码后,从新进行测试以确认修改没有引入新的错误或致使其余代码产生错误,回归测试的困难在于很差肯定哪些内容应当被从新测试。
验收测试:由客户或最终用户执行,旨在向软件的购买者展现该软件系统知足其用户的需求。它的测试数据一般是系统测试的测试数据的子集。所不一样的是,验收测试经常有软件系统的购买者表明在现场,甚至是在软件安装使用的现场。这是软件在投入使用以前的最后测试。
Alpha测试:由用户在开发者的场所进行,而且在开发者对用户的“指导”下进行测试。开发者负责记录发如今错误和使用中遇到的问题。总之,Alpha测试是在受控的环境中进行的。
Beta测试:由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不一样,开发者一般在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户Beta测试过程当中遇到的一切问题(真实在或想像的),而且按期把这些问题报告给开发者。接收到在Beta测试期间报告的问题以后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。
冒烟测试:能够根据其名称理解为该种测试耗时短,仅用一袋烟功夫足够了;实际上是对软件基本的功能进行测试,测试的对象是每个新编译的须要正式测试的软件版本,目的是确认软件基本的功能正常,保证软件系统能跑的起来,能够进行后续的正式测试工做。
随机测试:主要是根据测试者的经验对软件进行功能和性能抽查。它是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
动态测试:是指经过运行被测程序,检查运行结果与预期结果的差别,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。所谓软件的动态测试,就是经过运行软件来检验软件的动态行为和运行结果的正确性。目前,动态测试也是公司的测试工做的主要方式。
静态测试:是指不运行被测程序自己,仅经过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序作结构分析、流程图分析、符号执行来找错。静态方法经过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不容许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
UI测试:指测试用户界面的风格是否知足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操做是否友好等;用户界面(UI)测试用于核实用户与软件之间的交互。UI测试的目标是确保用户界面会经过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI测试还可确保UI中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操做性测试。UI测试比较主观,与测试人员的喜爱有关。
自动化测试:利用软件测试工具自动实现所有或部分测试,它是软件测试的一个重要组成部分,能完成许多手工测试没法实现或难以实现的测试;正确、合理的实施自动测试,可以快速、全面的对软件进行测试,从而提升软件质量,节省经费,缩短软件发布周期。
性能测试:是经过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,二者能够结合进行。经过负载测试,肯定在各类工做负载下系统的性能,目标是测试当负载逐渐增长时,系统各项性能指标的变化状况。压力测试是经过肯定一个系统的瓶颈或者不能接收的性能点,来得到系统能提供的最大服务级别的测试。