软件测试需要哪些技能?

软件测试需要哪些技能?,第1张

功能测试:验证软件产品功能是否如其 *** 作手册所述或按用户需求实现,具体方法包括边界值、等价类等,在软件生命周期各个阶段决可进行;例:检验

输入身份z是否符合要求,可以根据输入字符类型、长度、格式等内容检验其是否符合要求;

集成测试:一般是在开发过程中,各个单独开发完成的模块进行拼装后检验其整体协同工作能力及交互能力的测试,以确认数据、接口的准确为主;例:模块A的输出为模块B的输入,两个模块各自测试通过并进行拼装后,由A输入数据,检验B的输出结果是否正确;

兼容性测试:检验软件产品在其预期的不同环境的工作能力,包括软硬件环境,如不同的机型、 *** 作系统、数据库、中间件及其它相关软件;例:检验软件是否能在Unix、Linux、Windows98、Windows2000、WindowsXP、Windows2000环境运行,需要数据库支持的是否在Oracle9i、Oracle10g下均能正常工作,系统中安装不同版本Office工具时是否正常工作;

性能测试:检验某功能一模块或软件产品整体的工作效率,包括资源占用率、执行响应时间、B/S或C/S结构的还涉及用户并发能力等,性能测试有些可以手工实现并通过简单的工具进行监控,用户并发方面则多利用测试工具(如Loadrunner)进行测试;例:单位网站多用户并发测试,检验不同数量用户登录访问网站时,服务器的承受能力,如能支持多少用户并发访问,用户进行 *** 作时服务器系统资源占用情况,不同用户并发 *** 作过程单一业务执行响应时间等。

软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。

第一步:需求调研分析

第二步:概要设计

第三步:详细设计

第四步:编码

第五步:测试

第六步:软件交付准备

第七步:验收

当前,软件的趋势是朝着更大更复杂的系统发展。这部分地是因为计算机的处理能力每年都在增大,导致用户对它的期望更多。同时,这种趋势也受到为交流各种信息(从纯文本到格式化文本到图像到图表再到多媒体)而不断扩大互联网的使用的影响。在产品版本的不断升级过程中,我们了解到产品是如何被改进的,因此我们对越来越复杂的软件的胃口也就越来越大。我们需要更符合我们的需要的软件,但是,这种需要反过来又使得软件越来越复杂。总之,我们需要更多。

希望软件运行得越来越快捷。推向市场的时间是另一个重要的推动因素。

然而,要达到这个目的是困难的。我们对强大、复杂软件的需要与软件开发的当前状况并不一致。今天,大多数人还在使用25年前使用的旧方法来开发软件。这就是症结所在。除非我们革新我们的方法,否则,我们无法达到开发当前所需的复杂软件的目标。

我们可以把这个软件问题归结为软件开发人员面临的将一个大型软件项目的众多线索综合在一起的困难。软件开发界需要一种受控的工作方式。它需要一个过程来集成软件开发的许多方面。它需要一种通用方法,该方法能:

提供应如何对整个开发团队的开发活动进行组织的指导;

综合指导单个开发人员和开发团队;

规定开发成果是什么;

提供监控和衡量一个项目中的产品和活动的标准。

一个定义良好且管理良好的过程是区别成效卓著的项目和不成功项目之间的重要指标。昌平IT培训发现“统一软件开发过程”正是我们在软件开发上面临的难题的解决之道。

01 软件测试理论

作为一个软件测试人员,总不能不知道软件测试本身的东西吧。

你总要知道软件测试是什么?什么是测试用例?什么是缺陷?软件测试有些什么特点?这些仅仅是理论,还不关心会不会做。

再比如软件测试的定义,软件测试是测试程序?还是测试文档?还是测试软件等?

02 软件测试流程

如果要清楚软件测试流程,那就一定要知道软件工程、软件生命周期、研发模型、测试模型。

模型又有经典的瀑布模型、目前最流行的敏捷开发流程、V模型、W模型、X模型、H模型等,这些模型至少要随便知道三四种吧

除了这些,还需要知道在测试流程每个阶段都要相应地做些什么事吧。

03 测试文档

软件测试是技能型工作,不是研究型工作,了解了软件测试理论之后,你总会要做点东西吧,比如写写文档。

软件测试人员必备技能之一就是写文档,会总结。

软件测试有很多文档要写,比如测试计划、测试方案、测试用例、提交bug单、测试报告,有时每个迭代完全后,老大还会要求你输出几份经验文档出来,可见会写文档的测试人员是多么的必要。

04 计算机基础

软件测试工程师怎么说也算是IT人员,计算机基础总要会吧。

不然让你关个服务,你迷茫……

让你配置个环境变量,你再迷茫……

让你安装软件,卸载个软件,你搞半天,安装的软件全在C盘,卸载软件完全没卸干净,重装不成功,然后你再再迷茫……

让你在DOS命令窗口查个IP,然后再配个静态IP,你再再再迷茫

………………

计算机基础是软件测试人员必备的技能之一。

05 软件、工具

作为一个IT人员,你好意思说自己不会几个软件么?

那我们就一起盘点盘点,软件测试人员必须要会的软件:

office办公软件就不说了,软件测试要写这么多文档,office办公软件一定要会。

需求分析时,拆会测试点时,总要画一下思维导图,所以XMIND或其它思维导图软件总要会一个吧。

配置管理工具,不管是以前的SVN还是现在流行的git总要会一个。

远程连接工具,数据库和服务器基本都是配置机房,所以数据库和服务器的远程连接工具都要会,你总不能跑到机房去 *** 作吧,如果你跑到机房去 *** 作,那一定记得带台显示器去。

碰到不会的,总要查一下度娘和谷叔吧,你不会说这个人人都会,千万别这样!要不然怎么会有相同的问题,别人就能快速找到解决方法,而你搜索出来的网页总是找不到呢?

06 数据库

不管是MySQL,还是Oracle,还是SQLServere,还是DB2等等,数据库的特性、性能和优化可能不用知道,但是SQL语言总要会吧,谁让它们都认识SQL语言呢。

SQL语言又会为DDL、DML、DQL、DCL。

数据定义语言(DDL):

用于下定义和管理数据对象(库,表,索引,视图),包括数据库,数据表等,例如:CREATE DROP ALTER等语句。

数据 *** 作语言(DML):

用于 *** 作数据库对象中包含的数据,例如:INSERT UPDATE DELETE语句。

数据查询语言(DQL):

用于查询数据库对象中包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂不同的数据库查询,并将数据返回到客户机中显示,例如:SELECT语句。

数据控制语言(DCL):

用于管理数据库的语言,包含管理权限及数据更改,例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。

就算软件测试人员不需要关心数据库结构,可以不用DDL、DCL,但是针对数据(增、删、改、查)的DML、DQL语言一定要会吧。

就算你说INSERT、UPDATE、DELETE语句都很简单,照着格式直接使用就行,那SELECT呢。

SELECT语句不仅有简单查询,还有复杂查询。

复杂查询中包含多表查询、连接查询、子查询,以及包含各种函数进行的查询。

这些语句软件测试人员都要掌握吧。

07 LINUX

Linux做为做为服务器的 *** 作系统,软件测试人员需要经常在LINUX上进行搭建测试环境。

如果你说公司的测试环境都是开发搭的,系统和软件是运维装的,不用了解Linux系统。

那你就大错特错了。

如果测试过程中,运行报错了,总需要在后台去看看日志吧,分析下是不是BUG,如果是BUG,总还需要定位一下吧。

如果Linux系统很卡时,你总要去查下进程,查下系统资源管理,或者杀死几个进程,重启下服务什么的。

那这些命令软件测试人员总都要会吧。

如果你说这些还都可以依靠开发和运维,那你就当我没说。

08 编程语言

既然是IT人士,如果出去说自己不会一门编程语言,好像很没面子一样的。

目前世面上编程语言有C、C++、C#、世界上最好的语言(PHP)、JAVA、Perl、Python等等上百种,那你总要选一门语言学会使用。

一般情况下都是选公司系统目前所用的语言。

但如果不知道怎么选,那我建议软件测试人员可以选JAVA和Python,JAVA经久不衰定有它过人之处,Python能在这么短的时间内火起来,也一定是有原因的。

如果没有任何编程基础,建议先学Python,Python更加贴近自然语言,学起来更顺手,更快。

09 行业

软件测试有一条原则是:测试活动依赖于测试内容。

那这个测试内容就是公司业务,在成为业务之前,俗称需求。

经常在JD中看到有支付行业经验优先,有金融行业经验优先,有电信行业经验优先,有电商行业经验优化……

为什么会这样呢?

那是因为测试人员一定需要了解业务,熟悉业务。

从事电信行业的测试人员需要掌握各类协议,比如>

在软件测试中UT,IT,ST,UAT指单元测试,集成测试,系统测试 ,用户接受测试。

一、UT(单元测试,Unit Test):

单元测试任务包括:

1、模块接口测试;

2、模块局部数据结构测试;

3、模块边界条件测试;

4、模块中所有独立执行通路测试;

5、模块的各条错误处理通路测试。;

二、IT(集成测试,Integration Test):

也称系统集成测试(System Integration Test)或结合测试,集成测试阶段是以黑盒法为主,在自底向上集成的早期,白盒法测试占一定的比例,随着集成测试的不断深入,这种比例在测试过程中将越来越少,渐渐地,黑盒法测试占据主导地位。

三、ST(系统测试,System Test):

从技术角度看,系统测试是整个测试阶段的最后一步,所有的开发和测试在这一点上集中表现为生成一个具有一定功能的软件系统。

该阶段主要对系统的准确性及完整性等方面进行测试。

主要进行:

功能确认测试、运行测试、强度测试、恢复测试、安全性测试等。

系统测试的测试人员由测试组成员(或质量保证人员)或测试组成员与用户共同测试。在整个系统开发完成,即将交付用户使用前进行。在这一阶段,完全采用黑盒法对整个系统进行测试。

四、UAT(验收测试,User Acceptance Test):

验收测试是向未来的用户表明系统能够像预定要求那样工作。

经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

扩展资料

软件测试是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。

对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。

到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。

这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。

参考资料:

百度百科 - 软件测试

本文整理来自pro Apache jmter web application和Wikipedia

在一定的负载条件下,评估系统或应用的响应时间,吞吐量等相关指标

功能测试通过之后

对系统进行性能评估,并通过测试发现系统瓶颈,分析定位瓶颈发生的原因,协助开发修复性能问题,提高系统的处理能力。对比不同的系统,确认更好的系统。

主要指标: 响应时间、吞吐量、资源利用率。

The time taken by the application to respond to the user’s request is called the response timeEvery application should strive to minimize the response time

应用程序响应用户请求所需的时间称之为--响应时间。响应时间越小越好

对于常见的B/S结构的响应时间,如下图:

从用户发起请求,到服务完全完成响应的时间。

用户感知时间,有点预加载的意思。即本来一个页面全部信息同时返回,现在改成优先加载一部分内容

服务器处理时间。服务器处理请求并响应的这段时间。与请求的复杂性、系统的硬件及系统服负载有关。

吞吐量:单位时间内处理的事务个数。通常由transactions/second 或 bandwidth (bytes/second)来衡量。吞吐量越大越好。

服务器资源利用率,不应该超过80%的利用率。利用率越低越好。

Scalability measures how well the system can expand its capacity when additional resources are addedIdeally the system capacity will increase linearly as additional resources are added However, this is rarely achieved in practice It’s a good measure to know the resources that would be needed so that the system can handle the projected future loadVertical scalability is achieved by upgrading the hardware For example, by adding more memory, disk,

a better CPU, or additional CPUsHorizontal scalability is achieved by adding servers to the cluster For example, by adding more web

servers and application servers to a webfarm/cluster

主要有压力测试,负载测试,配置测试等

压力测试是应用程序处于超出负荷状态下长时间运行,以测试服务器的稳定性和性能表现。

A load test is a kind of performance test that’s performed at the specified load level So ideally, we would like to perform load tests at varying load levels to note the behavior of the application

在一定的负载条件下,测试应用程序的性能表现。通过不同的负载程度(load levels),观察应用程序的性能表现来得到最大的用户数,响应时间以及资源利用率等指标。

A peak load test is performed at the load that the application is expected to handle For example, e-commerce web sites experience their peak traffic during Black Friday, Cyber Monday, and the Christmas holidays So a peak load test in this case would test the application within the load specification but at the higher end

Note stress tests test beyond the peak load

In a soak test (also called an endurance test), the application is subjected to a specified load that is within the specified limit but for a long duration It is performed for many hours at a time This test determines if the application is properly reusing its resources

This test will surface problems like the following:

Successful web applications experience massive and sometimes exponential growth So it is wise to measure how the application scales Scalability is defined as how well the application handles the increase in load while still meeting the desired performance criteria

A scalability test would increase the resources and test whether or not the application is providing

a corresponding increase in capacity Ideally, we expect linear scalability (ie, doubling the hardware resources should result in double the application capacity)

A capacity test is a load test that establishes the maximum load that the application can handle while

meeting the desired performance criteria The resulting metric is called the maximum capacity It is used in scaling the application and to estimate costs for future growth

A spike test is a load test where the application is subjected to brief periods of sudden increment in load, a small fraction beyond the maximum capacity It is usually done to estimate the weakness/strength of an application The application is expected to be robust and continue to meet the performance criteria during the spike This metric is called the burst capacity

In a performance smoke test, a few common and essential use-cases along with use-cases pertaining to the

code subject to change are together tested for performance It is only when the smoke test succeeds that

the full suite of performance tests are conducted If the smoke test fails, no further performance tests areconducted until the performance defect has been rectified

Modern web application infrastructure is designed to be highly available and resilient to hardware and software failures Ideally, the architecture should ensure that there is no single point of failure and that there are standby servers that can transparently take over without impacting the user experience

In this test various equipment and software failures are simulated and relevant performance tests are

run to verify that the application is still meeting the performance criteria

Rather than testing for performance from a load perspective, tests are created to determine the effects of configuration changes to the system's components on the system's performance and behaviour A common example would be experimenting with different methods of load-balancing

以上就是关于IT软件测试行业全部的内容,包括:IT软件测试行业、昌平IT培训分享软件开发流程、软件测试需要哪些技能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/8884570.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-22
下一篇2023-04-22

发表评论

登录后才能评论

评论列表(0条)

    保存