系统测试

1 测试阶段:(单元测试—集成测试—系统测试—验收测试)

单元测试

	测试对象:函数内部代码结果
	测试方法:白盒测试的方法,静态测试为主
	考察范围:单元内部的数据结构、逻辑控制以及异常处理等等

集成测试

	测试对象:模块、接口
	测试方法:灰盒测试的方法,动态测试
	考察范围:模块和模块之间接口互相数据传递的关系,以及模块整合后的整体的功能

系统测试

	测试对象:软件、软件+硬件、系统

	测试方法:黑盒测试为主的方法,动态测试

	考察范围:确保系统是满足用户的需求的,符合需求规格说明书中的要求

		需求分类:显性需求 ---- 需求规格说明书中明确提出来的

			  隐性需求 ---- 需求规格说明书中没有明确指出来的

				法律、法规、标准、协议、行业规范中明确指出来

				用户的使用的习惯/UI测试标准

				用户当地的风俗习惯

验收测试


2.测试流程:计划—设计—实现—执行

计划 ---- 测试计划     	    设计 ---- 测试方案

实现 ---- 测试用例       	执行 ---- 执行测试用例,测试报告

学习目标:

1、掌握什么是系统测试

2、熟悉系统测试的测试流程

3、掌握常见的系统测试的类型


1.系统测试的概念:

将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机的硬件、外设、某些支持的软件、数据、人员等其他系统元素结合在一起,在实际运行环境下对计算机系统进行一系列的测试活动。

备注:系统测试的被测试对象有可能是软件也有可能是硬件,同时还需要考虑和其他软件的支持,或其他人员的使用等

2.熟悉系统测试的测试流程:计划–设计–实现–执行

计划:

	编写测试计划

	编写测试计划的人员:测试经理、项目的测试负责人,其他项目的成员也会参与,但是其他成员参与的不深。

	测试计划一般一天左右就可以完成,写之前需要做一些协调的工作,还需要项目的其他员工进行协助,供测试经理、项目测试的负责人参考

	写测试计划之前的准备:

		1> 了解需求
		2> 了解被测试软件
		3> 了解项目计划
		4> 了解开发计划

	系统测试计划的核心内容:(5W1H)

		why ---- 为什么测试?

			测试的目的:证明软件是符合需求的

		what ---- 测试的范围?

			明确测试的版本,或每个版本中需要测试的范围

		when ---- 明确测试工作的时间范围。

			明确测试工作的起止时间
			明确每个阶段的起止时间
			明确每个任务的起止时间

			例如:整体出行的时间(端午节 6.25~6.27)
			      每个阶段的起止时间(出发 玩 返回)
			      每个人物的起止时间(景点1 吃饭 景点2 吃饭 休息 ……)

		who ---- 参与测试工作的人员

			明确人员的投入(数量、经验、成本)

			工作经验几年比较受欢迎?(3~5)

		where ---- 在哪里测试?环境

			开发环境 ---- 开发人员,写代码,一般不作为测试的环境

			测试环境 ---- 至少要保证测试人员有一套独立的测试环境

				功能测试环境
				性能测试环境(尽可能模拟用户的真实环境)
				安全测试环境

			真实环境 ---- 生产环境、现网环境(用户使用的环境)

		how ---- 如何测试

			测试方法、测试工具、测试工作的标准(结束的标准)

	系统测试计划的作用:

		得到领导的认可 ---- 领导认可了宏观的调控,得到相应的资源配置
		测试人员 ---------- 了解这个项目的测试情况、了解不同阶段所需要进行的测试工作、了解我自己需要完成的测试工作、QA等其他相关的人员
		
设计:
	编写测试方案
	编写人员:技术、经验比较丰富的人员来完成
	写测试方案之前的准备:

		1> 了解需求
		2> 了解被测试软件
		3> 了解测试计划

	内容:提取测试项(测试点、测试特性)、测试方法、明确如何进行测试	
C:\Windows\System32\drivers\etc\hosts
172.21.2.165		localhost

	系统测试方案的作用:指导测试工作的开展

实现:

	编写测试用例

	编写人员:测试工程师,但是初级测试工程师不会写测试用例

	依据测试方案来编写测试用例。

	测试方案已经写的很细致,还需要些测试用例吗?熟悉需求、熟悉被测试软件。

	结合提取的测试项,按照公司测试用例的模板,来编写测试用例。

八大要素:编号、标题、测试项、预置条件、输入、测试步骤、预期结果、重要级别

	练习:根据自己提取的测试项,编写oscommerce网站注册功能的测试用例。

执行:

1.搭建测试环境:(LAMP)
		L ---- Linux,操作系统,免费、开源、多用户、多并发、稳定、安全
		A ---- apache,web服务,源码安装(配置、编译、安装),免费、开源
		       tomcat,web服务,绿色免安装
		M ---- mysql,数据库,免费、开源
		       oracle,数据库
		P ---- PHP,开发语言
		       python、java、C#
		被测试对象 ---- 开发人员转出来的测试包(模块的发布  python setup.py build/install/sdist) ---- (.tar.gz)
2.准备测试数据:
	预测试:(等)

		在开发的环境上,将高优先级的用例优先执行(冒烟测试)

		预测试发现的bug不会提交缺陷报告,在excel表格中记录。

	转系统测试:

		评审,在组内评审,判断是否达到转系统测试的条件。

		需要发邮件,邮件中包含转测试的需求、修改的缺陷。
3.部署测试环境,执行测试用例:
		发现bug,提交缺陷报告,跟踪缺陷报告,回归测试。

		积极主动的向上级汇报工作,主动推动问题的解决。

		汇报的形式:晨会、周例会(半周例会)、月度会议、邮件、PPT

测试报告:

		测试的结论(通过/不通过)

		数据来支撑测试的结论(用例数、缺陷数、执行率、测试类型……)

		总结做的好的地方和不好的地方

		遗留的问题(致命、严重不可以遗留),风险、规避的措施

评审:

		每一个步骤完成后都需要评审(计划、方案、用例、报告)

		如果评审完有问题则需要修改,修改完成后还需要再次评审。

变更:

          需求变更、用例变更

3.常见的系统测试的类型:

功能测试:
    就是对产品的各项功能进行验证,根据功能测试的用例,逐项测试,检查产品是否达到用户的要求。

	需要从需求、业务等多个角度来进行测试(金融、财务、医疗、物流、电商……)


	功能测试的目标:找出功能实现错误的,与用户需求不相符;
			找出功能实现遗漏的,少实现了某些功能;
			是否实现了系统设计中隐含的需求;
				行业俗成的规定、站在用户的角度挖掘隐性需求
			找出功能实现多余,也就是实现了需求规格说明书中没有提出的需求;

	很多人都会觉得功能测试没有技术含量,但事实上来说,功能测试才是重头。

性能测试:(重要)
就是对应质量模型中的效率(时间、资源利用率)
性能测试就是测试软件系统匹配性能需求的能力。
性能测试过程中关注的性能指标:

		响应时间:2-5-8(10)原则,指系统对请求作出相应的时间。(及格线5s)
			不是最快的也不是最慢的,而是平均的时间。
		并发用户数:指系统可以同时承载的正常使用系统的用户数。
			不断往上加
			不是用户的总数,而是同时使用的用户数(同时对服务器产生压力)
		吞吐量:指系统在单位时间内处理请求的数量。
			单位时间通常以s来计算,结果值很大。
		硬件的资源利用率:CPU的使用率、内存的占用率、I/O磁盘的读写速率

	APP测试性能的关注项:

     手机端的资源利用率、手机端的CPU的使用率、手机端的磁盘的读写速率、
	 APP的启动速度、滑动的速度、耗电量、流量的消耗

	性能测试的分类:

		容量测试:需求文档中要求的最大容量的性能测试,检查系统是否可以满足需求中的要求
		负载测试:在不同的负载下查看系统的运行情况的测试
		
		压力测试:不断加压,看系统在什么情况下崩溃

	工作过程中的性能测试:

		有性能需求(有性能的指标)
		没有性能需求
		基准测试

	性能测试的工具:

		loadrunner ---- HP公司研发(QTP loadrunner QC)
		jmeter -------- 免费的、开源

GUI测试:关注人机界面的测试

关注整体的风格:

	1> 颜色的使用
	2> 排版布局(对齐、重要信息在前、和设计原型保持一致、不拥挤)
	3> 初始焦点的位置
	4> TAB键切换的位置(按照页面元素排版的顺序从上到下,从左到右)

关注单个元素的样式:

	文本输入框:输入的回显(字体、大小、颜色)、输入框的大小(最好把最多的内容全部显示完,看整体的布局)
	密码输入框:输入的回显(掩码)、输入框的大小、不可以复制和粘贴
	单选框:有一个默认的初始值、勾选和取消勾选、不能同时选择、大小不关注默认即可
	复选框:是否有/需要设置初始值、勾选和取消勾选、可以同时选择多个、大小不关注默认即可
	下拉列表:是否有初始值、下拉列表的内容(排序、多少、长短)、下拉列表的大小
	超链接:状态、鼠标移动上去、点击后的颜色、点击超链接后跳转的页面是否和目标页面一致

易用性测试:关注用户的体验

主观性比较强,没有绝对的标准,和开发人员的分歧比较多。

对应质量模型中易用性(易理解、易学习、易操作、吸引性-白富美、高富帅)

关注点:

	能让用户选择的就不要让用户输入
	菜单级别,最好不要超过三层
	键盘快捷方式的使用
	提供导航功能
	提供帮助手册
	提供提示信息

易用性测试标准不会写在需求文档中,一般都是按照行业标准来。

兼容性测试:测试软件在特定的硬件平台上,在不同的操作系统上、不同的应用软件之间、不同的浏览器中、不同的网络环境中测试软件是否可以很好的运行

主要测试的内容:

	操作系统的兼容:C/S
	浏览器的兼容:B/S,浏览器的内核(IE CHROME)
	应用软件的兼容:flash
	操作系统语言的兼容:
	分辨率的兼容:

	备注:完全的兼容性测试是无法完成,通常挑选优先级比较高的用例来执行

app的兼容性的测试:

	android:版本、手机屏幕的大小
	IOS:版本

安全测试:测试系统受到恶意攻击时,系统的自我防御能力,自我保护的能力。

	从功能上考虑一些安全性:

		1> 是否有防爆力破解机制
		2> 是否有超时验证的机制
		3> 是否有越权登录
		4> 是否使用https协议
		5> 用户的数据必须保存在服务器端进行校验
		6> 修改密码的时候需要验证旧密码
		7> 密码必须符合一定的复杂度(大写、小写、数字、特殊符号)
		8> 密码输入框不可以复制、剪切和粘贴
		9> 密码在保存和传输的过程中需要加密

可靠性测试:指系统怎么用都不会出问题,或出了问题可以很快恢复。

	随机测试:无规律的使用软件
	异常测试:断电、断网、闪退等异常情况下,系统能否快速恢复,或关注恢复的程度和耗时。

稳定性测试:测试系统在一定负荷的前提下,长时间运行的情况

	负荷:数据库中有数据、软件在执行一些动作、长时间操作

	两种方式:固定的负荷、负荷发生变化

	时间:n*24小时

	可能发现的问题:内存泄漏、数据前后不一致(从量变到质变的过程)

文档测试:测试所负责模块相关的文档

	关注文档的正确性和可用性

	正确性:错别字、标点符号、专业性、截图、语法
	可用性:实际的指导意义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值