学习软件测试:软件测试是对程序能够按预期运行建立起一种信心。

法门扫地僧原创作品:转载请注明出处
测试:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。

软件测试=程序测试??       不对。
软件测试。(软件概要设计,软件详细设计,软件运行环境,软件测试都行,软件需求,软件源代码,可运行程序。)

软件测试的五大要求和两个目标。
质量,人员,测试覆盖率,测试效率,资源,流程,技术。


软件测试所遵循的原则;
1.测试显示缺陷的存在,但不能证明系统不存在缺陷、
2.穷尽测试是不可能的,应设置终止条件。
3.测试应该尽早进行、
4.缺陷具备群集特性。、
5.测试的杀虫剂悖论
6.测试的二八原则、
7.测试活动依赖于测试背景

软件测试的分类

测试的不同阶段,测试时的手段进行区分。测试类型

按照测试阶段来分类
单元测试:

对软件中的最小可测试单元进行检查和验证、
针对代码的测试。
尽可能保证各个测试用例是相互独立的。
一般由代码的开发人员来实施。用以检验所开发的代码能符合自己的设计要求。

单元测试的好处
能尽早发现缺陷。前期阶段。
有利于重构。
简化集成。
文档。尽可能减少我们的文档。
用于设计。

缺点:不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误,。
每一行代码,一般需要3-5行测试代码才能完成单元测试。所以存在投入和产出在一个平衡点。

单元测试框架。 Xunitz , cppunit ,phpunit。

继承测试:是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块,子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。

1. Big Bang
2. 自顶向下、
3. 自顶向上、(最底层的模块测试)
4. 核心系统集成。(测试核心的模块)
5. 高频集成。、

集成测试和单元测试的区别

1. 测试的对象不同。
2. 测试的依据不同。
3. 测试的方法不同。

系统测试
是讲经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常的运行,。

关注点。
关注系统本身的使用
关注系统与其他相关系统间的连通
关注系统在不同使用压力下的表现,
关注系统在真实使用环境下的表现。

系统测试和集成测试。
测试对象。
测试时间。
测试内容。
测试角度。

验收测试。
定义:也称交付测试,针对用户需求,业务流程的正式的测试,确定系统是否满足验收标准,由用户,客户或者其他授权机构决定是否接受系统。

验收测试,(用户验收测试,运行验收测试,合同和规范验收测试)

Alpha测试。用户执行,场所和环境是开发者提供的
Beta 测试。用户端测试。
——————
按照测试手段来分类

黑盒测试,白盒测试
静态测试,动态测试,
手工测试,自动化测试

黑盒测试,就是在测试中把测试当成不能打开的盒子,。通过相关暴露出的接口来测试,

程序能否正常的输入和输出,。更多的是从用户的角度来说的。
优点:容易实施。不需要关注内部的实现。
更贴近用户的使用角度。

缺点,测试覆盖率较低,一般只能覆盖到代码量的不到40%
针对黑盒的自动化测试,复用率较低,维护成本较高。

黑盒测试主要用来测试什么
1.重点书关注有什么不正确或者遗漏的功能
2.在接口上,输入是否能正确的接收。能否输出正确的结果,。
3.是否有数据结构错误或外部信息(例如数据文件)访问错误,。
4.性能上是否能满足要求。、

黑盒测试的主要设计方法

白盒测试用逻辑的覆盖率来测试的.

逻辑单位:语句,条件,条件组合,分支,路径./

白盒测试优点:
1.迫使测试人员去仔细思考软件的实现,理解原理,.
2.可以检测代码中的每条分支和路径.
3.解释隐藏在代码中的错误,.
4.对代码的测试比较彻底./

缺点:昂贵..较高的覆盖率..工作量比较大,成本高.
无法检测代码中以后的路径和数据敏感性错误,.
不能直接验证需求的正确性./

白盒测试的主要测试方法.

灰盒测试:介于黑,白盒测试之间的.

静态测试.
静态测试是指无序执行被测程序,而是通过评审软件文档或代码.度量程序静态复杂度,检查软件是否符合编程的标准,借以发现编写的程序的不足之处,减少错误出现的概率

静态测试的方式,互审 ..走查,会议

动态测试.
动态测试就是通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率/正确率,

手工测试:由专门的测试人员从用户视觉来验证软件是否满足设计要求的行为,更适用针对深度的测试和强调主观判断的测试.
众包测试,探索式测试.

自动化测试,,使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查.

手工测试的优点:易发现缺陷,容易实施.创造性,灵活性…(缺点,覆盖量化难,重复测试效率低,不一致性,可靠性低,人力资源依赖)
自动化测试(高效率,速度快,高复用性,覆盖率容易度量,准备,可靠,不止疲惫.缺点,机械,发现缺陷率低,一次性投入较大/)

时间: 2024-10-18 23:56:57

学习软件测试:软件测试是对程序能够按预期运行建立起一种信心。的相关文章

【软件测试学习】 软件测试初步认识(一)

什么是软件测试 软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程. 换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程. 为什么进行软件测试 确保软件完成了它所承诺或公布的功能. 确保软件满足性能和效率的要求. 确保软件是健壮的.适应用户的环境. 提早预防.尽早发现.及时跟踪软件缺陷,满足产品发布需求. 软件测试对象 1.软件需求(ps:理解软件需求,对于用户测试人员TE比较重要) 2.软件概要设计 3.软件源代码 4.

DirectX11 学习笔记1 - 第一个程序

为了加快学习速度,和使程序更加容易理解.  我把sampler tutorial里面的一个例子 的固定代码和经常改动的代码经过简单的类的封装了一下. 以后学习的时候就可以只在另一个文件写render渲染代码和fx着色器代码了 D3DBase.h  基本框架代码 #include <windows.h> #include <d3d11.h> #include <d3dx11.h> #include <d3dcompiler.h> #include <xn

Linux 程序设计学习笔记----进程管理与程序开发(下)

转载请注明出处:http://blog.csdn.net/suool/article/details/38419983,谢谢! 进程管理及其控制 创建进程 fork()函数 函数说明具体参见:http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html 返回值:Upon successful completion, fork() shall return 0 to the child process and shall re

cocos2d-x学习日志(18) --程序是如何开始运行与结束?

问题的由来 怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个HelloWorld,然后在 HelloWorld 里面写相关逻辑代码,添加我们的层.精灵等 ~ 我们并不一定需要知道 Cocos2d-x 是如何运行或者在各种平台之上运行,也不用知道 Cocos2d-x 的游戏是如何运行起来的,它又是如何渲染界面的 ~~~ 两个入口 程序入口的概念是相对的,AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同

C++ Primer 学习笔记_89_用于大型程序的工具 --异常处理[续2]

用于大型程序的工具 --异常处理[续2] 八.自动资源释放 考虑下面函数: void f() { vector<string> v; string s; while (cin >> s) { v.push_back(s); } string *p = new string[v.size()]; //... delete p; } 在正常情况下,数组和vector都在退出函数之前被撤销,函数中最后一个语句释放数组,在函数结束时自动撤销vector. 但是,如果在函数内部发生异常,则将

C++ Primer 学习笔记_90_用于大型程序的工具 --异常处理[续3]

用于大型程序的工具 --异常处理[续3] 九.auto_ptr类[接上] 5.auto_ptr对象的复制和赋值是破坏性操作 auto_ptr和内置指针对待复制和赋值有非常关键的区别.当复制auto_ptr对象或者将它的值赋给其他auto_ptr对象的时候,将基础对象的所有权从原来的auto_ptr对象转给副本,原来的auto_ptr对象重置为未绑定状态. auto_ptr<string> strPtr1(new string("HELLO!")); auto_ptr<

C++ Primer 学习笔记_93_用于大型程序的工具 --命名空间[续2]

用于大型程序的工具 --命名空间[续2] 五.类.命名空间和作用域 名字的可见性穿过任意嵌套作用域,直到引入名字的块的末尾. 对命名空间内部使用的名字的查找遵循常规C++查找规则:当查找名字的时候,通过外围作用域外查找.对命名空间内部使用的名字而言,外围作用域可能是一个或多个嵌套的命名空间,最终以全包围的全局命名空间结束.只考虑已经在使用点之前声明的名字,而该使用仍在开放的块中: namespace A { int i; namespace B { int i; int j; int f1()

C++ Primer 学习笔记_94_用于大型程序的工具 --命名空间[续3]

用于大型程序的工具 --命名空间[续3] 六.重载与命名空间 正如我们所见,每个命名空间维持自己的作用域,因此,作为两个不同命名空间的成员的函数不能互相重载.但是,给定命名空间可以包含一组重载函数成员. 1.候选函数与命名空间 命名空间对函数匹配有两个影响.一个影响是明显的:using声明或using 指示可以将函数加到候选集合.另一个影响则微妙得多. 正如前节所见,有一个或多个类类型形参的函数的名字查找包括定义每个形参类型的命名空间.这个规则还影响怎样确定候选集合,为找候选函数而查找定义形参类

我的Android 4 学习系列之创建应用程序和Activity:Manifest、Application、Activity

目录 介绍Android应用程序组件,以及使用这些组件构建的各种Android应用程序 Android应用程序的生命周期 如何创建应用程序Manifest 如何使用外部资源提供对位置.语言和硬件配置的支持 如何实现和使用自己的Application类 如何创建新的Activity 理解Activity的状态转换和生命周期 Android应用程序的组成部分 Android应用程序是由松散耦合的组件构成的,并使用应用程序Manifest绑定到一起. Manifest描述了每一个组件以及他们之间的交互