2017-02-14 13:54:46 qq_30261301 阅读数 2823
  • python项目之Web聊天软件开发

    当前众多网站以及管理平台都有集成私信和聊天功能,本系列课程从零开始带大家开发一个支持发起私聊、群聊、发送文件、发送图片以及消息提醒的功能,并且包含对于Web聊天室的可实施方案的对比,如:轮训、长轮训、WebSocket实现方案的对比。

    3793 人正在学习 去看看 李杰

通常二选一,最残酷。选择一种必然要放弃另一种。但是对于测试和开发,你中有我,我中有你才是最高境界。到底哪款适合你呢?

一个测试员的“宽度“

掌握软件测试的理论知识:软件测试定义、软件测试分类以及软件测试常用的方法等。(网上一搜全是理论知识,不做多说,这里可以往这个方面学习)。当然还需要有强烈求知欲,沟通流畅,追求完美:我第一就想到处女座(非黑哈),测试员应该具备怀疑且追求完美的态度,虽然不是针对所有,但是顺畅的沟通却是必要的。

职业发展方向:优秀的软件测试工程师不仅仅要掌握计算机知识,掌握编程语言,掌握至少一门开发语言(如C、JAVA等),对以后的职业发展来说,能具备开发的一些专业知识更有利于以后的职业发展。数据库知识:操作系统关于Linux、Unix核心命令。网络通信知识。还有一点就是掌握主流的软件测试工具:1、自动化测试工具典型代表(QTP最最经典,众人推啊),不必说很强大;2、TestWriter(不算主流,因为是免费,可以做基础的操作),UI自动化测试工具,零编码简单易进行数据维护;3、测试管理工具QC;4、还有接触的性能测试工具Jmeter,很简单自学也可以的

软件开发:专注技术一百年

软件开发,当然是针对以上测试人员需要了解的知识来讲,开发人员更加需要精通掌握数据库知识、精通开发语言、精通操作系统、以及网络知识等等。一般做开发的,都是很能耐住性子的,因为写代码时间很花时间以及枯燥的事情,而对于身体的硬性要求比较大,常常会遇到加班赶项目的事情,故也对身体素质有要求。职位晋升上,一般经历开发工程师、开发项目经理、开发经理、开发总监或者研发总监等晋升。软件开发纯纯的技术岗位啊。但是工资水平相对软件测试而言,是会高些。

职业本就无关性别

网上很多人问,女生适合软件测试还是软件开发。我只想说,从以上看来。职业本身是无关性别,但需要大家从能力、身体素质、个人兴趣这些客观因素去考虑哦~重点是我就是女生。

2019-11-06 10:46:34 ITChat_ 阅读数 103
  • python项目之Web聊天软件开发

    当前众多网站以及管理平台都有集成私信和聊天功能,本系列课程从零开始带大家开发一个支持发起私聊、群聊、发送文件、发送图片以及消息提醒的功能,并且包含对于Web聊天室的可实施方案的对比,如:轮训、长轮训、WebSocket实现方案的对比。

    3793 人正在学习 去看看 李杰

软件测试自学实践部分比较难,因为需要找到有问题的源代码进行测试,更建议跟团队一起学习。

下面讲讲软件测试的学习路线,希望对你有所帮助:

功能测试

1.计算机基础

计算机基础:操作系统,进制转换,逻辑代数,计算机网络基础
软件生命周期,开发模型,测试模型
2.软件测试核心理论

软件测试概念,术语,目的,意义,前景
软件测试方法及分类(白盒测试,黑盒测试,单元测试。集成测试,系统测试,回归测试,验收测试,负载测试,压力测试,易用性测试,兼容性测试,UI测试。文档测试),热门领域测试技巧
需求分析,测试计划,测试用例设计与编写(等价类,边界值,因果图,判定表法,正交实验法,错误推算法,场景法),缺陷管理及缺陷报告,测试报告
测试用例编写,缺陷编写集中演练
3.企业级环境配置实践

LInux系统和Windows系统搭建环境的区别
Linux基本命令,高级命令的使用
LInux操作系统下的服务器环境搭建
Linux环境下编辑软件的使用
Linux远程终端工具的使用
Linux系统Shel脚本基础
数据库的定义及基本概念,关系型数据库,Navicat工具
MySQL: MySQL的安装与配置,用户及连接方式,数据表操作,数据操作-增删改查,条件查询,排序,聚合函数,分组,分页,连接查询,自关联,子查询,数据库设计,命令行操作数据库,函数,存储过程。视图,事务,索引,外键
Oracle: Oracle的基本介绍,Oracle安装及简单操作,SQLplus集成工具安装及使用,SQL常用语句
4.功能测试项目实战

企业中标准则试流程,程序中的前后台数据交互
软件测试管理工具: SVN、禅道、QC\ALM、Jira
搭建功能测试实战环境
Linux环境下B/S结构产品测试项目

自动化测试Selenium和Appium

1.Python编程技术

Python: Python语言特点,运行环境搭建,Pycharm,变量的定义,输入输出,元组,列表,字
典,运算符的使用,分支结构,循环结构,函数,文件操作,面向对象编程思想,正则表达式,异常和调试,编程规范
2.自动化测试入门

自动化测试分类及自动化适用的项目、自动化测试框架选型,自动化测试行业现状,发展前景,需要掌握的技能
3.Web自动化测试:Selenium

Selenium的发展历史及工作原理,SeleniumIDE插件的使用,Firebug插件 I具及使用,元素基础定位Xpath、CSS元素定位方式,元素操作,浏览器的操作方法,鼠标操作,键盘操作,元素等待,HTML特殊元素处理,窗口截图,自动化测试模型,UnitTest框架,UnitTest断言, 生成HTML测试报告,测试报告自动发送邮件
4.Web自动化测试项目实战

搭建B/S架构的电商网站,使用Selenium对网站的核心功能进行自动化测试,包括元素定位、鼠标键盘的模拟操作及自动化测试框架的使用等
5.移动自动化测试:Applum

手机自动化测试环境搭建,真机和模拟器的测试,独立功能+业务场景脚本,手机自动化测试框架
Appium设计及实现,系统资源监控和日志分析,手机测试常见问题和用例分析
Monkey简介及安装,Monkey参 数,Monkey事件,Monkey自动化脚本,Monkey日 志管理
6.移动自动化测试项目实战

搭建APP测试环境,使用Appium对APP核心功能进行测试验证,包括ID、xpath、 list元素定位,数据交互、模块封装以及自动化测试框架的使用,生成测试报告,对APP功能进行评估。

接口测试Jmeter

1.接口测试综合核心理论

接口测试基础,接口测试流程,接口测试方法,接口测试工具
计算机网络知识,Postman安装、使用,接口手动测试,Fiddler安装、 使用,Web和手机抓包,基本设置方法
2.Jmeter

Jmeter安装、基本使用,BadBoy录制脚本,测试计划分析、Vuser及场景设计(线程、组、调度器),Jmeter关联技术,Jmeter参 数化,Jmeter调 试和应用
Jmeter的常用组件:线程组、取样器、配置元件、处理器、控制器、定时器、断言、监听器
3.接口测试项目实战

搭建接口测试环境,分析业务流程,设计测试用例,使用Jmeter执行测试用例,对页面跳转,参数传递等功能进验证
4.网络安全测试

Web安全核心理论、Web漏洞及防御、渗透测试、SQL注入、XSS跨站脚本、AppScan

性能测试Loadrunner

1.性能测试核心理论

性能测试理论、性能测试分类、性能测试常用指标、工具选择、LoadRunner安装与注册、性能测试步骤性能测试术语、类C语言
2.Loadrunner

VuGen:协议、参数化、集合点、事务、检查点、思考时间、关联、文件下载、浏览器模拟设置
Controller:手动场景设计、场景运行、IP Wizard应用、负载生成器、服务水平协议(SLA)、场景监控、服务器硬件监测工具
Analysis : HTTP报文结构、执行结果分析、图表分析、网页细分图、吞吐量相关、事务相关
性能测试调优:性能测试方案、Linux服 务器性能监控、JVM配置调优、tomcat配置调优、性能测试报告
数据库调优:慢查询、 线程池、索引命中率、行锁
性能测试指标:衡量性能好坏的包括响应时间,TPS,资源利用率
Jmeter在性能测试中的应用
3.性能测试项目实战
分析需求,搭建测试环境,编写测试计划和测试用例,录制和调试脚本,设置和运行场景,监控和收集数据,写分析报告,项目综合评审

软件测试常用的测试工具:Loadrunner

自动化测试工具QTP

0基础入门软件测试

软件测试之移动端测试

2013-05-10 17:07:00 hwaeb 阅读数 843
  • python项目之Web聊天软件开发

    当前众多网站以及管理平台都有集成私信和聊天功能,本系列课程从零开始带大家开发一个支持发起私聊、群聊、发送文件、发送图片以及消息提醒的功能,并且包含对于Web聊天室的可实施方案的对比,如:轮训、长轮训、WebSocket实现方案的对比。

    3793 人正在学习 去看看 李杰

          软件测试是伴随着软件的产生而产生的。早期的软件开发过程中,那时软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。造成这样进行软件测试的原因是因为早期大家对软件测试的定义不够清晰。

       那么到底什么是软件测试?Glenford J. Myers认为测试不应该着眼于验证软件是工作的,相反应该首先认定软件是有错误的,然后用逆向思维去发现尽可能多的错误。他还从人的心理学的角度论证,如果将 “验证软件是工作的”作为测试的目的,非常不利于测试人员发现软件的错误。于是他于1979年提出了他对软件测试的定义:“测试是为发现错误而执行的一个程序或者系统的过程。[1] Bill Hetzel指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。[2]测试是对软件质量的度量。”而现代企业大都认可软件测试是为了保证软件与产品说明书的需求保持一致。为什么需要进行软件测试?最本质的原因就在于商业利益与商业效率。软件测试是软件生命周期一个非常重要的部分,将软件测试视为一种投资更加适合。

 

1.  软件测试文档

       软件测试文档是软件测试过程中非常重要的一部分,为什么需要测试文档?应该有四方面的原因:第一是思考如何测试的指导,文档本身不是目的,重要的是测试的设计过程;第二是同僚审查的媒介;第三是后继或者其他测试者参考资料;最后一点是如果无测试文档,增加交流的损耗和工作量。软件测试文档由需求分析,功能规范说明书,开发设计文档,测试计划,测试规划说明书,测试用例,测试报告,缺陷报告组成。其中最重要的三个文档是需求分析,功能规范说明书,开发设计文档。因为需求分析是测试计划的依据。从需求分析文档,我们可以得出软件的使用范围,比如要覆盖什么样的用户群,不覆盖什么样的用户群。需求分析可以分为商务需求,用户需求,标准符合需求,系统需求。功能规范说明书的主要作用是测试规范说明书以及测试用例的依据。可以根据功能范围,要实现什么,不实现什么。得出具体的功能设计,如用户场景,操作流程和界面设计。开发设计文档最重要的作用是作为测试规范说明书以及测试用例的依据。

 

2.  软件测试技术

        软件测试的种类可以分为人工测试和基于计算机的测试。而基于计算机的测试又可以分为白盒测试和黑盒测试。原则上讲,软件测试分为静态测试和动态测试两类。静态测试包括代码审查和静态分析,动态测试包括白盒测试和黑盒测试。[3]

 

2.1 黑盒测试技术

       黑盒测试技术不考虑内部实现,主要用于功能测试,依据功能说明书设计测试用例;需要考虑的其他方面有被测应用程序所处环境;操作系统内核;API 用户界面以及文件系统的类型。常见黑盒测试技术有:

2.1.1边界值分析

        主要是分析输入,输出的边界,从而设计测试用例。如常见的边界例子:字符串,长度为零,最大允许长度,可输入最大长度;循环:0次,和最多次。数组:长度为0,和最大长度。以及一些常见的特殊值,如2月29号。

2.1.2等价类划分

       其目标是取得测试的全面和高效。通过减少冗余测试用例,达到足够广的测试覆盖。 最基本的等价类分为有效等价类和无效等价类。如取值范围1~1024,则有效等价类为1到1024范围之内;无效等价类,则为小于1,大于1024。

2.1.3组合分析

       主要的用途在于测试条件的多样性,如测试网页www.abc.com;需要考虑的问题有操作系统的类型,如Win NT4,Win2000,WinXP,Linux,Solaris;测试平台,如32位,64位;语言的种类,如中文,英文,德文,日文;浏览器的类型,如IE5,IE6,IE7,FireFox,Opera;Javascript是否启用等。这时候通过采用两两组合的方式,就可以进行有效的测试。

2.1.4因果图分析

    主要是输入的各种组合情况复杂,需要对输入的各种情况进行分析;此时,利用图解法分析输入的各种组合情况,从而设计测试用例。

 

2.2 白盒测试技术

       黑盒测试技术并不能很好的在早期发现文档或者程序中可能的错误;而白盒技术能够很好的解决这个问题,并且能够提高代码的覆盖率。覆盖率是测试所执行到的覆盖项占总数的百分比,覆盖率是测试文档定义的软件能够发布所必需满足的条件之一。

   白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,从程序的控制结构导出测试用例;单元测试是白盒测试的一种,一般由开发人员自己生成。白盒测试可分为:

2.2.1静态白盒测试

    在不执行的条件下有条理地仔细审查软件设计,体系结构和代码,从而找出软件缺陷的过程,也称为结果分析。进行静态白盒测试的首要原因就是尽早发现软件缺陷,以找出动态黑盒子测试难以揭示或遇到的软件缺陷;从另一方面给黑盒测试的测试设计和应用测试用例提供思路。可以利用代码审查工具进行,如PREFast。

2.2.2动态白盒测试

    根据具体实现代码确定如何测试。主要是检查程序的内部结构,逻辑,循环和路径,一般要遵循四条原则,一是保证一个模块中的所有独立路径至少被测试一次;二是所有逻辑值据需测试真和假两种情况。三是检查程序的内部数据结构,保证其结构的有效性,四是在上下边界及可操作范围内运行所有循环。

3.软件测试过程

       测试虽然是软件生存周期的一个独立阶段,但测试工作却渗透到从分析、设计直到编程的各个阶段中,如测试文档的编写从分析和设计阶段就开始了,而具体的测试工作随项目的不断深入也在进行中。在实际工作中,测试环节可分为五个阶段,明显的、同等重要的有三个阶段:即单元测试、集成测试(又称构件测试)和系统测试。

3.1 单元测试

       单元测试即模块测试,一个窗口、函数、菜单、报表或一个存储过程都可以作为一个单元进行测试。单元测试是测试的第一步。由开发者自己进行测试最合适,一般采用白盒测试。

3.2 集成测试

       在将所有的单元经过测试以后,接着进行集成测试。集成测试也称组装测试,即将已分别通过测试的单元按要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。要求参与的人熟悉单元的内部细节,又要求他们能够从足够高的层次上观察整个系统。集成测试阶段是以黑盒法为主,在自底向上集成的早期,白盒法测试占一定的比例,随着集成测试的不断深入,这种比例在测试过程中将越来越少,渐渐地,黑盒法测试占据主导地位。集成测试主要是开发与测试人员负责。

3.3 系统测试

       系统测试是整个测试阶段的最后一步,所有的开发和测试在这一点上集中表现为生成一个具有一定功能的软件系统。该阶段主要对系统的准确性及完整性等方面进行测试。主要进行:功能确认测试、运行测试、强度测试、恢复测试、安全性测试等。系统测试的测试人员由测试组成员(或质量保证人员)或测试组成员与用户共同测试。在整个系统开发完成,即将交付用户使用前进行。在这一阶段,完全采用黑盒法对整个系统进行测试。

3.4验收测试

       由用户参与并以用户为主对系统功能,性能等进行的系统测试。验收测试一般是在系统测试完成之后将产品交付给用户,并由用户来完成测试。其目的是检验系统是否符合预先定义的用户需求并达到事先约定的验收标准,产品可以交付使用,在实际用户环境中运行系统并发现潜在的未曾发现的错误。

3.5回归测试

      在软件修改或版本更新后重复以前的全部或部分的测试。回归测试可以在整个软件测试过程中任何阶段运行,由开发人员和测试人员共同完成,其目的是验证程序在修改或版本更新后,确保所作的更改不会破坏原有的功能,以前所有的正确功能和其他指标仍旧正确。

    

2019-09-02 15:54:35 qq_37124438 阅读数 58
  • python项目之Web聊天软件开发

    当前众多网站以及管理平台都有集成私信和聊天功能,本系列课程从零开始带大家开发一个支持发起私聊、群聊、发送文件、发送图片以及消息提醒的功能,并且包含对于Web聊天室的可实施方案的对比,如:轮训、长轮训、WebSocket实现方案的对比。

    3793 人正在学习 去看看 李杰

深圳软件测试培训:刚入行的软件测试工程师如何自学软件测试?
从题干上看,你是已经进入了软件测试行业,有了一份软件测试的工作,那表示你看好这个行业,有意愿在这个行业持续发展。
在这里插入图片描述
软件测试相对一些开发的专业来说,是属于比较杂的行业,需要了解的东西特别多,拿一些招聘简章中的要求来看,大部分都要求熟悉网络、linux系统、数据库、软件测试流程及理论、Java或者python等脚本开发语言、自动化测试理论及工具使用(selenium、Jmeter、Appium、Loadrunner等,太多,此处不一一列出)、接口测试、安全测试等等,甚至最近热门的docker、Jenkins等都要懂一些,回头想想,自己现在懂得东西还真不少。
知道了软件测试行业需要什么技能了,那没啥好版本,学呗,那就涉及到如何学的问题了。从么多年的软件测试经验中,我总结了如下的快速自学进阶的方法:
1、兵马未动粮草先行,在学习上也是这样,有扎实的理论基础,再开展实战会非常得心应手,这就要求我们把测试理论放在一个较高的位置,而不能只重技巧、工具,那就多看几本软件测试的好书吧,或者多看看网络上一些讲软件测试理论的视频课,不图学到多么高深的技术,只求多听一些概念理论以支撑自己的测试工作。
2、在实践中总结真理,其实在我们测试行业也是适用的,通过进行真实项目的实践,在项目中向经验丰富的同事学习,也是一个不错的提升方式,但这种方式进步速度可能会慢一点,这就要求我们足够自律,不断给自己加压,从最初的执行测试用例、提缺陷报告、设计测试用例,再到测试计划、需求及总结,要不断去挑战,让自己快速成长起来。公司内的项目测试类型会比较单一,没事就多逛逛大咖的博客或者论坛吧,不然自己的思维、技术会被限制的。
3、如果是零基础入行的话,建议自学一些软件测试的在线课程或者线下的培训课程,这样能快速构建软件测试的理论体系,对自己在职业中的发展会有很大帮助。
总之如果在公司通过项目学习的话,可以1、2个月上手功能测试,但由于公司项目可能单一,对自动化测试或者其他测试类型学习可能机会较少;如果通过培训学习软件测试的话,可以在3、4个月内掌握软件测试的基础理论及自动化相关的技术,会对个人的职业生涯有很大的指导及帮助。如果你还没入行,建议直接选择职业培训,再进入软件测试行业。
总结一下,如果是想自学软件测试,那就必须具备三大素质,一是学习方法,二是足够自律,三是有强大的意愿,我觉得第三条是前两条的基础。

2019-09-05 10:46:38 wangzhi44444 阅读数 13
  • python项目之Web聊天软件开发

    当前众多网站以及管理平台都有集成私信和聊天功能,本系列课程从零开始带大家开发一个支持发起私聊、群聊、发送文件、发送图片以及消息提醒的功能,并且包含对于Web聊天室的可实施方案的对比,如:轮训、长轮训、WebSocket实现方案的对比。

    3793 人正在学习 去看看 李杰

开篇语

从即日起, 关于「软件测试」基础教程正式开篇. 本教程适合想学习软件测试方面的同学. 完全从0开始, 由浅入深开始学习.
本教程持续更新, 欢迎关注. ?

软件测试基本概念

软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。 换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 「来自百度百科」
软件测试说白了就是对『软件进行体检』.

了解一下开发中的软件设计模型

瀑布模型

  1. 是线性模型的一种,在所有模型中占有重要地位,是所有其他模型的一个基础.
  2. 每一个阶段执行一次,按线性顺序进行软件开发.
    瀑布模型

测试阶段在软件实现后,必须在代码完成后留出足够多的时间给测试,否则将导致测试不够充分,很多问题到项目后期才暴露出来

优点

  1. 开发的各个阶段比较清晰.
  2. 强调早期计划及需求调查。
  3. 适合需求稳定的产品开发

缺点

  1. 依赖于早期的需求调查,不适应需求的变化。
  2. 单一流程不可逆
  3. 风险往往延至后期才显露,失去及早纠正的机会。
  4. 问题在项目后期才开始暴露.
  5. 前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败.

因为瀑布模型的缺点,所以要改良一下

沿用瀑布模型的线性思想,细化了各个阶段,在某些重要关注的阶段之间掺入迭代的思想。每个阶段都可以融入迭代操作.

快速原型模型

  • 在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。
    • 第一步是建造一个快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足用户的要求,开发人员可以确定用户的真正需求是什么。

    • 第二步是在第一步的基础上开发出用户满意的软件产品

快速原型模型

优点

  • 克服瀑布模型的缺点,更好地满足用户的需求并减少由于软件需求不明确带来的项目开发风险。适合预先不能确切定义需求的软件系统的开发.

缺点

  • 不适合大型系统的开发(适合开发小型的、灵活性高的系统)。前提要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新.

螺旋模型

螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,螺旋模型沿着螺旋线旋转,即在坐标的4个象限上分别表示了4个方面的活动.

螺旋模型

优点

螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。

缺点

采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中, 如果未能够及时标识风险,势必造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间

注意: 这种方式了解一下即可, 实际开发中并不常用.

总结

今天主要介绍了软件开发过程上的常用模型, 主要是为了后期软件测试作准备. 至少作为一个测试人员这些基本的常识要知道.

今天主要说了三种软件开发模型, 分别是:

  • 瀑布模型
  • 快速原型模型
  • 螺旋模型

本篇完

软件测试基础

阅读数 71

没有更多推荐了,返回首页