目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、金融行业软件特征分析
金融行业软件系统具有集中度高、规模庞大、数量多、系统之间关联性强、业务复杂、需求变化快等特点,如何有效可行的实现软件测试和软件质量控制,是对金融行业软件测试人员提出的基本要求。
1)金融行业软件的业务特点
以金融行业软件的典型代表银行系统软件为例:
一般的银行系统软件都有一个核心系统,核心系统主要涉及账务的处理、清算、计息等。
银行的其它业务系统都会直接或间接的与核心系统进行交互,主要处理一些涉及业务的流程以及系统管理、用户管理等辅助功能。
此外,银行的业务系统也种类繁多。
比如:ACE/柜面、网上银行、电话银行、呼叫中心、信贷、资产托管、资金风险分析及风险控制系统、外汇买卖、基金、期货、黄金、汇票、信用卡业务以及其它衍生业务等等。
各个系统之间都可能有着密切的联系,之间也会涉及到不同系统之间的接口。
因此,在测试过程中,除了对银行的核心系统、业务系统进行测试之外,还会涉及对接口的测试,而接口测试往往需要测试人员构造一定的测试环境与测试数据来模拟各系统之间的交互。
2)金融行业软件的复杂性特点
就银行系统软件来说,本身就具有复杂性的特点。首先,银行软件具有不同的客户群,如个人用户、企业用户、银行内部管理人员、业务人员等,因此,银行软件会有针对不同客户所使用的版本或权限控制。
此外,对于不同的服务方式,如柜台、电话银行、网上银行等,都必须开发出不同的软件。其次,银行业务种类繁多,业务逻辑也非常复杂,对业务处理要求有很高的安全性和实时性,这些都要借助复杂的技术才能实现。
因此,对于测试而言,软件的复杂性也增加了测试的复杂性,对测试者来说要求有相当的经验和测试技术的支持。
另外,由于银行业务的快速发展,当旧的银行软件系统无法满足业务处理的要求时,就必须开发新的系统,对于重新开发的新系统来说,旧系统的用户数据必须保证能在新系统中正常使用。
这就涉及到了新旧版本的数据移植问题,由于新旧系统之间数据字典存在差异,数据移植后能否正常,就需要对新旧数据进行比对性测试。
比对测试过程往往会涉及数据库的应用及比对工具的开发使用。
2、金融行业软件测试方法及范围分析
以下主要从功能测试、接口测试、数据移植测试、性能测试、安全性测试、风险监控测试、几个方面来阐述金融行业软件的测试方法及范围。
1)功能测试
功能测试,主要是对软件的功能进行的验证,对于金融行业软件来说,功能测试主要进行以下功能的验证:
业务验证测试:
验证业务系统的功能是否正确实现,测试其业务处理的准确性。
①业务流程测试
金融行业软件测试首先关注的是业务的正确性,业务流程要合理、业务处理正确无误,这些往往需要测试人员具备一定的金融软件测试经验,才能更好的判断业务流程设计是否合理,是否满足客户实际需求。
以及业务流程处理过程中可能会涉及到的异常,通常通过正常案例和异常案例来验证业务流程的完整性和正确性。
业务流程除了验证流程的正确性,通常对于涉及金额、资金、库存等数据及业务流程中生成的记录是否正确性也是测试的重点。
②账务处理
对于银行来说,账务处理为核心系统功能,也是这类软件测试的重点,账务处理不仅涉及到资金,还与交易过程相关,在测试系统对账时,必须对账务处理流程有清晰的认识。
对于账务处理过程中账务是否处理正确、是否出现错账、是否需要进行调账等案例都要能进行完整的案例设计来覆盖测试点,这一块的测试一般需要有经验的测试人员来进行测试。
③清算
银行系统清算过程涉及的东西较多,如资金清算、库存清算、计费、计息、对账、登帐、报表生成等复杂的过程,同时涉及的数据量也是非常的大,对于大型系统来说更是如此数据检查的工作量也很大,同样测试人员需要对清算的全过程有清晰的了解。
④报表
对于银行系统来说,报表是直接呈现给用户最直接的结果,而对一个银行系统来说,报表的数量一般都较庞大,很可能涉及到几十张报表,因此对报表的检查也是测试的重点,这需要测试人员对银行系统涉及的业务非常熟悉,能判断报表的设计是否合理,报表数据是否正确等。
2)客户端测试
客户端主要针对的是软件界面功能的测试,根据功能划分一般涉及以下几类:
①系统管理类
系统管理主要包括系统参数管理、用户管理、角色管理、权限分配等,测试也包含相应的业务逻辑及页面测试,如查询功能的测试、显示风格、验证客户端页面显示数据是否正确等。
②数据查询类
主要验证数据查询结果客户端显示是否正确。
③其它涉及业务操作的功能界面
主要针对客户端界面的录入、查询等功能进行测试。
客户端测试还会对界面的友好性、提示信息的合理性等进行测试。
3)接口测试
对于银行来说,通常行内系统和与银行外对接的系统是独立开发的,行内与行外系统采用的数据库、通讯协议等都可能存在差异;
并且对于银行来说,还可能存在多个系统:
如:网上银行、ACE/柜面、电话银行、呼叫中心、信贷、资产托管、资金风险监控分析系统等,并且各个系统之间可能关联特别紧密,存在许多交互;
因此,在测试中会涉及到相关系统接口的测试,这时通常需要构造对接系统的测试环境、数据、业务等来模拟对接系统。
接口测试中,由于一方系统在测试过程中不可见,因此通常需要进行环境的模拟。
比如开发模拟软件来模拟被测试系统与所交互的系统之间的通讯,并且在测试过程中通常需要测试人员自己组报文,通过模拟发送器收发发送报文来进行测试,并通过后台检查报文转换是否正确,通过数据库来验证数据是否正确。
通常来说,接口的测试测试人员主要跟后台和数据库打交道,而很少通过客户端来操作,因此要求测试人员对数据库知识、对应的操作系统命令以及一些中间件具有一定的熟悉程度才能更好的进行测试。
接口测试一般在功能测试阶段完成,功能测试计划中应包含接口测试。
4)数据移植测试
对于银行来说,软件产品经常存在更新换代或升级的情况,新系统的运行环境和旧系统可能不一致。
因此,为了保证系统的顺利运行,在新系统研发出来,准备上线之前,需要把原来旧系统的客户历史数据移植过来,这就涉及到了数据移植问题。
数据移植并不是简单的数据迁移,因为新旧系统之间数据字典是不同的,为了保证移植结果的正确性,需要对新旧数据库的数据进行比对,通常可以通过人工方法或开发比对工具进行比对。
举例来说,旧系统采用的SQLSERVER的数据库,而新系统采用Oracle的数据库;
并且就系统可能存在50张数据表,新系统可能有200张数据表,而且,新系统的数据表结构与旧系统可能完全不一样,或者新旧系统的某张表可能对应另一个系统的几张表,这样在数据移植测试中就要进行几方面的测试。
比如,两个数据库可能存在有差异的地方,如数据类型不同,位数不同,在数据移植过程中对这部分就应该做详细的检查。
此外,表结构的不同,在做数据移植检查时,需要获得新旧版本的数据字典,并且对移植过来对应的所有字段数据是否移植正确做检查。
数据移植测试往往需要测试人员有足够的耐心,能仔细进行比对,发现存在的问题。数据移植测试一般在功能测试阶段完成,功能测试计划中应包含数据移植的测试。
5)性能测试
性能测试的目的主要是验证业务系统是否满足业务需求的多用户并发操作,是否满足业务性能需求,评估压力解除后的自恢复能力,测试系统性能极限。
随着金融行业软件的规模越来越大、处理能力要求越来越高,进行性能测试成为金融软件测试中必不可少的一个环节。
金融行业软件一般在投入使用时,需要接受大批量的业务,并且对于业务的响应处理时间也有很高的要求,这对于应用程序本身、操作系统、中心数据库服务器、中间件服务器以及网络设备的承受力都是一个严峻的考验。
任一个环节的问题都可能给用户带来巨大的商业损失。因此,如何保证在压力情况下系统能正常运行是金融行业软件质量保证的关键,同时也是测试人员最需关注的重点。
在性能测试过程中,通过性能测试工具来模拟与真实环境接近的情况,如通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率。
获得一定的参数(如:(如内存、CPU、缓存、系统响应时间、最大吞吐率、事务平均处理时间),以及系统可以承受的压力情况,进行针对性的测试与结果分析,找到影响系统性能的瓶颈,以便对系统进行优化。
6)安全性测试
安全性测试的目的主要是评估业务系统在网络安全、主机安全、应用安全、数据安全、运行维护安全、电子认证安全、业务连续性等方面的能力及管理措施,评价其业务系统的安全防控和安全管理水平。
对于金融行业软件来说,安全性有着重大的意思,尤其对于网络日益发达的今天,大量的金融类交易都是通过网络来实现,确保信息的安全,对安全性测试提出了更高的要求。如客户数据的安全、资金的安全;
银行主机的安全,应用程序的安全以及网络安全,某一个环节出现问题都会给系统带来巨大的风险。安全性测试主要检查出软件存在的安全隐患,确定安全等级,以期得到整改。
通常用的安全性检查手段及检查点如:跨站攻击、弱点攻击、管理界面泄露、敏感信息泄露、跨站点请求伪造、恶意上传等。
对于安全性测试来说,一般需要专业的工具作为支持,因为,大多数的安全性测试都会交给具有一定资质的第三方评测机构来进行。
7)风险监控测试
主要目的是评估业务系统的风险监控、预警和管理措施,测试其业务系统异常交易、大额交易、非法卡号交易、密码错误交易等风险的监测和防范能力以及系统资源占用的监控。
对于银行的较大型系统来说,一般都会专门开发对应的风险监控系统,一类风险监控主要是对系统的交易、资金、等情况进行监控;
另一类则是对主机资源情况进行监控,对于交易、资金类的风险监控测试时主要是根据风险监控需求来验证监控结果是否符合需求描述;
对于系统资源类的测试主要关注被监控主机的资源占用情况是否合理。
风险监控测试一般在功能测试阶段或性能测试阶段完成,功能测试或性能测试计划中应包含风险监控的测试。
8)自动化测试
现阶段实施的自动化测试与手工测试相比较,就是采用程序模拟手工测试的过程。在自动化测试过程中,原来由手工控制的操作,现在由程序来控制,不再进行手工干预。自动化测试主要用于功能测试,测试过程包括脚本的录制、编写及回放。
3、金融行业软件测试工具分析
金融行业软件测试与其它应用软件测试流程基本一致,测试过程也涉及到一定的测试工具的使用,以下是金融行业软件常用的软件测试工具:
①黑盒测试工具
黑盒测试工具较多应用的是自动化测试工具QARun、QTP。
②性能测试工具
常用于金融系统软件,适用于各种体系架构的自动负载测试工具LoadRunner,它能预测系统行为并优化系统性能。
对于性能测试来说,很多情况下,商业化的软件不一定能满足性能测试的需求,因此很多时候,需要开发一定的性能测试软件来进行针对性的测试。
③测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)工具
常用测试管理工具有:QC、TD、ClearQuest等,主要对测试计划、测试用例、测试实施进行管理,并进行缺陷跟踪管理。
4、金融软件测试模式分析
在金融机构内部组织业务测试之前,软件必须经过完整的系统测试、性能测试及安全性测试等才能交付金融机构的业务部门进行业务测试,测试模式可以有以下几种模式:
①软件开发方进行的内部系统测试、性能测试和安全性测试
开发方内部进行的测试与本文第三部分描述的软件测试方法与范围分析基本一致,下面主要就第三方测试的模式进行分析。
②第三方测试机构进行的系统测试、性能测试和安全性测试
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生就像一场马拉松,不要因短暂的疲惫而停下脚步,只有坚持到最后,才能看到奋斗的意义和价值。勇敢前行吧,你一定能够到达成功的终点。
勇于追求梦想,坚持不懈地奋斗,即使路途再坎坷,也会有收获的一天。信念和毅力是成功的关键,只要心怀信念,你就能超越自我,创造属于自己的辉煌人生。
在努力的道路上,不要畏惧失败与困难,坚持奋斗,相信自己的潜力与能力,勇往直前,你将开创属于自己的壮丽传奇,迎接人生的辉煌。