非功能测试

非功能的测试领域包括了性能、负载、安全、可靠性和其他很多方面。非功能测试有时也被称作行为测试或质量测试。非功能测试的众多属性的一个普遍特征是一般不能直接测量。这些属性是被间接地测量,例如用失败率来衡量可靠性或圈复杂度,用设计审议指标来评估可测性。

可靠性

软件使用者期望软件能够无误运行。可靠性是度量软件如何在主流情形和非预期情形下维持它的功能,有时也包括软件出错时的自恢复能力。

可用性

如果用户不明白应该如何使用,那么,即使是零差错的软件也会变得毫无用处。可用性测量的是用户学习和控制软件以达到用户需求的容易程度。进行可用性研究、重视顾客反馈意见和对错误信息和交互内容的检查都能

提高可用性。

可维护性

可维护性描述了修改软件而不引入新错误所需的工作量。

可移植性

代码的可移植性是代码能在不同配置平台上运行。许多微软产品运行在Windows 和Macintosh 两种平台上。

可扩展性

(程序能应付过载的能力)

安全性

系统应对非授权改动图谋的能力)

测试经理:产品测试,性能测试,安全测试

在设计过程的早期就积极地介入代码评审和分析性能目标是绝对必要的。事实上,若要满足大多数非功能测试需要,最好的办法是在程序设计阶段就加以考虑。

在设计阶段能帮助发现潜在的性能问题的技巧:

(1)提出疑问:找出有潜在性能问题的地方。对网络交通的拥塞状况、内存管理的效率、数据库设计的合理性、或其他任何有关地方提出疑问。即使你并没有性能设计的解决方案,而只是通过让其他团队成员考虑性能问题,

测试工程师也一样能够产生很大的影响力。

(2)考虑全局:不是片面地考虑局部的优化,而是考虑全面的用户场景。你将会在整个开发过程中有相对充足的时间深入性能场景的细节,但是在设计阶段的时间最好是花费在考虑从头到尾的(end

to end)场景上。

(3)明确目标:

象“响应时间应该很快”这样的目标是不可度量的。应用SMART(Specific-具体的,Measurable-可度量的,

Achievable-可实现的, Relevant-相关的, Time-bound – 有时限的)标准来设计目标。

建立基线 早定义、早测量的一个重要方面是建立基线。

经常运行测试 一旦你建立了基线,就尽量经常地测量。

测量响应效率

用户并不关心程序在后面用了多长时间来执行。他们关心的是应用软件响应是否够快。性能测试必须着重于测量用户响应时间,

测量的是性能

我们常常忍不住想在性能测试中加入功能或其他类别的测试。但是,既是性能测试,就要专注于测量性能。

预估瓶颈 针对延迟会发生的地方做性能测试

合理使用资源很重要

响应时间和延迟两者都是性能的关键标识,但不要在性能测试中忘记检查CPU的负荷,磁盘或网络I/O,还有内存。

避免改变 克制住给你的性能测试小修(或大修)的冲动。不管该操作的后台计算需要耗费多少时长。

压力测试

应用软件在预期的和重负载条件下的表现和处理容量增大的能力,通常被归类在性能测试下面。广义上,压力测试经常包括了负载测试、平均无故障时间(MTBF

- mean time between failure)测试、低资源测试、容量测试、或重复性测试。

压力测试的目的是要通过模拟比预期要大的工作负载来让只在峰值条件下才出现的缺陷曝光。压力测试是要发现软件的弱点所在。内存泄漏、竞态条件、数据库中的线程或数据行之间的死锁条件、和其他同步问题等等

负载测试是要探讨在高峰或高于正常水平的负载下,系统或应用软件会发生什么情况。

MTBF测试是测量系统或应用软件在出错或当机前的平均运行时间。

低资源测试是要确定当系统在重要资源(内存、硬盘空间或其他系统定义的资源)降低或完全没有的情况下的状况。

容量测试一般是用来执行服务器或服务测试。

重复性测试是为了确定重复某一程序或场景的效果而采取的一项简单而“粗暴”(brute

force)的技术。

兼容性测试

应用程序兼容性测试(Application compatibility

testing)一般注重于应用程序之间或所测试的目标系统与其他应用程序之间的交互。

吃我们自己的“狗食” :“在微软,当我们谈到‘吃我们自己的狗食( Eating our Dogfood)’时,

我是指,‘在你让任何人吃你的狗食之前,你必须自己先尝尝。” - 史蒂夫·鲍尔默于 2003 年10 月21 日ffice

发行大会上

可达性测试 “可达性是指消除障碍, 让每个人都能享受技术的益处。”— 史蒂夫•鲍尔默

可达性是指为每个人提供接触信息和工具的相等机会, 这些信息和工具是他们完成每天工作所必需的。

这包括从复制文件到浏览网页到产生新的文档等所有事情。软件可达性的根本点是让用户有一种感觉,

他有能力创造和维护应用程序、网站或者文件,并且有能力与之互动。

可用性测试

可用性和可达性很相似,但我们所考虑的这两者有一个很大的区别。可达性是指任何一个人都能够使用用户界面,而可用性是指用户能不能很容易的理解和与用户界面互动。

安全测试

威胁建模审查应用程序结构以找到潜在的安全威胁和弱点,威胁模型的意图是找出一个应用程序能被攻击的所有可能的方法,然后根据概率和可能的危害来排优先级。好的威胁建模需要分析和调研技能—这两种技能使得测试在这过程中很适用。

模糊测试

模糊测试是一种用来决定程序对无效输入数据会怎样反应的技术。

功能测试极其重要,而用来有效的完成功能测试的许多技术和方法也同等重要。很多团队有时会忘记一点,那就是用户并不关心找到了多少个缺陷,或者有多少测试失败了,或是代码覆盖率。它们都是“测试食谱”中重要而有价值的成分,但最终来说,用户关心的是产品非功能性的方面。用户想要的软件必须既安全又可靠,能够轻而易举地完成他们想做的事;还要能方便地找到功能,而且响应速度足够快。

非功能测试与功能测试相得益彰,对于确定产品是否拥有高质量和能否发布起着决定性作用。非功能属性常面临的一个难题是很多方面在开发早期就需要充分地考虑,而真正测量这些属性要一直等到用户使用该软件才能开始。要解决这个难题,关键是要通过角色扮演或其他相似的机制,在各个测试的前沿倾听用户的声音。

支点软件测试工资,微软的软件测试之道(10)相关推荐

  1. 《微软的软件测试之道》读书笔记

    <微软的软件测试之道>读书笔记 第一部分  关于微软     第1章  微软的软件工程         偏重于产品独立发布的模式通常称为PUM(Product Unit Manager)即 ...

  2. 《微软的软件测试之道》读书笔记 之 结构测试技术

    <微软的软件测试之道>读书笔记 之 结构测试技术 2014-07-18 我们需要结构测试吗? 微软的一项试验说明了结构测试的在代码覆盖中起到的效果: 超过3000名测试员参与了这项实验,每 ...

  3. 微软的软件测试工程师——《微软的软件测试之道》

    在这个世界顶级的企业里,软件测试工程是的测试是怎样的. ------------------------------------------------------------------------ ...

  4. 学习笔记——微软的软件测试之道

    一  关于微软 测试工程师的能力:有坚实的工程技术基础的人,他们有和初级软件开发工程师一样的编程能力,并具备一个优秀测试人员所需的其他属性,成为被测产品领域的专家. 测试管理者的能力:测试经理较少亲自 ...

  5. 《微软的软件测试之道》(How We Test Software at Microsoft)

    好早就下了英文电子版,一直没有看,如今中文版已经出来并且已经可以买到了,准备入手一本. 转载于:https://www.cnblogs.com/coderzh/archive/2009/10/02/1 ...

  6. 《Google软件测试之道》目录—导读

    内容提要 Google软件测试之道 每天,Google都要测试和发布数百万个源文件.亿万行的代码.数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行.面对这些看似不可能完成的 ...

  7. 《Google软件测试之道》- Google软件测试介绍

    <Google软件测试之道>- Google软件测试介绍 2015-05-21 目录 1 质量与测试   2 角色   3 组织结构   4 爬.走.跑   5 测试类型   相关链接 与 ...

  8. 《Google 软件测试之道》摘录

    最近刚刚看完<Google 软件测试之道>,受益颇多,遂记录下: 只有在软件产品变得重要的时候质量才显得重要 第一章:谷歌软件测试介绍 角色介绍 SWE(Software Engineer ...

  9. 《Google软件测试之道》读书笔记

    Google软件测试之道 像google一样进行软件测试 软件测试介绍 少则清晰,测试人员的稀缺导致测试资源很昂贵.(不要招聘太多的测试人员) 质量不等于测试 开发对质量负责(预防行为,不是检测) 卫 ...

最新文章

  1. java whois_Java如何实现简单的whois查询
  2. python threading join_Python中threading模块join函数用法实例分析
  3. OpenWrite 新增扩散渠道:慕课手记,支持图片转存!
  4. 知识点讲解七:Python中的异常处理机制
  5. 深入探究函数返回局部变量
  6. Google新作Synthesizer:我们还不够了解自注意力
  7. (转)java.lang.RuntimeException: Missing type parameter
  8. 参考:微软08财年产品路线图
  9. 最新性能测试:Kafka、Pulsar 和 Pravega 哪个最强?
  10. spark学习-Spark的mapPartitions与MapPartitionsWithIndex理解
  11. Oracle · 一些实用语法
  12. 工作中的第一份LoadRunner脚本
  13. GIS应用技巧之数据结构(栅格与矢量)
  14. 如何下载Google Chromium源码。
  15. feign 实现签名、服务地址动态切换
  16. graphpad xy轴互换_GraphPad Prism的双Y轴作图
  17. kali安装wps办公软件
  18. 这是我网店的链接欢迎来看看
  19. 建筑计算机综合应用能力实训,计算机综合应用能力实训.doc
  20. MAC 权限Permission denied XXX

热门文章

  1. python中深拷贝与浅拷贝的区别
  2. html5可视化图形编辑器(基于canvas)
  3. R语言ggplot2画个月饼送给你
  4. java excel转json_Java中excel表格转成json的的实现方法
  5. 全局配置app.json的认识
  6. Java开发技术怎么学?成就你的高薪时代!
  7. 百度百科词条要怎么修改,百度百科人人都可以修改吗
  8. 计算机网络基础||从输入URL到打开页面到底发生了什么(待完善)
  9. 物联卡管理平台具有哪些功能
  10. \t\t团队缺乏的不只是管理