软件是计算机程序、程序所用的数据 以及有关文档资料的集合,软件是入门开发出来的,开发者是程序员。大部分软件的产生就是为了方便我们而产生的。
软件分为2大类系统软件与应用软件。
在我的理解就是一个系统中的各个软件就是系统软件,系统软件相互合作构成系统。系统软件也是生成,准备和执行其他程序所需要的一姐文件和程序。如操作系统Windows,数据库SQL-Server,驱动程序(网卡,声卡)。java语言系统编译环境等。
软件测试的对象是什么?
软件的3要素
C/S与B/S架构
C/S: client- server:这种就是我们一定要安装一一个客户端才 能够用的软件,就叫C/S
缺点:每次更新,都需要更新服务端与客户端,比如说超市收银系统每次更新每台电脑都必须重
装客户端
B/S: browser-server: 只需要一个浏览器, 就可以访问服务的,就是B/S.
优点:只需要更新服务器就OK,不需要去更新浏览器。用户主动性比较高。比如说天猫、淘宝。
提问: APP是什么架构的呢? --移动端CS === M/S-- mobile-server
使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
问题:淘宝购买东西的过程,是软件测试么?
不是,因为我们不是可以去找问题而去使用
1)软件测试为了发现程序(软件)存在的代码或业务逻辑错误
判断软件测试能否可以实现正常的功能,比如登录注册功能,注册而不能等录那不是很尴尬。在不如是银行转账的功能,那出现问题就很严重了
2)软件测试为了提高用户的体验,检验产品是否符合用户需求
测试就是为了提交用户体验
3)软件测试为了为公司减少损失
按测试技术划分
黑盒测试,白盒测试、灰盒测试
被测试对象是否运行划分
动态测试、静态测试(文档检查、代码走查)
按不同的测试于段划分
手工测试(点工) .自动化测试(工具+代码) --高级
按测试包含的内容划分
功能测试,界面测试。安全测试,兼容性测试,易用性测试,性能测试
按测试阶段划分-阶段–流程
单元测试、集成测试、系统测试、验收测试,a测试,β测试
其他测试
回归测试、冒烟测试。探索性测试/自由测试(测试思维)
ps 以上测试,测试内容上有可能会从叠,只是叫法不同
黑盒测试不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说明书。 一般会有一个输入值,一个输入值,和期望值做比较。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。可以得到软件的实际使用效果报告。
如电视遥控器,就是一个标准的黑盒测试
主要是对代码级的测试,针对程序内部逻辑构,测试手段有语句覆盖,判定覆盖,条件覆盖,路径覆盖,条件,组合覆盖,对我们测试人员要求高需要看懂代码并且会写测试脚本
灰盒测试是介于白盒测试和黑盒测试之间的测试,灰盒测试既保证了黑盒的关注点,又掌控了白盒的内部结构,但不会对内部程序和运作做详细的了解,灰盒测试结合了白盒测试和黑盒测试的要素。接口测试算是灰盒测试
动态测试(dynamic testing),是指实际的运行被测软件,输入相应的测试数据,检查输出结果是否符合预期的过程 比如登录qq
静态测试(static testing),指的是不实际的执行被测软件,只是静态的检查程序代码、界面、或者文档中可能存在的错误。比如测试界面根本不需要执行直接看就行
执行测试的是人,根据自己主观意识测试,优点是可以灵活的改变测试操作及环境。
自动化测试是测试人员通过脚本驱动测试工具,自动的完成测试,还需人为的配合。另外还可以通过第三方的工具,对比被测对象进行测试。自动化测试的优点是可以高效的实现人工无法实现的操作(比如测试网站的并发量)
点点点咯,看输入和输出
眼睛看对文档看看和文档有没差别
一般有专业的人去做比如渗透工程师
fd抓包就是严重的安全问题
软件兼容性测试就是看看创造的软件是不是可以在其他环境可以完美运行,比如人常说的ie游览器兼容问题,
为什么要进行软件兼容性测试
用户使用的环境是不同的所以我们尽量去做,避免给用户带来不好的体验,比如玩着游戏忽然闪退换谁也不开心对吧
什么时候开始软件兼容性测试
当build已经相对稳定的时候就进行兼容性测试
易用性测试是指用户使用软件时是否感觉方便,比如是否最多点击鼠标三次就可以达到用户的目的。易用性和可用性存在一定的区别,可用性是指是否可以使用,而易用性是指是否方便使用。
比如密码错误的提示框
性能测试主要分类
负载测试、压力测试、并发测试、基准测试、稳定性测试、可恢复性测试。
后面详细讲解 对测试人员要求高
对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。当然,在具体的测试实现中,也可能对应的是多个程序文件中的一组函数。----------就是看某一个功能实现代码 对测试人员要求高
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。 [1]
实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。
实际举例待定
系统测试,英文是System Testing。是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。如安全测试是测试安全措施是否完善,能不能保证系统不受非法侵入。再例如,压力测试是测试系统在正常数据量以及超负荷量(如多个用户同时存取) 等情况下是否还能正常地工作。以上是百度百科的说法
在我的理解就是测试人员多方面进行测试不单单就看功能 ,还有看界面。压力安全
在我的印象中就是我们开发完成,他们在测试环境联调好了,他们说没问题 于是我们测试就进行全面回归验收测试避免在上线后出现bug产生不好的体验。
α测试(内测):Alpha测试模拟实际操作环境下验收测试,如删档内测试,软件只是初步完成的产品,bug可能较多,不会进行上线提供用户访问。比如小米系统内测版,王者荣耀内测
β测试(公测):Beta测试系统已经通过内部测试,大部分错误已经修复,即将正式发布,在多个真实环境下发布,如不删档公测。
对比α版本已经有了较大改进,但仍可能存在一些bug,需要大规模测试,例如DNF公司更新一个地图,提供公测免费下载,由专业游戏玩家进行游戏结果反馈,开发者再进行修复。
在现在的生产环境,软件迭代更新加快,所以bug出现了几率大大增加,每次开发修完一个bug我们都要对主要功能在进行测试一遍,毕竟开发修一个bug出现多个bug也不是不可能出现。特别注意的是验证当前bug的时候我们不要用相同的测试数据避免杀虫剂效应,在最后上线的时候我们要全部用例在回归测试一遍,尽量避免给用户带来不好的用户体验,所以软件发版的时候是我们最忙的时候
最初由硬件测试那里来的,在我们这就是主要功能都挂了就不需要继续下去了。
随机测试也称为探索测试。一般都是由有经验的测试人员自由发辉
为公司节约钱,测试和运维都是为了保证公司不受到损失,比如拼多多优惠价事件。这就是做为测试最大的作用,所以需要软件测试
·简单,有钱途,国内越来越重视测试人员
开发虽然可以简单自己测试,但是专业度绝对没我们高。而且测试很费时间。综合考虑公司是需要专业的测试人员的。
软件测试就是测试软件所有功能能否实现,软件文档是不是有问题,软件数据稳定性这些,只要和用户有关的我们都要测试
同上,不同分类叫法不同
黑盒 功能测试
白黑 代码级别
区别 需要测试人员掌握的技术程度不一样