软件测试相关概念

什么叫软件测试

软件测试就是测试产品没有错误,同时又证明软件是可以正确运行的

测试和调试的区别

调试一般都在开发期间 ,测试是伴随着整个软件的生命周期, 调试是发现程序中问题并且解决问题, 测试是发现程序中的缺陷

软件测试的目的和原则

目的:验证软件有没有问题
原则:以客户为中心, 遵循软件测试的规范,标准和要求

需求

满足用户期望或者文档条件和权能.
用户需求:比较粗略, 不能帮助开发人员进行开发也不能帮助测试人员写测试用例
软件需求:可以帮助开发人员写代码, 也可以帮助测试人员写测试用例, 较为详细, 通常需要从用户需求中提取.

BUG的定义

当且仅当规格说明书是存在的时候, 此时程序与规格说明书之间是不匹配的, 此时就说明软件是存在BUG的. 当不存在规格说明书的时候, 此时就以用户需求为标准, 如果软件和用户期望的结果不一致, 此时就说明软件是存在BUG的

测试用例

测试用例就是为了实施测试向被测系统提供的一个集合, 包括测试环境, 操作步骤, 测试数据, 预期结果等等

开发模型和测试模型

瀑布模型

start ->需求分析 ->计划 ->设计 ->编码 -> 测试 -> end
瀑布模型使用于一些比较稳定的产品, 发现较小的产品
但是不足之处就是将测试环节一直放到后面, 发现往往是到达后期才会出现, 因此会失去纠错机会

螺旋模型

使用于一些风险较大的产品开发

敏捷中的测试

往往对文档的依赖较小

测试中的V模型

用户需求->需求分析与设计-> 概要设计->详细设计->编码->单元测试->集成测试->系统测试->验收测试
缺点:将测试人员的工作一直推到最后面

测试中的W模型

用户需求->需求分析与设计->概要设计->详细设计->编码->集成->实施->交付
验收测试准备->系统测试准备->集成测试准备->单元测试准备->单元测试->集成测试->系统测试->验收测试
优点:测试和开发同步进行, 测试人员提早进入项目

软件测试生命周期

需求分析->测试计划->测试设计->测试开发->测试执行->测试评估

BUG的级别

崩溃->严重->一般->次要

BUG的生命周期

从open到close
这里写图片描述

测试用例基本要素

测试用例是为了实施测试而向被测试系统提供的一组集合, 包括测试环境, 操作步骤, 测试数据, 预期结果等

测试用例设计方法

等价类划分法, 边界值测试法, 正交表,场景设计

水杯的测试用例编写

这里写图片描述

公交卡的测试用例编写

这里写图片描述

测试分类

单元测试

对软件的单个模块进行测试
测试阶段:编码前或者编码后
测试对象:单个模块
测试依据:代码注释和详细设计文档
测试人员:白盒测试工程师或者开发工程师
测试方法:白盒测试
测试内容:模块接口测试, 局部数据测试, 路经测试,错误处理测试, 边界测试

集成测试

对模块与模块之间进行测试, 同时对相关硬件之间的测试
测试阶段:单元测试之后
测试对象:模块与模块之间的接口
测试人员:白盒测试工程师, 开发工程师
测试依据:单元测试结果和概要设计文档
测试方法:白盒测试和黑盒测试
测试内容:模块之间数据传输, 模块之间功能冲突, 模块组装功能正确性, 全局数据结构

系统测试

对软件的功能,性能以及软件运行的软硬件进行测试, 包括冒烟测试和回归测试. 一般顺序是冒烟测试, 系统测试, 回归测试
测试阶段:集成测试之后
测试对象:整个系统(软硬件)
测试人员:黑盒测试工程师
测试方法:黑盒测试
测试内容:功能, 界面, 可靠性, 易用性, 性能, 易用性, 兼容性, 安全性
测试依据:需求规格说明书

回归测试

当产品经过更改之后测试人员拿到产品的时候此时需要对产品进行再次测试,以确保修改后的内容没有影响到其他功能模块, 以及修改后的模块不会引起新的错误

冒烟测试

每一个新编译需要经过正式测试的软件版本 确保软件基本功能正常, 可以进行正式测试. 其中冒烟测试决定软件是否进入测试阶段

验收测试

软件部署的最后一个环节. 确保软件准备就绪, 按照产品规格说明书, 任务书, 符合购者的产品最初需求

按照测试组织

Alpha Testing:测试人员和开发人员不参与, 除测试和开发之外都可以进行测试, 测试环境是公司预发布环境
Bate Testing:测试人员和开发人员会参与, 测试环境实在客户环境中进行测试
第三方测试:外包测试

按照是否运行测试

静态测试:被测试程序不运行
动态测试:被测试程序运行

按照是否进行手工测试

手工测试:功能测试, 缺点是测试效率低, 但是可以进行探索性测试以及发散思维类测试
自动化测试:让机器代替手工进行软件测试
自动化测试步骤:
完成功能测试
提取手工测试用例, 将其转换为自动化测试用例
通过工具, 代码实现自动化的输入, 自动检测输出结果是否符合预期
自总生成测试报告
程序改进, 脚本优化

按照是否查看代码

白盒测试:查看原代码
黑盒测试:不查看源代码
灰盒测试:白盒测试+黑盒测试

按照地域测试

国际化测试以及本地化测试

按照对象测试划分

界面测试

界面是否美观

文档测试

测试需求文档的正确性, 文档的完整性, 文档的一致性, 文档的易用性, 文档术语

兼容性测试

软件之间能否相互之间正常运行, 软件和硬件之间能否正常运行
产品的开发平台测试, 浏览器测试,软件自身能否向前或者向后兼容,与其他软件兼容,数据兼容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/383888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 线程信号量同步

https://www.cnblogs.com/jiqingwu/p/linux_semaphore_example.html 信号量和互斥锁(mutex)的区别:互斥锁只允许一个线程进入临界区,而信号量允许多个线程同时进入临界区。 不多做解释,要使用信号量同步,需要包含头文件semaphore.…

本原勾股数组

勾股数我们都很熟悉,a2b2c2,可是如何快速找到所有的勾股数组呢? 本原勾股数组a2b2c2性质: 1. a,b奇偶不同,c一定是奇数 2. 若b为偶数,c-b和cb一定是完全平方数 3. 设t>s>1,且均为奇数,则…

C++静态成员函数访问非静态成员的几种方法

https://www.cnblogs.com/rickyk/p/4238380.html 大家都知道C中类的成员函数默认都提供了this指针,在非静态成员函数中当你调用函数的时候,编译器都会“自动”帮你把这个this指针加到函数形参里去。当然在C灵活性下面,类还具备了静态成员和静…

费马大定理

当n>3时方程 xnynzn没有正整数解 结论很简洁,刚才看了一下证明的历史,我勒个去。。。。

类中的静态成员函数访问非静态成员变量

http://blog.csdn.net/u011857683/article/details/52294353 1.思路: 静态成员函数属于类(通过类访问,调用函数时没有提供this指针), 非静态成员函数属于实例(通过对象访问)(默认都提供了this指针&#xf…

Pollar Rho算法

原本是想把这个算法搞懂的,然后在网上看了又看,觉得,还是有时间再来看吧,我错了。 看到了一个大佬的博客,顺带收集一下板子 这个板子可以求大数的最大的因子。 #define LL long long bool IsPrime(LL);//返回素性测…

小知识点总结

用户输入一个url之后到整个页面返回给客户这个过程都经历了一些什么 首先url是为了让人记忆方便的,计算机在进行网络传输的过程中只能通过ip地址找到对应的主机,所以当输入一个ip地址的时候,此时就需要找对应的url,首先从浏览器中取查找ip地址,再到系统中去查找,再到域名解析服…

C++学习之普通函数指针与成员函数指针

http://blog.csdn.net/lisonglisonglisong/article/details/38353863 函数指针(function pointer)是通过指向函数的指针间接调用函数。相信很多人对指向一般函数的函数指针使用的比较多,而对指向类成员函数的函数指针则比较陌生。我最近也被问…

HDU2683——欧拉完全数

题目要求符合等式的数,我们首先要做的就是分析这个数: 对于这个等式,我们可能什么都看不出来,左边很难化简的样子,所以我们就要想到通过变化怎么样把右边化成和左边形式差不多的样子。结合组合数我们想到二项式定理&am…

BZOJ-2005能量采集-数论函数

很入门的数论函数题目。我还是wa了一发(爆long long 了) 对于每个位置x,y,在他们和能量采集器中间的植物为gcd(x,y)-1,【在他们之间说明斜率相同,而和他们斜率相同的就是所有gcd(x/gcd(x,y),y/gcd(x,y))1的并且比他们小…

网络五层模型

TCP/IP五层模型 应用层: HTTP,HTTPS协议,其中HTTP没有对数据进行加密操作,但是HTTPS对数据进行了加密操作 其中HTTP端口号一般是80/8080等等,HTTPS端口号是443,SSH端口号一般是22,ftp是21 HTTP协议报头: 首行:请求方法,url,协议版本 请求报头: HOST:主机 Connection:长连接…

C++的静态成员函数指针

http://blog.csdn.net/sky453589103/article/details/47276789 先简单的说说非静态的成员函数。非静态成员函数指针的类型:类的非静态成员是和类的对象相关的。也就是说,要通过类的对象来访问变量。成员函数的类型定义为:typedef void (A::*p…

从一个字符串中删除另一个字符串中出现过的字符

http://blog.csdn.net/walkerkalr/article/details/39001155 定义一个函数,输入两个字符串,从第一个字符串中删除在第二个中出现过的所偶字符串。例如从第一个字符串"We are students."中删除第二个字符中“auiou”中出现过的字符得到的结果是…

SPOJ-VLATTICE Visible Lattice Points-莫比乌斯反演

需要将问题分解一下。 我们需要求的是这个立方体从(0,0,0)能看到的点的个数。可是在三个含有(0,0,0)的面上我们没有办法和其他的一起进行分析(因为含有坐标是0,而我们的数论工具都是从1开始的),所以我们可以将那三个面分开考虑&a…

进程的通信

管道 什么是管道 由于进程之间是相互独立的,因此在进程与进程之间进行相互联系的时候,此时就需要采用一种机制,通过管道的方式将进程一个进程的执行数据交给另外一个进程,此时就可以以通过管道来实现 匿名管道和命名管道 匿名管道 创建一个匿名管道的方式是pipe(int pipe[…

获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf

http://blog.csdn.net/windeal3203/article/details/39320605 Linux 下 可以使用ioctl()函数 以及 结构体 struct ifreq 结构体struct ifconf来获取网络接口的各种信息。 ioctl 首先看ioctl()用法ioctl()原型如下&#xff1a;#include <sys/ioctl.h>int ioctl(int fd, i…

欧拉降幂

我们记f(n)为n的欧拉函数值&#xff0c;则 当B>f©时&#xff0c;AB%CAB%f©f©%C&#xff0c;这里A,C可能不互质。 很好用&#xff0c;证明很复杂&#xff0c;等有时间回来学习一下。

房多多面试总结

测试一个ATM机 功能上 取钱     正常         要取的钱的面值是否支持ATM机服务         要取的钱的数目是否小于等于存的钱的数目         要取的钱的数目大于存钱的数目     异常         取钱的时候操作出现异常&#xff0c;导致…

BZOJ3884上帝与集合的正确用法-欧拉函数

刚开始我想的是欧拉降幂&#xff0c;可是觉得复杂度还是挺高的就去找了一下题解。 思路大方向没有问题&#xff0c;仍然是使用欧拉函数降低指数然后递归处理。但是不是简单的使用欧拉降幂而是应该对模数p稍微处理一下。因为底数已经确定为2&#xff0c;所以我们可以将p写成p2k…

比较ArrayList和数组的区别

区别1:创建时的区别 一般数组在创建的时候都需要指定数组的大小&#xff0c;但是ArrayList不需要指定数组的大小 //创建一个ArrayList对象 ArrayList<String> myList new ArrayList<String>(); //创建一个数组 String [] myList new String[2];区别2&#xff1…