测试(总结)

1. B/S架构和C/S架构区别
一. B/S和C/S的定义

1.什么是B/S?

B/S结构(Browser/Server)是浏览器服务器这种开发模式,

就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件

2.什么是C/S?

C/S又称Client/Server或客户/服务器模式。需要做客户端服务器端 。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。

3.B/S和C/S的区别

  • Client/Server是建立在局域网的基础上的。

  • Browser/Server是建立在广域网的基础上的.

  • C/S响应速度快,安全性强,用户体验好,一般应用于局域网中,但是开发维护成本高,;
    B/S可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢

  • 安全要求不同

    C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强.一般高度机密的信息系统采用C/S 结构适宜.
    可以通过B/S发布部分可公开信息.

    B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.

  • 对程序架构不同
    C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.

    B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.

  • 软件重用不同

    C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.

    B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子

  • 系统维护不同

    系统维护是软件生存周期中,开销大, -------重要

    C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级.升级难. 可能是再做一个全新的系统

    B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.

  • 处理问题不同

    C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统。 B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小

  • 用户接口不同

    C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高

    B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.

  • 信息流不同

    C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低

    B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心

二、CS和BS结构各自的优、缺点

1.C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:

Ø 只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。

Ø 客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。

Ø 对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于Win2000或WindowsXP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。

2.B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。

2. HTTP协议

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是未加密的,明文传输,https则是具有安全性的ssl加密传输协议。
  
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

3. POST与GET区别
  1. Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。
  2. Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。
  3. GET请求只能进行url编码,而POST支持多种编码方式。
  4. Get执行效率却比Post方法好。Get是form提交的默认方法。
  5. 对参数的数据类型,GET只接受ASCII字符,而POST没有限制
  6. GET在浏览器回退时是无害的,而POST会再次提交请求
4. Cookie和Session的区别与联系
  1. session是存储在服务器端的,cookie是存储在客户端的,所以session的安全性要高于cookie。
  2. Cookie的安全性一般,他人可通过分析存放在本地的Cookie并进行Cookie欺骗。在安全性第一的前提下,选择Session更优
  3. 获取的session里的信息是通过存放在会话cookie里的sessionId获取的
  4. session是存放在服务器里的,所以session里的东西不断增加会增加服务器的负担,我们会把一些重要的东西放在session里,不太重要的放在客户端cookie里
  5. cookie分为两大类,一个是会话cookie和持久化cookie,他们的生命周期和浏览器是一致的,浏览器关了会话cooki也就消失了,而持久化会存储在客户端硬盘中
  6. Session 的运行依赖Session ID,而 Session ID 是存在 Cookie 中的,也就是说,如果浏览器禁用了
    Cookie,Session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 Session ID)。
5. 测试的目的

1)软件测试是为了发现错误而执行程序的过程。

2)测试是为了证明程序有错,而不是证明程序无错。(发现错误不是唯一目的)
3)一个好的测试用例在于它发现至今未发现的错误。
4)一个成功的测试是发现了至今未发现的错误的测试。

注意:

1、测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征。可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,通过分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。
2、没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。详细而严谨的可靠性增长模型可以证明这一点。例如Bev Littlewood发现一个经过测试而正常运行了n个小时的系统有继续正常运行n个小时的概率。

6. 软件测试原则

1)应当把“尽早地不断地进行软件测试“作为软件开发者的座右铭。

2)测试用例应由测试数据和与之对应的预期输出结果这两部分组成。

3)程序员应避免检查自己的程序。

4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。

5)充分注意测试中的群集现象。

6)严格执行测试计划,排除测试的随意性。
7)应当对每一个测试结果做全面的检查。

8)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便

7. 软件测试分为哪几个阶段?

软件测试分类
按照阶段
单元测试:是指对软件中的最小可测试单元进行检查和验证
集成测试:集成测试是单元测试的下一个阶段,是指将通过测试单元模块组装成系统或者子系统,再进行测试,重点测试不同模块的接口部分。
系统测试:指的是将整个软件系统看做一个1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
验收测试:以用户为主的测试,软件开发人员和质量保证人员参加
按照是否查看源代码划分
白盒测试:指的是把盒子盖打开,去研究里边源代码和程序结构(单元测试,ui/接口自动化测试)
黑盒测试:把被测试的软件看做一个黑盒子,我们不去关心盒子里边的结构是什么样子,只关心软件的输入数据和输出结果
功能测试
**逻辑功能测试:**测试应用是否符合逻辑,比如应该先注册账号之后,才能进行登录,登录之后才能看我的购物车
界面测试:窗口大小,按钮大小,点击按钮弹出什么样的提示框,是否有滚动条,下拉菜单是否有展示内容
易用测试:从软件使用的合理性和方便性等角度对软件系统进行检查,比如,软件窗口长宽比例是否合适,颜色色彩是否赏心悦目,字体大小是否合适
**安装测试:**安装磁盘空间不足,安装中断(关闭程序,关机,,)下次安装时是否继续上次的安装等。。。
兼容测试:硬件兼容性测试和软件兼容性测试(硬件兼容性:比如一款软件在pc机,笔记本,主机上是否兼容,软件兼容性测试:比如一款软件在window8和window10上是否兼容)
性能测试
一般性能测试
稳定测试:
负载测试: 让被测系统在其能够忍受的压力范围之内连续运行,来测试系统的稳定性。(测试载重)
压力测试:持续不断的给被测试的系统增加压力,直到被测试的系统压垮为止,用来测试系统所承受的最大压力。(测试强度)
其他
回归测试:回归测试是指修改了旧代码后,重新在新环境上进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
冒烟测试:指对一个软件进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
随机测试:是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误

8. 单元测试与集成测试的侧重点

单元测试

   是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。 

集成测试

    也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。 
9. 系统测试范围

指的是将整个软件系统看做一个1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试由黑盒测试人员在整个系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境的兼容性等

10. a测试与ß测试的区别

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。

β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

它们都是验收测试!

α测试是指把用户请到开发方的场所来测试
β测试是指在一个或多个用户的场所进行的测试。

α测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。
β测试的环境是不受开发方控制的, 用户数量相对比较多,时间不集中。

α测试先于β测试执行。通用的软件产品需要较大规模的β测试,测试周期比较长

11. 验收测试怎么做?

验收测试主要包含两个阶段:二轮测试和冒烟测试。在测试阶段的先后顺序上,二轮测试在一轮测试(需求的系统性测试)之后,在冒烟测试之前。在测试粒度上,按照由细到粗的顺序,依次为二轮测试和冒烟测试;冒烟测试,众所周知是对功能主路径的回归验证,而二轮测试则是执行较冒烟更细粒度的测试,另外也包含了一轮测试阶段中出现bug较多的场景等等。
一轮测试:系统的测试验证需求的阶段,包含全部功能点的验证、兼容性验证、性能验证等等;

二轮测试:作为一轮测试后的整体回归验证阶段,主要侧重验证功能的主流程和一轮测试中问题较多的场景的相关用例
开始标准

一、测试自身

1、一轮测试执行完毕;

2、一轮阶段的待检验bug回归完毕;

3、发起内核代码迁移邮件,确认内核开发要集成到正式发布分支的代码,且均已验证完毕。
二、配合方

1、各配合方均已上线验证完毕;

2、例如:产品配置项、服务端、前端、第三方等;

3、反例:小编最近碰到个问题,由于没有在二轮测试开始前做好上线验证工作,导致在二轮执行阶段遇到多方联调问题,影响项目进度。

4、具体表现:在二轮测试执行阶段,发现已经上线了的服务端和第三方相关功能无法顺利走通,经过定位排查发现是在上线时,服务端和第三方的接口没有联调成功。

5、三方(开发、产品、测试)确认无阻塞二轮测试的bug;

6、代码集成完毕;(视具体项目组而定)

7、新功能或有较大改动模块,产品&交互验收通过并已回复邮件;

8、新功能或有视觉改动模块,视觉走查通过并已回复邮件;

9、备注:当项目发版紧张时,开发评估一轮未结束的模块对其他模块均无影响(如,独立插件的功能模块),可以先执行其他不受影响的模块的二轮测试

12. 白盒、黑盒和灰盒测试区别

白盒测试:指的是把盒子盖打开,去研究里边源代码和程序结构(单元测试,ui/接口自动化测试)
黑盒测试:把被测试的软件看做一个黑盒子,我们不去关心盒子里边的结构是什么样子,只关心软件的输入数据和输出结果
灰箱测试或灰盒测试(Gray-box testing):灰箱测试就像黑箱测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。甚至于还读过部分源代码。 因此测试人员可以有的放矢地进行某种确定的条件/功能的测试。这样做的意义在于:如果你知道产品内部的设计和对产品有透过用户界面的深入了解,你就能够更有效和深入地从用户界面来测试它的各项性能

13. 冒烟测试的目的

冒烟测试:指对一个软件进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
使用冒烟测试是为了正式测试前,验证是否产品或系统的主要需求或预置条件是否存在bug

14. 回归测试怎么做?

回归测试:回归测试是指修改了旧代码后,重新在新环境上进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
1、在测试策略制定阶段,制定回归测试策略
2、确定需要回归测试的版本
3、回归测试版本发布,按照回归测试策略执行回归测试
4、回归测试通过,关闭缺陷跟踪单(问题单)
5、回归测试不通过,缺陷跟踪单返回开发人员,开发人员重新修改问题,再次提交测试人员回归测试

15. 全部回归与部分回归的区别&#x
  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值