软件测试定义 分类

软件测试的定义&分类
 
1.软件的定义:软件=计算机程序+程序所用的数据+有关文档资料(不可或缺,是计算机的灵魂)
软件分为1.系统软件:是生成,准备和执行其他程序所需要的一组文件和程序(为应用软件的运行提     供系统运行环境的)比如Windows,Linx系统,SQL-Server ,Java,Python,C++,等高级编程语言
               2.应用软件:计算机用户为了解决某些具体问题,具体的需求而购买,开发或研制的各种程序和软件包,如各种app,聊天的qq,微信,购物的淘宝,听音乐的网易云音乐,记笔记的有道云笔记等
 
2.软件测试的定义:使用人工或自动手段来运行或测试某个系统的过程,目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
    1)为了发现程序存在的代码错误或业务逻辑错误(业务流程,比如浏览商品-下单-支付这样的一个过 程)
    2)检验产品是否符合用户需求
    3)不仅仅是为了发现错误
    4)为了提高用户体验(用户体验不好会导致用户大量流失,做大量的性能优化和性能测试提高用户体验)
 
3.软件测试的原则
  1)测试应尽早进入,从需求阶段开始介入。
  2)所有的测试都应追溯到用户需求(所有的工作都是围绕用户需求来的)
  3)程序员应该避免检查自己的程序。(除了单元测试)
  4)设计测试用例的时候要考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下爱要制造极端状态和意外状态
5)Pareto原则,测试发现的错误80%很可能起源于20%的模块(关注核心功能,如果发现一个错误,要在这里多点点,很可能会发现其他的错误,关联模块也要多点点,复归的时候关联模块也要复归,可能因为修改有了其他新的错误)。
  6)对错误的结果要进行一个确认过程(对自己的bug要查找式样书,需求说明书,找到与之不符合的地方,作为bug的依据,如果是用户体验票,要说明是bug的理由)
7)制定严格的测试计划(一般是由测试负责人编写,计划要写的合理科学,一般不更改)
8)完全测试是不可能的,测试需要终止(用尽可能少的测试用例去覆盖更多的测试点,需求)
9)妥善保存测试过程中的所有文档
 
4.测试的对象: 1.程序 2.数据 3.文档
 
5.软件测试的分类
按照测试阶段划分
单元测试,集成测试,系统测试,验收测试(正式验收测试,Alpha测试,Beta测试)
按测试技术划分
白盒测试,黑盒测试,灰盒测试
按被测对象是否运行划分
动态测试,静态测试(文档检查,代码走查,界面检查)
按不同的测试手段划分
手工测试,自动化测试
按测试包含的内容划分
功能测试,界面测试,安全测试,兼容性测试,易用性测试,性能测试(压力测试,负载测试),恢复测试
其他测试
冒烟测试,回归测试,探索性测试(测试思维)
具体:
单元测试(每个模块测试) 集成测试(把每个单元,模块组合起来) 系统测试(整个系统结合起来)
 
定义:
1.白盒测试:基于软件内部设计和程序实现的测试方法,不仅仅关注输入输出和结果是否正确,同时关注程序是如何处理的(不仅了解输入输出结果而且了解软件的运行原理)
2.黑盒测试:测试过程中只关注输入和输出,如果输入一个测试数据,输出的结果是正确的,就认为这功能是正确的,也叫数据驱动测试(只关注输入输出结果,不关注运行过程原理)
3.冒烟测试:目的是确认软件基本功能正常,可以进行后续的正式测试工作(各模块基本机能运行正常即可)
4.功能测试:测试软件的功能是否符合需求,通常采用黑盒测试方法,一般由测试人员独立进行。
5.界面测试:简称UI测试(界面布局是否合理,整体风格是否一致,界面文字图片是否显示正常,对照产品原型图)(最上面ui界面测试-中间service服务层-下面unit单元测试)越上面越不重要
6.安全性测试:测试该系统防止非法入侵的能力(密码是否加密等等)
7.兼容性测试:测试该系统与其他软硬件兼容的能力
8.负载测试:在一定的软硬件及网络条件下,通过运行一种或者多种业务在不同虚拟用户数量情况下,测试服务器的性能指标是否满足用户的需求。确定系统所能承载的最大用户数,最大有效用户数及不同用户数情况下系统的响应时间和服务器的资源利用率(运动员在50,100,130公斤负重下身体生理指标(性能指标)数,确认他的最大负重130公斤,最大有效负重100公斤)(比如双十一的时候淘宝的用户数在10万人,100万人,500万人情况下系统的响应时间和资源利用率,确定他的最大用户数和最大有效用户数)
9.压力测试:在一定软硬件及网络条件下,通过模拟大量虚拟用户向服务器产生负载,使服务器的资源处于极限状态下长时间持续运行,以测试服务器在高负载情况下稳定运行(在100-120公斤负重下,长时间负重,能够稳定运行多久)(比如淘宝假如最大有效用户数是500万,那么在520万用户数长时间同时进行加入购物车,支付操作,向服务器发送数据的情况下,测试系统能稳定运行不出错的时间)
10.恢复测试:主要检查系统的容错能力(采用各种办法让系统崩溃,出错,查看系统是否能在规定时间内尽快恢复,启动系统)
11.易用性测试:测试软件是否易用,主观性比较强,一般要根据很多用户的测试反馈信息,才能评价易用性
12.回归测试:指错误修正后或软件功能,环境发生变化后进行的重新测试,确认修改部分不会对其他功能造成影响(bug本身的回归是否修复,相关联模块,影响模块是否因为修改出错)
13.Alpha测试:一种前期的用户测试,公司内部组织员工及部分用户,模拟实际操作情况下进行验收测试(内侧)
14.Beta测试:一种后期用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行,在一个或多个真实的环境下发布版本,进行(公测)
 
软件测试常见误区:
1.调试和测试时一样的
  测试时发现问题(测试),调试是定位和解决问题(开发)
2.测试应当为保证质量负责
   测试也要为产品质量负责,但是质量是开发做出来的,不是测出来的,本身的质量基础首先要好。
  整个项目组包括开发  测试,产品,业务整个团队都要保证软件质量
3.把开发人员安排做测试
  开发会有思维定式对于自己所做的产品,要让专业的测试从第三方不同的角度,专业的测试知识,经验来对产品进行测试。
4.过分的依赖Beta测试(验收测试)
  Beta测试属于公测阶段,面向真实用户,这个时候由用户来发现缺陷是不可以的,为时已晚,大量的错误还是要由测试在前期测试过程中发现解决。
5.测试是可以穷尽的
   测试是没有穷尽的,测试也不可能在有限的时间内发现所有的bug,测试工作是有计划和时间要求的
6.测试是枯燥乏味,缺乏创造力的工作
  需要利用各种各样的工具和方法,创造各种场景,来测试出软件的表层和深层的缺陷。

原文地址:https://www.cnblogs.com/nuonuozhou/p/8644858.html