求职之测试开发技能准备

本文详尽探讨了软件测试的不同方面,包括负载测试、功能测试、性能测试和界面测试。重点阐述了黑盒测试和白盒测试的原理与区别,以及测试用例设计方法。同时涵盖了软件测试的各个阶段,如需求分析、测试计划、用例设计、执行和结果分析。此外,还讨论了测试工程师的素质要求和面试常见问题,以及软件安全测试和开发模型的重要性。
摘要由CSDN通过智能技术生成


负载测试

负载测试(Load testing),通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。目的是验证要检验的系统的能力最高能达到什么程度


软件测试类型按开发阶段划分

所以软件测试类型按开发阶段分为单元测试,集成测试,确认测试,系统测试,验收测试。
(1)单元测试:
 单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。
(2)集成测试
又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
(3)确认测试
确认测试的目标是 验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。
(4)系统测试
 软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,目的在于 与系统需求比较,发现问题
(5)验收测试
以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。
不是对系统进行全覆盖测试,而是 对核心业务流程进行测试



网游的测试内容

a) 性能(负载测试,压力测试,连接速度【长时间连接不上会有什么反馈】)
     i.客户端性能
     ii.服务器端性能
          1. 服务器
          2. 数据库(一致性,输出结果是否准确)
     iii. 网络
b)功能
     i. 从运行完 game.exe 打开游戏界面后可进行的各种操作、玩法
     ii. 界面
     iii. 音乐
c) 自动化
     i.  测试工作组织实施中需要的工具、软件、平台的开发
     ii. 自动化的回归测试作用:游戏中基础的、变动不大的、出错率高的、可进行 checklist 重复测试的功能、性能等自动化是一个好方法
     iii. 任何时候自动化都取代不了人脑,它只是将一些重复性的劳动从我们测试人员身上去掉,让我们有更多的时间做更有意义的事情,如果你觉得你做一件事情是重复的,且有规律可行的,不防考虑自动化

d)兼容性
     i:不同内核的浏览器,不同版本的浏览器
     ii:不同版本的Windows

e)可用性测试(寻找 功能缺陷、不符合人机工程学的设计失误
     1:是否每一个用户交互设计都考虑到最终用户的理解能力,教育背景?
     2:程序的输出是否有意义,没有侮辱性的词语,是否含糊不清?
     3:用户能否懂得显示的错误诊断信息
     4:用户界面是否保持概念的一致?内部的连贯性?语法的一致性?是否符合约定的使用习惯,语句,规律格式等。
     5:需要高精确性和准确度的软件系统是否提供了足够有效的输入验证?(比如登陆银行系统,登陆需要输入密码账号等)
     6:系统是不是包含太不不被选择的项?现在软件的开发趋势是只提供最常用功能的菜单项。
     7:对于来自用户的输入是否能及时做出反应?若不能及时做出反应则需要显示一段信息告知用户需要等待。在选定某一选项时,该条目应该高亮等。
     8:程序操作是否很容易上手?如常见密码输入时是否有效提示用户需要输入大小写敏感的文本。如果程序涉及到一连串的彩蛋和选项操作,能否轻松返回主界面?能否轻易返回上一级?
     9:软件的设计是否有助于用户准确输入?比如填邮箱的地方但填的手机号时,有红框圈住并在旁提示错误信息。
     10:用户能否在众多功能和菜单中来回切换而不发生意外?
     11:软件的功能实现是否达到设计规格要求?
     12:用户按照指南操作一次后,下次操作能否顺利进行?

互联网应用测试

互联网应用不同于传统的安装在计算机上的软件
软件:可能因为付费的缘故,只要质量达到平均水平就行,只要满足基本需求就会继续使用它。
互联网应用:如果应用系统质量一般,会导致客户转向竞争者的网站。


表示层测试:
1.内容测试:风格是否一致?布局是否混乱?拼写错误,语法错误?描述内容是否准确?

11. 可用性测试:交互设计是否考虑到最终用户的理解能力,教育背景?用来错误诊断的提示信息是否直白易懂?用户能否懂得输入的内容是否会被接收,能否帮助用户准确输入?不常用功能是否存在?对于用户输入能否及时反应?若不能及时反应是否有相应的提示信息告知用户等待?用户能否轻松返回主界面,能否轻松返回上一级?
在众多菜单功能中切换会不会发生意外?。。。。

2. web站点结构:检查各个链接是否有效,能否正确跳转?图片能否正确加载出来?

3. 用户环境测试:操作系统配置,web浏览器版本。如果应用系统高度依赖客户端的脚本处理,应特别关注浏览器的兼容问题。(因为每个浏览器都有不同的脚本引擎或虚拟机在客户计算机上运行脚本和代码)


业务层的测试:
1.性能:检查应用系统是否满足书面的性能规格说明(响应时间和吞吐率)
性能规格说明通常以响应时间或吞吐率来描述:比如页面需在X秒内载入,应用服务器每秒要完成Y个信用卡事务。
强度测试是是常用的性能测试方法:当系统接收的请求过多时,系统性能常会降低到不可用的状态,会导致对时间敏感的事务部件产生失效。使程序承受高负载或强度的检验。高强度是指在很短时间间隔内达到的 数据或操作的数量峰值。
web强度测试,在弄清用户群之后,设计强度测试,体现出可能访问站点的最大人群的情况。
移动应用强度测试,大量程序保持运行状态下,所测功能是否可正常响应。

2.数据有效性:发现从客户那里采集到的数据中的错误。

3.事务:发现事务处理过程中的错误,可能包括信用卡处理,电子邮件验证,即消费税计算等。

数据层的测试:
1. 响应时间:量化结构化查询语句SQL语句的消耗时间。
2. 数据完整性:验证数据存储适当而且正确。
数据确认测试试图发现数据收集中的错误,数据完整性测试尽力在数据存储的方式中发现问题。(数据类型和长度可能导致数据截断或失去精确性)。
3. 容错性和可恢复性:最大化平均故障间隔时间和最小化平均故障恢复时间。(设计出数据库无法恢复的场景出来)
4.安全性:系统数据是否机密(尤其是银行系统)


性能测试:(找到在特定负载和配置环境下程序的响应时间和吞吐量达不到目标说明书上的要求)
测试软件在系统中的运行性能,度量系统和预定目标的差距。

负载测试:(非常多用户)
指数据在超负荷环境中运行,程序是否能够承担。通过逐步增加系统负载,确定 在满足性能指标的情况下系统所能承受的最大负载量。

强度测试:(大量用户,大量数据,极短时间和极少空间)
在系统资源特别低的情况下软件系统的运行情况,目的是 找到系统在哪里失效以及如何失效的地方
包括:短时间的极端负载测试,在过量用户下的负载测试,连续执行所有能做的操作。

压力测试:
通过逐步增加系统负载,确定在什么负载条件下系统处于失效状态,以此来 获得系统能提供的最大服务级别

容量测试:(非常多数据)
确定系统可处理同时在线的最大用户数,使系统承受超额的数据容量来发现它是否能够正确处理。
证明程序不能处理目标文档中规定的数据容量。

容量测试通常和数据库有关。
容量关注的是大容量,不需要表现实际的使用。
而负载测试在大容量的情况下,还要关注性能指标。

举例:一个人背X斤
负载测试:200斤情况下能否坚持5分钟
压力测试:200,300,400....斤情况下,他的表现,什么时候失败,失败后什么表现,重新扛200斤是否正常。
容量测试:在坚持5分钟情况下,一次最多能扛多少斤。

测试一个app应用

能力测试:确保程序的目标功能实现。
容量测试:在许多人同时完这款游戏的时候,确保程序能处理目标文档中规定的数据容量。
强度测试:持续完这个游戏几个小时,程序是否出现异常。
在需要联网的游戏中,在基站切换频繁的地方,程序能否正常运行。
可用性测试:从用户的角度考虑。 电源,流量,发热情况。
安全性测试:在程序登陆时抓包,看数据包是否加密。
性能测试:响应速度是否达标,每秒处理的数据是否达标。(响应时间和吞吐量)
存储测试:程序使用的内存和辅助容量是否超标
兼容性测试:不同版本,不同厂商,不同硬件配置。
安装测试:安装和卸载是否方便
可靠性测试:平均故障时间和故障恢复时间是否达标

安装卸载:确保用户可以正确的安装应用程序,可以完全卸载应用程序
网络基础设施:网络环境极端的情况下:信号差,信号不稳定(从数据流量与wifi频繁切换)程序能过正确响应。不同容量大小的SIM卡,不同运营商。。。。(测试网络中断时程序的表现)
来电和短息处理:能否在程序运行的情况下接电话和回短信;在处理完来电和短信后能否返回应用程序继续;能否在不终端程序的情况加取消来电和短信;能否在不退出游戏的情况下播带电话和发短信。
内存不足:确保程序在设备内存不足的情况下仍能正常工作。
按键:测试所有热键按照产品规格书实现,要与说明书上一致。
退出:确保程序能正常退出,确保机器在关机情况下应用程序的行为和设计规格说明书一致。
充电:请切换到充电模式可用;正在充电时正常工作;退出充电时不会发生异常。
电量:在电量不足时程序的表现行为。在手机突然断电的时候,应用程序的反应是否与说明书一致。
硬件资源:确保应用程序没有过多占用CPU和内存资源。

还有 兼容性可用性,给其他国家用户使用要 本土化,还要足以符合他们国家的风土人情,风俗习惯。

可用性:符合标准规范,要直观,风格一致,放使用的功能按钮。
ui测试,可硬放到可用性里面: 测试用户界面的功能模块的布局是否合理,整体风格是否一致和各个控件的放置位置是否符合客户使用习惯,更重要的是要符合操作便捷,导航简单易懂,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等等。图片是否正确加载,链接是否都有效。

比较看重实时性的游戏:要考虑网络延时

测试平均故障间隔时间和平均故障修复时间是否达到要求。

可用性测试?还是安全测试?
对于设置了vip账户的应用,要保证vip用户能访问到应该能访问的内容,而非vip用户不能访问到不应该访问的内容。
对于管理人员账户,与普通账户的访问权限应有明确区分。


一般测试流程

1 .需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。--testing team
2. 测试计划: 根据需求估算测试所需资源( 人力、设备等)、所需 时间、功能点划分、如何合理分配安排资源等。---testing leader or testing manager
3. 用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。---testing leader, senior tester
4. 执行测试:根据测试用例的详细步骤,执行测试用例。--every tester(主要是初级测试人员)
5. 执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。--every tester(主要是初级测试人员)
6. defect tracking:追踪leader分配给你追踪的bug.直到 bug fixed。--every tester
7. 测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug.
8.用户体验、软件发布等……

测试结束准则

1.测试用例来源于因果图分析,边界值分析,错误猜测产生的所有测试用例都是不成功的。
2.预测出程序中错误的总数量,发现规定数量的bug后即结束该阶段的测试,进入下一阶段测试。
3.记录每个单位时间内发现的错误数量,通过检查统计曲线形状决定是继续测试该阶段,还是进行下一阶段测试。


负载测试,容量测试,压力测试,容量测试,性能测试

性能测试:(找到在特定负载和配置环境下程序的响应时间和吞吐量达不到目标说明书上的要求)
测试软件在系统中的运行性能,度量系统和预定目标的差距。

负载测试:(非常多用户)
指数据在超负荷环境中运行,程序是否能够承担。通过逐步增加系统负载,确定 在满足性能指标的情况下系统所能承受的最大负载量。

强度测试:(大量用户,大量数据,极短时间和极少空间)
在系统资源特别低的情况下软件系统的运行情况,目的是 找到系统在哪里失效以及如何失效的地方
包括:短时间的极端负载测试,在过量用户下的负载测试,连续执行所有能做的操作。

压力测试:
通过逐步增加系统负载,确定在什么负载条件下系统处于失效状态,以此来 获得系统能提供的最大服务级别

容量测试:(非常多数据)
确定系统可处理同时在线的最大用户数,使系统承受超额的数据容量来发现它是否能够正确处理。
证明程序不能处理目标文档中规定的数据容量。

容量测试通常和数据库有关。
容量关注的是大容量,不需要表现实际的使用。
而负载测试在大容量的情况下,还要关注性能指标。


举例:一个人背X斤
负载测试:200斤情况下能否坚持5分钟
压力测试:200,300,400....斤情况下,他的表现,什么时候失败,失败后什么表现,重新扛200斤是否正常。
容量测试:在坚持5分钟情况下,一次最多能扛多少斤。


对测试的了解

软件测试种类:
手工测试、自动化测试、静态测试

软件测试方法
黑盒测试、白盒测试、灰盒测试

软件测试类型
功能测试、性能测试、可靠性测试、安全测试、配置测试、GUI测试、备份测试、文档测试、在线帮助测试、易用性测试等等

软件测试阶段
单元测试、集成测试、系统测试、Alpha测试、Beta测试、验收测试 还有回归测试




模块测试:发现程序模块与其 接口规格说明不一样的地方。
功能测试:证明程序未能符合其 外部规格说明的地方。
系统测试:证明软件产品与其 初始目标(用户需求)不一样的地方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值