‘壹’ 面试问到软件测试中怎么搭建测试环境
要知道基本的测试理论,和一些常用的测试工具:如roadrunner,QTP,winrunner.1.白箱测试和黑箱测试是什么?什么是回归测试?回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试包括两部分:函数本身的测试、其他代码的测试。2.单元测试、集成测试、系统测试的侧重点是什么?单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。3.设计用例的方法、依据有那些?白盒测试:逻辑覆盖法,主要包括语句覆盖,判断覆盖,条件覆盖,判断-条件覆盖,路径覆盖黑盒测试:等价划分类,边界值分析,错误推测法。5.集成测试通常都有那些策略?1、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;2、各个子功能组合起来,能否达到预期要求的父功能;3、一个模块的功能是否会对另一个模块的功能产生不利的影响;4、全局数据结构是否有问题;5、单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。7.一个缺陷测试报告的组成缺陷的标题,缺陷的基本信息,复现缺陷的操作步骤,缺陷的实际结果描述,期望的正确结果描述,注释文字和截取的缺陷图象。8.基于WEB信息管理系统测试时应考虑的因素有哪些?9.软件本地化测试比功能测试都有哪些方面需要注意?软件本地化测试的目的:软件本地化测试的测试策略:1.本地化软件要在各种本地化操作系统上安装并测试。2.源语言软件安装在另一台相同源语言操作系统上,作为对比测试。3.重点测试因本地化引起的软件的功能和软件界面的错误。4.测试本地化软件的翻译质量。5.手工测试和自动测试相结合。11.需求测试注意事项有哪些?一个良好的需求应当具有一下特点:完整性:每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。正确性:每一项需求都必须准确地陈述其要开发的功能。一致性:一致性是指与其它软件需求或高层(系统,业务)需求不相矛盾。可行性:每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。无二义性:对所有需求说明的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的用户性的语言表达出来。健壮性:需求的说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。必要性:“必要性”可以理解为每项需求都是用来授权你编写文档的“根源”。要使每项需求都能回溯至某项客户的输入,如UseCase或别的来源。可测试性:每项需求都能通过设计测试用例或其它的验证方法来进行测试。可修改性:每项需求只应在SRS中出现一次。这样更改时易于保持一致性。另外,使用目录表、索引和相互参照列表方法将使软件需求规格说明书更容易修改。可跟踪性:应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接链,这种可跟踪性要求每项需求以一种结构化的,粒度好(fine-grained)的方式编写并单独标明,而不是大段大段的叙述。
‘贰’ 软件测试的流程
具体步骤如下:
1、根据项目、产品的需求提炼测试需求。
2、根据测试需求和项目的整体计划,制定测试计划,测试方案等,包括测试的时间节点安排,人力资源安排,测试策略等,并进行评审。
3、根据测试需求以及相关的设计文档,编写测试用例,即明确每个测试点的具体的操作步骤,预期结果等内容,并对用例进行评审。
4、准备测试环境和测试数据,包括测试系统部署的硬件环境和软件环境。
5、执行测试用例,提交测试过程中发现的bug,并通过版本迭代进行回归测试,验证相关的bug。
6、完成内部软件系统的功能测试,系统测试之后,系统趋于稳定,提交客户进行验收测试。
7、编写软件测试报告。
8、对测试过程进行总结,并将测试过程中的所有文档进行归档。
‘叁’ 如何搭建软件白盒测试环境
白盒测试环境主要有驱动、桩、测试用例和测试结果四个部分,测试环境模型如下: 上图可以看出,被测模块通过桩的支撑,被测试驱动通过预定的测试用例控制运行,由于被测模块的运行过程是可控状态下的,所以其结果是也可预期的,使驱动最终自动给出测试结果成为可能。 按上图的提示,完成一个简单的软件模块(比如单个函数或者几个函数)测试是比较轻松的事,但是事实上我们面临的测试往往是针对一个大的项目的,不是几个函数那么简单,大的项目中模块一般分好多种类并且可扩充的。所以我们在搭建测试环境的时候还需要考虑很多问题,比如测试驱动的扩展、用例的扩展、回归测试的自动实现等。下面基于IPLD平台测试项目,就如何搭建一个相对完美的测试环境进行技术的探讨。 1、被测项目分析 XLD平台是####装置保护程序运行平台,为装置上应用程序的运行提供底层功能支撑,该平台包含多个模块,每个模块下面有多个函数,这些模块和函数都是可以扩展的。下面列出两个模块进行示例(每个模块暂列出两个函数): 1)双向链表模块 对应头文件:lb.h,实现文件:lb.c 包含函数:增加节点函数:Lb_add 删除节点函数:Lb_del 2)数据队列模块 对应头文件:gm.h,实现文件:gm.c 包含函数:初始化函数:gm_init() 周期发送函数:gm_retranse 2、测试用例设计 作为参数或者其他条件,通过驱动控制被测模块按特定的路径运行,达到测试要求。 考虑到回归测试及团队协作等因素,用例的设计采用和代码脱离的原则,这样一方面修改测试用例的时候不用重新编译代码,另一方面测试组内成员可以在各自测试范围内设计自己的测试用例。由于测试用例的量不是特别大,还不至于需要用数据库,所以测试用例采用文件的方式实现。 这里用例文件采用配置文件(后缀名*.ini)格式,比如双向链表模块的测试用例,设计如下: 文件名”双向链表.ini” 文件内容按被测函数分块,每一块代表一个函数的测试用例,如下: [Lb_add] 用例1 = 用例1信息 用例2 =用例2信息 [Lb_del] 用例1 = 用例1信息 用例2 =用例2信息 出于便捷和可维护性考虑,这里测试用例定义统一的文件格式。我们可以在驱动中设计可重用的用例读取函数,以便测试组内人员重用。
‘肆’ 曲靖java培训学校告诉你软件测试流程
一、概述
一般而言,软件测试从项目确立时就开始了,前后要经过以下一些主要环节:
需求分析→测试计划→测试设计→测试环境搭建→测试执行→测试记录→缺陷管理→软件评估→RTM.
在进行有关问题阐述前,我们先明确下分工,一般而言,需求分析、测试用例编写、测试环境搭建、测试执行等属于测试开发人员工作范畴,而测试执行以及缺陷提交等属于普通测试人员的工作范畴,测试负责人负责整个测试各个环节的跟踪、实施、管理等。
说明:
1.以上流程各环节并未包含软件测试过程的全部,如根据实际情况还可以实施一些测试计划评审、用例评审,测试培训等。在软件正式发行后,当遇到一些严重问题时,还需要进行一些后续维护测试等。
2.以上各环节并不是独立没联系的,实际工作千变万化,各环节一些交织、重叠在所难免,比如编写测试用例的同时就可以进行测试环境的搭建工作,当然也可能由于一些需求不清楚而重新进行需求分析等。这就和我们国家提出建设有中国特色的社会主义国家一样,只所以有中国特色,那是因为国情不一样。所以在实际测试过程中也要做到具体问题具体分析,具体解决。
二、测试流程
需求分析
需求分析(RequirmentAnalyzing)应该说是软件测试的一个重要环节,测试开发人员对这一环节的理解程度如何将直接影响到接下来有关测试工作的开展。
可能有些人认为测试需求分析无关紧要,这种想法是很不对的。需求分析不但重要,而且至关重要!
一般而言,需求分析包括软件功能需求分析、测试环境需求分析、测试资源需求分析等。
其中最基本的是软件功能需求分析,测一款软件首先要知道软件能实现哪些功能以及是怎样实现的。比如一款Smartphone包括VoIP、Wi-Fi以及Bluetooth等功能。那我们就应该知道软件是怎样来实现这些功能的,为了实现这些功能需要哪些测试设备以及如何搭建相应测试环境等,否则测试就无从谈起!
既然谈了需求分析,那么曲靖电脑培训http://www.kmbdqn.cn/根据什么来分析呢?总不能凭空设想吧。
‘伍’ 在软件测试工作中,怎么搭建测试环境呢怎么做呢简单流程说下。
听您这提问,估计您是没做过测试吧。
什么是测试环境呢?大白话讲就是可以基本准确的将测试用例执行出来,并且结果是有参考意义的那么个环境~
这前题是你的测试用例是有效的。那撇掉这个不管的情况下,测试环境就不可能是固定的。
有时候,测试环境可能就是一个系统。P如你这个软件,什么都不用管,你只要测能不能装在XP系统上,那此时,一个完整的XP系统就是测试环境。
有时候,你要测一个网站支持不支持多种浏览器。那此时,你的测试环境就是一个安装了多种浏览器的操作系统。
我说的你明白了么?所谓的搭建测试环境(招聘的老有这要求,会搭建环境),就是你能搭出可供测试用的环境。简单了说~是操作系统~复杂了说,是装了特定软件做了特定设置的操作系统~
‘陆’ 软件测试环境
硬件环境:就写出你用来搭测试环境用的那台电脑的配置,如果网站要播放声音,还要加上使用的是音响还是耳机,看的见摸得着的都写上,鼠标也应加上(鼠标也属于硬件的一部分,如果使用笔记本电脑注明是否使用触摸屏)。软件环境:从操作系统开始写,操作系统(Windows、linux)版本,浏览器(IE、firefox……)版本,把与被测网站系统有直接使用关系的软件都写入软件环境【所用的软件测试工具(缺陷管理工具、qtp、loadrunner……截图软件等)不能写入软件环境,独立出来单独写“测试工具”】,另外,如果电脑里还有与被测网站无关的软件也要全部加上,并且注明版本号(比如IE6、IE8、firefox3.0等)。一般功能测试时对软件测试环境的要求是在干净的操作系统上进行,也就是说除了与被测系统有关的软件以外,不能带有其他软件,但如果有的话需要需要记录下来,以备bug再现时有依可寻。在做网站兼容性测试时应在被测电脑上安装上常用软件,看是否能与其他软件兼容。其实做网站测试是要分类别的,网站测试主要且必须的几大测试:功能测试,性能测试,负载测试,安全性测试,兼容性测试;还有其他的单元测试,集成测试,回归测试等,这些测试所有的硬件环境可以一样;但软件环境却完全不一样。
‘柒’ 如何搭建测试环境
1、真实:尽量模拟用户的真实使用环境。这里需要提一点,关于项目软件与产品软件需要不同看待。项目软件由于只针对某一群体的用户,所以测试的环境比较单一。但产品软件针对的是广大群众,所以测试环境比较复杂,要多方面考虑。
2、干净:测试环境中尽量不要安装与被测软件无关的软件。笔者就遇到这种事情,两台机器,针对一个功能,一台测试OK,另一台测试NG,最后根据调查发现,测试OK的机器上安装了客户根本不会安装的VC++开发环境,测试NG的机器正因为没有安装VC,所以测试出了这个bug:软件中缺少必要的动态链接库支持。但这个干净也不是必须的,有时还要刻意去测试某个软件去其他软件并存时的兼容性问题。
3、无毒,这个应该不必多说了,测试工作应该确保在无毒的环境中进行。
4、独立:测试环境与开发环境相互独立。就是说开发环境和测试环境最好分开,即测试人员和开发人员分别用不同的服务器(数据库、后台服务器等),避免造成相互干扰。
‘捌’ 测试环境搭建流程
不管是做什么类型的测试,最基础的功能测试,需要搭建测试环境;进阶部分的性能压力测试,对搭建环境的要求更高。所以搭建测试环境是优秀测试工程师的必备技能之一,也是开展测试工作的前置条件。
测试环境(Testing Environment),是指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称,简而言之,测试环境=硬件+软件+网络+数据准备+测试工具。
硬件,一般测试会涉及到的硬件就是计算机系统相关的内容,比如Windows系统,Linux系统和MacOS系统。测试环境可以部署在以上任何一种系统上,根据当前被测软件的具体需求而定。一般软件的运行平台,可能会更多
软件,包括当前被测的软件以及相关依赖和交互的软件。当前被测软件的部署,一般在部署好的Linux系统上安装好服务之后,可以直接在前端通过web或者APP访问,后端只要部署完成了,前端的运行还是比较简单的;依赖和交互的软件,一般是一些支持的软件,比如JDK,tomcat,数据库等。在Windows系统上;但是相关服务的搭建,比如软件运行需要交互的服务,或者是软件后台的承载服务,都会在Linux系统上搭建。
网络,这个可能是很多测试人员的一个知识盲区。网络是一个比较庞大的知识体系,涉及的内容特别多而且复杂。
‘玖’ 如何搭建测试环境
测试环境是QA开展测试工作的前置条件。稳定和可控的测试环境,可以使测试人员在执行测试用例时无需花费额外的时间去维护。有些公司运维或者研发部门会帮忙准备好测试环境,但是QA如果一味依赖其他部门,会局限测试工作的开展。
一、什么是测试环境
测试环境,指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称,简而言之,测试环境=硬件+软件+网络+数据准备+测试工具。
硬件:指测试必需的服务器、客户端、网络连接等辅助设备。
软件:指测试软件运行时的操作系统、数据库及其他应用软件。
网络:指被测软件运行时的网络系统、网络结构以及其他网络设备构成的环境等。
数据准备:一般指测试数据的准备。测试数据会在测试用例设计的阶段设计好,然后软件运行的时候,作为软件输入去验证软件功能。如果是少量、正常的测试数据,可以直接通过手动方式模拟出来,如果是大量的用户数据的模拟,可以借助测试工具来构建。
测试工具:工具是辅助测试的好帮手,针对将要做的测试类型,可选择合适的工具让我们的测试事半功倍。比如接口测试,可以选择Jmeter或者postman;抓包工具,可以选择fiddler,wireshark等。
二、搭建测试环境的原则
1. 真实
要求测试人员尽量模拟用户的真实使用环境。我们应该选用合适的操作系统和软件平台,了解符合测试软件运行的最低要求及用户使用的硬件配置,考虑到与其他软件共存时,是否能正常运行等。
2. 无毒
若搭建的测试环境感染病毒,会导致测试软件经常出现莫名的崩溃,运行不起来等现象,导致测试中断。使用正版杀毒软件防止病毒感染测试环境,保证无毒环境。
3. 独立
测试过程中要确保我们的测试环境独立,避免测试环境被占用,影响测试进度及测试结果。有时开发人员为确定问题会使用我们的测试环境,这样会打乱我们的测试活动。为避免这种情况,测试环境与开发环境应相互独立,开发人员根据缺陷表单,在开发环境中复现和定位问题。
4. 可复用
当我们刚搭建好测试环境,安装测试软件之前及测试过程中,对操作系统及测试环境进行备份是必要的。在当测试环境遭到破坏时,可以恢复测试环境,避免测试数据丢失,出现不可预知的问题。
三、如何搭建测试环境
1.认识LNMT架构
这里主要介绍测试环境服务端的部署。不同公司的服务端部署都不一样。互联网公司比较典型的部署框架LNMT(Linux+Nginx+Mysql+Tomcat)如下图:
浏览器和APP端是通过HTTP协议跟服务器进行交互的。
Nginx,有些公司也用Apache。这是常用的HTTP服务器和反向代理服务器。Nginx是用来提供静态资源的服务,Nginx接收到来自浏览器的请求以后,判断这个请求是否是静态资源(以JS、CSS、HTML、PNG等结尾的静态文件),如果是,则Nginx直接返回相应文件;如果不是静态资源,是动态请求,比如,请求某一个日志的内容,则Nginx会把请求转发给Tomcat来处理。
Tomcat,是处理动态的HTTP请求,调用各种其他服务,完成相应的任务,并返回HTTP响应给Nginx。如果涉及到写日志、读日志等数据相关的操作,就需要对数据库进行读写。另外,由于这些动态请求也会依赖一些第三方服务,比如说要调用支付宝的支付服务,那么它就会再发起一个HTTP请求到支付宝的对外服务器。它处理完整个逻辑之后,就会把相应的内容返回给Nginx,然后由Nginx返回给浏览器。
Mysql数据库,将各种数据有序的管理起来,并对其他应用提供统一的接口和服务。
2. LNMT架构部署
此处主要介绍搭建环境的思路,更详细的配置步骤不再赘述。
1) 申请虚拟机器
申请两台虚拟机A和B,机器A作为Nginx服务器+Mysql服务器;机器B作为2台Tomcat服务器。
2) 在机器A上安装和配置Nginx
下载并安装Nginx
配置环境变量
启动Nginx
3)在机器A上安装Mysql
下载安装包并解压
添加环境变量
初始化数据库
启动Mysql
4)在机器B上部署两台Tomcat
关闭防火墙和selinux
安装jdk环境
下载Tomcat并解压两次,目录不同
两台Tomcat建立软链接
修改其中一台Tomcat的配置文件server.xml,避免端口冲突。server.xml配置的是地址、端口、最大连接数、编译好的应用程序目录等信息
启动Tomcat服务
验证部署成功,即浏览器输入ip地址+端口号能成功访问
5)配置Nginx
配置负载均衡和两个Tomcat的反向代理
检查语法并加载Nginx
验证配置成功
总结
对于测试人员来说,对于这一整个机制需要理解,比如,各个工具的作用是什么,各个配置文件的意义是什么,各块的配置是怎么连起来的。
在搭建测试环境的过程中要多跟开发、运维沟通。测试环境的搭建和维护处在重要的位置,它的好坏直接影响测试结果的真实性和准确性。维护测试环境需要大量的精力,不是一个人能完成的,需要我们大家积极配合。