校招总结:测试

测试基本概念

测试用例设计白皮书--测试用例基本概念
测试用例设计白皮书--等价类划分方法

测试用例设计白皮书--边界值分析方法

测试用例设计白皮书--错误推测方法

测试用例设计白皮书--因果图方法

测试用例设计白皮书--判定表驱动分析方法

测试用例设计白皮书--正交实验设计方法
测试用例设计白皮书--功能图分析方法
测试用例设计白皮书--场景设计方发
测试用例设计白皮书--测试用例设计综合策略
白盒测试技术-方法与实践篇

测试者出的APP测试面试题
http://www.jianshu.com/p/d133539b7b5c

给你一个模块,比如注册模块,你会怎么样设计与执行测试?

参考答案:数据——》从哪里来(入口)——》到哪里去(出口)——》数据库(检验数据的正确性)


一些测试题

经典的杯子测试题

百度首页的测试
http://www.cnblogs.com/tomato0906/articles/4622422.html
http://www.bdqn.cn/news/201309/11459.shtml

三角形测试:等价类划分

Paste_Image.png
覆盖等价类
Paste_Image.png

设计功能和界面测试用例一
http://blog.163.com/pengjintaogz@126/blog/static/162299068201031442428744/

设计功能和界面测试用例二
http://blog.163.com/pengjintaogz@126/blog/static/162299068201031442428894/

测试的分类

软件测试分类

  • 1.按结构与内部实现:
    http://www.lmwlove.com/ac/id1105
      黑盒测试:关心的是输入与输出。
      白盒测试:可以访问程序代码,并且通过检查代码来协助测试,测试员根据代码检查结果判断什么样的数据输入可能导致bug的产生,并根据此调整测试程序。
      灰盒测试:介于白盒测试与黑盒测试之间。
  • 2.按是否执行程序分:
     静态测试:测试不运行的部分——知识检查与审阅。
     动态测试:运行与使用。
  • 3.按过程分:
      A.单元测试:集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
      B.集成测试:把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试
      C.确认测试:检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确
      D.系统测试:把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试
      E.验收测试:用户对软件产品投入实际应用以前进行的最后一次质量检验活
  • 4.按测试类型分:
  • A.功能测试
  • B.性能测试:
    http://www.cnblogs.com/fnng/archive/2012/06/09/2543274.html
    负载测试
    这种方法是对一个系统持续不段的加压,看你在什么时候已经超出“我的要求”或系统崩溃
    压力测试(强度测试)
    这种测试是让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题。
    并发测试
    这种测试关注点是多个用户同时(并发)对一个模块或操作进行加压。
    配置测试
    这种测试关注点是“微调”,通过对软硬件的不段调整,找出这他们的最佳状态,使系统达到一个最强的状态。
    ****可靠性测试****
    这种测试的关注点是“稳定”,不需要给系统太大的压力,只要系统能够长期处于一个稳定的状态。
  • C.安全测试
  • D.易用性测试
  • E.兼容性测试

服务器压力测试

  • 吞吐率和压力测试
    普遍使用“压力测试”的方法,通过模拟足够多数目的并发用户,分别持续发送一定的HTTP请求,并统计测试持续的总时间,计算出基于这种“压力”下的吞吐率,即为一个平均计算值

1、 并发用户数
并发用户数就是指在某一时刻同时向服务器发送请求的用户总数。
假如100个用户同时向服务器分别进行10次请求,与1个用户向服务器连续进行1000次请求。两个的效果一样么?
一个用户向服务器连续进行1000次请求的过程中,任何时刻服务器的网卡接受缓存区中只有来自该用户的1个请求,而100个用户同时向服务器分别进行10次请求的过程中,服务器网卡接收缓冲区中最多有100个等待处理的请求,显然这时候服务器的压力更大。


粗略列一列,大致可以从以下几个层面考虑吧:

  • 1.功能方面,是否能按指定条件查到正确、完整的结果,具体:

  • 1.1录入条件为可查到结果的正常关键字、词、语句,检索到的内容、链接正确性;1.2录入条件为不可查到结果的关键字、词、语句;

  • 1.3录入条件为一些特殊的内容,如空、特殊符、标点符、极限值等,可引入等价类划分的方法等;

  • 2.性能方面,可利用测试工具或各种测试手段考虑功能在各方面的表现,具体:

  • 2.1压力测试:在不同发用户数压力下的表现(评价指标如响应时间等)

  • 2.2负载测试:看极限能承载多大的用户量同时正常使用

  • 2.3稳定性测试:常规压力下能保持多久持续稳定运行

  • 2.4内存测试:有无内存泄漏现象

  • 3.易用性方面,交互界面的设计是否便于、易于使用,具体:

  • 3.1依据不同的查询结果会有相关的人性化提示,查不到时告知?查到时统计条数并告知?有疑似输入条件错误时提示可能正确的输入项等等处理;

  • 3.2查询出的结果罗列有序,如按点击率或其他排序规则,确保每次查询出的结果位置按规则列示方便定位,显示字体、字号、色彩便于识别等等;

  • 3.3标题查询、全文检索、模糊查询、容错查询、多关键字组织查询(空格间格开)等实用的检索方式是否正常?

  • 3.4有否快照等快捷查看方式等人性化设计?

  • 4.兼容性方面,跨平台、多语言等多样性环境组合情况下测试使用的正常性,具体:

  • 4.1WINDOWS/LINUX/UNIX等各类操作系统下及各版本条件下的应用

  • 4.2IE/FIREFOX/GOOGLE/360/QQ等各类浏览器下及各版本条件下的应用

  • 4.3SQL/ORACLE/DB2/MYSQL等各类数据库存储情况下的兼容性测试

  • 4.4简体中文、繁体中文、英文等各类语种软件平台下的兼容性测试

  • 4.5IPHONE/IPAD、安卓等各类移动应用平台下的兼容性测试

  • 4.6与各相关的监控程序的兼容性测试,如杀毒、监控、防火墙等工具同时使用

  • 5.安全性方面,往往容易被忽视的环节,具体:

  • 5.1被删除、加密、授权的数据,不允许被查出来的,是否有安全控制设计;

  • 5.2录入一些数据库查询的保留字符,如单引号、%等等,造成查询SQL拼接出的语句产生漏洞,如可以查出所有数据等等,这方面要有一些黑客攻击的思想并引入一些工具和技术,如爬网等。

  • 5.3通过白盒测试技术,检查一下在程序设计上是否存在安全方面的隐患;

  • 5.4对涉及国家安全、法律禁止的内容是否进行了相关的过滤和控制;

  • 6.异常性测试,各种破坏性的操作的影响测试,具体:

  • 6.1查询过程中断网、关机

  • 6.2查询过程中强行中断关闭页面

  • 6.3查询过程中强行杀死相关进程等


持续集成Continuos Integration

  • CI的优点
  • 减少风险
    缺陷的检测和修复变得更快,让寻找和修改bug的工作变简单(只修改系统一小部分,无需看太多代码。由于提交后就可以得到反馈,记忆很新鲜,可以进行差异调试。)同时过早的引入集成,使我们能更好的审视各个模块的接口是否满足要求,减少项目中的假定。
  • 减少重复过程
    由于CI将大量的工作给自动化了,那么可以让人们有时间做更多的需要动脑筋的、更高价值的工作。而且通过对重要过程自动化,克服了项目中某些成员对实现改进的抵制,有利于持续集成的推进。这样就形成了一个良性循环。
  • 在任何时间、任何地点生成可部署的软件
    对于客户来说,可以部署的软件是最实际的资产。而CI则可以轻松做到这一点。
  • 增强项目的可见性
    通过对CI服务器的监控,可以随时了解项目的趋势。CI上的红色或绿色表示了当前项目的健康程度。每一个功能的交付都经历了单元测试或集成测试的考验。
    对开发团队的软件产品建立起更强大的产品信心

“持续”:我想对CI里“持续”的理解可以从两方面来谈,首先是持续地集成产品,尽早地发现问题;其次,也可以把这里的持续理解为持续改进,正如前面说的,CI里包括很多的实践,我们不可能一下子引入全部,这就要求我们有持续改进的sense,持续地引入新的实践(比如加入代码审查等)、持续地加入新的case、持续地完善CI和process,在改进的同时,CI又很好地保证了已有部分的长期有效,不过像猴子摘西瓜那样,缺少历史的积淀。

部署
通过了第二轮测试,当前代码就是一个可以直接部署的版本(artifact)。将这个版本的所有文件打包(tar filename.tar *)存档,发到生产服务器。
生产服务器将打包文件,解包成本地的一个目录,再将运行路径的符号链接(symlink)指向这个目录,然后重新启动应用。这方面的部署工具有AnsibleChefPuppet等。

回滚
一旦当前版本发生问题,就要回滚到上一个版本的构建结果。最简单的做法就是修改一下符号链接,指向上一个版本的目录。

持续集成是什么?

Paste_Image.png

持续集成(CI)、自动化构建和自动化测试--初探
持续集成


软件测试模型

Paste_Image.png

Paste_Image.png

X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执行程序进行测试
己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。
由图中可见,X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人
软件测试模型的v模型、w模型、h模型、x模型总结

敏捷开发与瀑布模型

对比:http://www.cnblogs.com/zh2000g/archive/2010/02/22/1671286.html

瀑布模型开发:
严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。
使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。

敏捷开发:
核心是迭代。
因为最终目标是让客户满意,所以能够主动接受需求变更,这就使设计出来的软件有灵活性,可扩展性。


关于工具(java)

Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和部署,非常方便。

在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作。

现在很多公司的Java项目开发都是使用Git或者SVN管理代码,Maven管理多模块和项目依赖(很多jar包),所以今天尝试学习如何使用Jenkins搭建Github与Maven下的自动构建和部署。

关于git和svn

Paste_Image.png

CMMI软件能力成熟度模型

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 21,926评论 7 278
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,704评论 5 100
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 一、输入框1、字符型输入框:(1)字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&...
    James黄杰阅读 566评论 0 6
  • 时光飞逝,孩子从懵懂无知长到自信满满! 当孩子从家庭的怀抱走进幼儿园,她就不再只是一个家庭的成员,她更是一个幼儿园...
    山水纵横阅读 1,069评论 1 3