第一篇:一个软件测试菜鸟奋斗史
一个软件测试菜鸟奋斗史
入行2年,仍然在手工功能测试
大学毕业后就开始做软件测试,一直做了2年,看着自己同样是做软件测试的同学有的已经做到了测试主管,有的做性能测试,工资都比我高出了不少,突然感觉到压力,我个人比较爱面子,家里也不属于富二代,我想自己应该在技术上进行提升,让自己有能力跟其他同学一样做一些自动化的测试工作
测试自学
然后我开始在加入了好几个QQ群,其中有Besttest的QQ群,他们一直在讲一些免费的公开课,抱着学习的心态,去听了他们性能测试的公开课,从此之后我便喜欢上了Besttest,因为他们的公开儿课从来都是以实际的环境进行去操作讲解,并不会像其他一些地方只说不做,或者只说大话。从此他们的公开课一节不拉的去听去学习
我最喜欢的事Besttest网站上的测试自学路线图跟测试自学的视频,完全指明了我学习性能的路线,节约了我大量去查找资料的时间,遇到一些不懂的问题还可以直接跟他们讨论学习。
就业
学习完基础的性能测试视频后,我找的小强老师单独给我补习了几天课程,在课程接受后,小强老师把我的简历推荐到了一些一线互联网公司,期间接到了新浪、百度、360、搜狐等公司的面试电话,我也顺利的拿到了新浪微博的offer。
入职1个月后,感慨良多,现在不管是工资达到自己的预期,现在公司也提供了我足够大的发展平台。所以我想对其他测试界的朋友说,为了自己,为了以后,多多学习吧。
第二篇:一个非名牌大学毕业生奋斗史
一个非名牌大学毕业生奋斗史
从2007年至今,我毕业两年多了。这两年,感觉自己成长了许多,也学会了很多,更重要的是,我近乎完美的完成了由学生到职业人的转变。现在我已由刚毕业时的1500元实习工资做到了现在的年薪十万多。年薪十万对许多名牌大学的学生来说,也许刚毕业就能拿到,但对大多数大学毕业生来说,这是个不小的门槛儿。我愿意把我的经历与大家分享。
求职第一步:选好行业是关键
无论是我个人经验,还是前辈们的成功经验都说明,行业的选择对一个初涉职业者来说是相当关键的,它代表着你以后的发展方向。以后你无论换职位(如,原来做产品,现在做销售),还是跳槽,都要这在个行业内发展。一旦离开了这个行业,你之前积累的经验几乎都废了。我的一个朋友原来在海尔做海外产品经理,现在跳槽到LG做人力资源培训课长,虽然在职位上有跨度,但仍然没有离开家电行业,是个成功的案例;相比之下,我另一个朋友,从食品跳到房地产,又跳到贸易进出口行业,薪水却一直超不过3000元,原因就在于他跨行业发展,经验得不到积累。而我本人却一直没跳槽。频繁跳槽不利于职业的发展。
职场第二步:虚心求教,不合理就提出,不懂就问,寻求高效率的方法是关键
初涉职场的大学生,首先就是要摆低姿态,要放下那股心高气傲的劲,因为要学习的东西太多,而且这些东西在学校是学不来的。我前几天看到有个关于清华毕业生实习经历的帖子,他说了一个令他十分苦恼的故事。
在他刚实习的时候,他师傅递给他十几页文本资料,包括销售报表什么的,要他做成电子版的资料,并且当天下午就要用。我们知道,十几页文档,就算打字再快,无论如何在一个下午完不成的。但是他竟然没有提出这个疑问,中午饭也不吃,一直在敲键盘打字,做表格。结果到下午师傅问他要时,他当然没有完成。事实上,他公司就有一台文本仪,专门做扫描录入用的,几分钟就能搞定。如果他在接到任务时提出异议“用键盘打下午完不成吧?”,他师傅自然会告诉他用文本仪录入。而他既然不问,他师傅却可能以为他知道用文本仪去扫描录入,哪知道他一味蛮干,用键盘去敲字,精神固然可嘉,但工作要讲究效率。
最后结果就是,他被师傅骂,他生师傅气,他认为自己没有功劳也有苦劳。
我却不这么看,这些问题固然有信息沟通上的偏差,但主要责任在于这个实习生自己,他不虚心。结果他跟师傅之间关系越闹越糟糕,最后还打算要离职。所以我强调“虚心求教,不合理就提出,不懂就问,工作讲究高效率”。这只是一件小事,工作中还有很多很多情况,特别是突发事件,要你去灵活应对,你不讲究工作效率和技巧,一味蛮干肯定是不会得到上司赏识的。
职场第三步:不要太拿工资当回事儿
我说这话,可能会有很多人不认同。这么说吧,金庸的《鹿鼎记》大家都听看过吧,里面韦小宝经常说的一句话“花花轿儿人抬人”,水涨船高,意思是你让别人好了,你就会好;同样的,你把本职工作干好了,对公司好了,对上司好了,他们焉能看不见?等这种现象积累到一定程度,自然会给你加薪。如果你仅仅因为工资低而抱怨,不能尽心工作,甚至频繁跳槽,往往会适得其反。
职场第四步:不要嫌工作比别人多
肯定更有人反对我了。但是对于这个事,你必须学会逆向思维。因为你初涉职场,需要学的东西太多,特别需要锻炼的机会,工作多,事情多了,你学的东西不就比别人多吗?我刚转正时是做区域销售运营的工作,负责从拿订单到产品发货的整个过程。公司一共划分四个区域,我负责的北区分销商最多,工作最繁琐。而东区和南区大客户较多,西区则正在开发中,他们的工作都比我轻松。但是,我顶着压力坚持下去了。或许这就是我能快速成长起来的原因。
第三篇:软件测试(推荐)
一、简答5*6’
1.为什么不让时间有余的人做测试工作
表面上看这体现了管理的效率和灵活性,但实际上也体现了管理者对测试的轻视。测试和测试的人有很大关系。测试工作人员应该是勤奋并富有耐心,善于学习、思考和发现问题,细心有条理,总结问题,如果具备这样的优点,做其它工作同样也会很出色,因此这里还有一个要求,就是要喜欢测试这项工作。2.软件测试风险主要体现在哪里
我们没有对软件进行完全测试,实际就是选择了风险,因为缺陷极有可能存在没有进行测试的部分。因此,我们要尽可能的选择最合适的测试量,把风险降低到最小 3.所有软件测试缺陷都需要修复吗
从技术上讲,所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷。测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。发生这种现象的主要原因如下:-没有足够的时间资源。在任何一个项目中,通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间,修改缺陷可能引入新的缺陷。
-有些缺陷只是特殊情况下出现,这种缺陷处于商业利益考虑,可以在以后升级中进行修复。-不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考,以做出正确的决定。4.如何减少测试人员跳槽带来的损失 建议我们从以下两个方面做起:
-加强部门内员工之间的互相学习,互相学习是建立学习型组织的基本要求,是知识互相转移的过程。在此基础上,可以把个人拥有的技术以知识的形式沉积下来,也就完成了隐性知识到显性知识的转化。
-管理者就应该把员工的个人成长和企业的发展联系起来,为员工设定合理发展规划并付诸实现。
5.验收测试的注意点有哪些 测试要注意下面的事项:
(1)用户现场测试不可能测试全部功能,因此要测试核心功能。这需要提前做好准备,这些核心功能一定要预先经过测试,证明没有问题才可以和用户共同进行测试。测试核心模块的目的是建立用户对软件的信心。当然如果这些模块如果问题较多,不应该进行演示。(2)如果某些模块确实有问题,我们可以演示其它重要的业务功能模块,必要时要向用户做成合理的解释。争得时间后,及时修改缺陷来弥补。(3)永远不能欺骗用户,蒙混过关。6.完全测试程序是可能的吗
实际上完全测试是不可能的。主要有以下原因:-完全测试比较耗时,时间上不允许;
-完全测试通常意味着较多资源投入,这在现实中往往是行不通的;-输入量太大,不能一一进行测试;-输出结果太多,只能分类进行验证;-软件实现途径太多;
-软件产品说明书没有客观标准,从不同的角度看,软件缺陷的标准不同;因此测试的程度要根据实际情况确定 7.是不是发现的缺陷越多就说明软件缺陷越多 其中的原因主要如下:
-代码复用、拷贝代码导致程序员容易犯相同的错误。类的继承导致所有的子类会包含基类的错误,反复拷贝同一代码意味可能也复制了缺陷。-程序员比较劳累是可以导致某些连续编写的功能缺陷较多。
“缺陷一个连着一个”不是一个客观规律,只是一个常见的现象。如果软件编写的比较好,这种现象就不常见了。测试人员只要严肃认真的测试程序就可以了。8.软件测试就是QA吗
软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复。而质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审,测试工作也是测试保证人员的工作对象。软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作。9.测试产品和测试项目区别
习惯上把开发完成后进行商业化、几乎不进行代码修改就可以售给用户使用的软件成为软件产品,也就是可以买“卖拷贝”的软件,软件项目是一种个性化的产品,可以是按照用户要求全部重新开发,也可以修改已有的软件产品来满足特定的用户需求。项目和产品的不同特点,决定我们测试产品和测试项目仍然会有很多不同的地方:
-质量要求不同。通常产品的质量要高一些,修复发布后产品的缺陷成本较高,甚至会带来很多负面的影响。而做项目通常面向某一用户,虽然质量越高越好,但是一般只要满足用户要求就可以了。测试资源投入多少不同。做软件产品通常是研发中心来开发,进度压力要小些。同时由于质量要求高,因此会投入较多的人力、物力资源。项目最后要和用户共同验收测试,这是产品测试不具有的特点。此外,测试产品与测试项目在缺陷管理方面、测试策略制定都会有很大不同,测试管理者应该结合具体的环境,恰如其分的完成工作 10.如何编写提交给用户的测试报告
测试报告一般分为内部测试报告和外部测试报告。内部报告是我们在测试工作中的项目文档,反映了测试工作的实施情况,一般外部测试报告要满足下面几个要求:
根据内部测试报告进行编写,一般可以摘录;不可以向客户报告严重缺陷,即使是已经修改的缺陷,开发中的缺陷也没有必要让客户知道;报告上可以列出一些缺陷,但必须是中级的缺陷,而且这些缺陷必须是修复的;报告上面的内容尽量要真实可靠;整个测试报告要仔细审阅,力争不给项目带来负面作用,尤其是性能测试报告。总之,外部测试报告要小心谨慎的编写。
二、论述2*12’
1.请论述为什么要进行软件测试,并列举历史上2~3个著名软件测试(缺陷)案例,说明测试重要性
软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(,另一方面是确认软件以正确的方式来做了这个事情。第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。
爱国者导弹防御系统把“枪口”对准了自己人 美国迪斯尼公司的狮子王游戏软件的兼容性问题 售票系统性能问题
2.论述软件测试科学的发展历程 1957年之前-调试为主 20世纪50年代,计算机刚诞生不久,只有科学家级别的人才会去编程,需求和程序本身也远远没有现在这么复杂多变,相当于开发人员一人承担需求分析,设计,开发,测试等所有工作,当然也不会有人去区分调试和测试。
1957–1978-证明为主 当时计算机应用的数量,成本和复杂性都大幅度提升,随之而来的经济风险也大大增加,测试就显得很有必要了,这个时期测试的主要目就是确认软件是满足需求的,也就是我们常说的“做了该做的事情”。
1979–1982-破坏为主 我们不仅要证明软件做了该做的事情,也要保证它没做不该做的事情,这会使测试更加全面,更容易发现问题。
1983–1987-评估为主 人们提出了在软件生命周期中使用分析,评审,测试来评估产品的理论。软件测试工程在这个时期得到了快速的发展.1988–至今-预防为主 预防为主是当下软件测试的主流思想之一。测试不是在编码完成后才开始介入,而是贯穿于整个软件生命周期。3.论述软件缺陷的由来
软件缺陷的产生主要是由软件产品的特点和开发过程决定的。
软件本身:①需求不清晰,导致设计目标偏离客户的需求,从而引起功能或产品特征上的缺陷。②系统结构非常复杂,而又无法设计成一个很好的层次结构或组件结构,结果导致意想不到的问题或系统维护、扩充上的困难;即使设计成良好的面向对象的系统,由于对象、类太多,很难完成对各种对象、类相互作用的组合测试,而隐藏着一些参数传递、方法调用、对象状态变化等方面问题。③对程序逻辑路径或数据范围的边界考虑不够周全,漏掉某些边界条件,造成容量或边界错误。④对一些实时应用,要进行精心设计和技术处理,保证精确的时间同步,否则容易引起时间上不协调,不一致性带来的问题。⑤没有考虑系统崩溃后的自我恢复或数据的异地备份、灾难性恢复等问题,从而存在系统安全性、可靠性的隐患。⑥系统运行环境的复杂,不仅用户使用的计算机环境千变万化,包括用户的各种操作方式或各种不同的输入数据,容易引起一些特定用户环境下的问题;在系统实际应用中,数据量很大。从而会引起强度或负载问题。⑦由于通信端口多、存取和加密手段的矛盾性等,会造成系统的安全性或适用性等问题。⑧新技术的采用,可能涉及技术或系统兼容的问题,事先没有考虑到。
团队工作:系统需求分析时对客户的需求理解不清楚,或者和用户的沟通存在一些困难。不同阶段的开发人员相互理解不一致。对于设计或编程上的一些假定或依赖性,相关人员没有充分沟通。项目组成员技术水平参差不齐技术问题。算法错误:在给定条件下没能给出正确或准确的结果。语法错误:对于编译性语言程序,编译器可以发现这类问题;但对于解释性语言程序,只能在测试运行时发现。计算和精度问题:计算的结果没有满足所需要的精度。系统结构不合理、算法选择不科学,造成系统性能低下。接口参数传递不匹配,导致模块集成出现问题。
项目管理的问题:缺乏质量文化,不重视质量计划,对质量、资源、任务、成本等的平衡性把握不好,容易挤掉需求分析、评审、测试、等时间,遗留的缺陷会比较多。系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难。开发周期短,需求分析、设计、编程、测试等各项工作不能完全按照定义好的流程来进行,工作不够充分,结果也就不完整、不准确,错误较多;周期短,还给各类开发人员造成太大的压力,引起一些人为的错误。开发流程不够完善,存在太多的随机性和缺乏严谨的内审或评审机制,容易产生问题。文档不完善,风险估计不足等。4.软件测试V模型
①绘制示意图
②阐述每个步骤是做什么 需求分析
即首先要明确客户需要的是什么,需要软件作成什么样子,需要有那几项功能
概要设计
主要是架构的实现,指搭建架构、表述各模块功能、模块接口连接和数据传递的实现等项事务。详细设计
对概要设计中表述的各模块进行深入分析,对各模块组合进行分析等。软件编码
按照详细设计好的模块功能表,编程人员编写出实际的代码。单元测试
按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的具体划分按不同的单位与不同的软件有不同。集成测试
经过了单元测试后,将各单元组合成完整的体系,主要测试各模块间组合后的功能实现情况,以及模块接口连接的成功与否,数据传递的正确性等,其主要目的是检查软件单位之间的接口是否正确。根据集成测试计划,一边将模块或其他软件单位组合成系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。系统测试
经过了单元测试和集成测试以后,我们要把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞,等。验收测试
主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。
第四篇:一个软件测试主管的职业之路
我从软件测试工程师到主管的成长历程
张军(化名)从前是学艺术的,由于对测试行业的强烈兴趣,毕业后在深圳从事软件测试工作。工作不到一年的时间里,已经从测试员升职到测试主管了。对于学习、工作,他积累了许多点点滴滴的经验,愿意与大家分享。
走入测试行业:爱好,技术
说实话,我做测试工作的时间不是很长,被深圳市冠泰瑞恒科技有限公司外派到一个外企,到现在也就是一年多的时间吧,不过,我愿意把自己学习和工作中积累起的这些点滴与大家分享。
我走入测试行业完全是因为兴趣,兴趣产生学习和工作的热情,真的是一点都不假。从我选择走入这个行业,学习、工作,从测试员到测试主管,我都是快乐的,也很充实,很有成就感。
我觉得,在决定走入测试行业后,就要在这方面多做准备和积累,首先要有坚实的测试理论基础,这些知识不仅是学习的时候要学的扎实,在以后的工作中还要继续不断的完善。其次,要有一定的行业知识。毕业后找工作时,有做手机测试的,也有做外包测试的。我做的是ERP产品。大家都知道,ERP(EnterpriseResourcePlanning)就是企业资源计划系统,是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。我在学习测试专业前曾接触到ERP,所以,在毕业的找工作的时候就往这方面发展了。
说到找工作,我觉得精心制作简历是一方面,同时还要有灵活的面试技巧。有时还要把在生活中学到的东西应用到面试中去。我记得我第一次去面试的时候比较凑巧,面试前的头天晚上我在电视里刚好看到一个和面试有关的节目,结果,第二天在我自己去面试的时候就被我用到了。当时是在问到薪金待遇时。我觉得这是很多人包括我自己在面试时都会觉得是比较头疼的问题,因为,说的多了,不行;说的少了,也不行。这时,你就要用一些技巧了。
这时你可以先试探性的询问对方公司在招聘这个职位的时候是怎么规定的?等你了解了这些后,你再就自己的技术能力来衡量相应薪金的比价,另外就是看这个公司的实力,还有一点就是行业内这个职位的大致待遇情况。这样的话,在你说出你对薪金的要求的时候,如果,应聘的公司较小,但是还是存在一定发展空间而且你也想试试的情况下,你要得工资低,对方会考虑到可能是你已大致了解了公司的实力所以才开出这样的条件,而不是你自己的技术不行;如果你看到这个公司的状况还是比较好的,是家有一定实力的公司,这时,你可以适当抬高自己的身价。
我的应聘还是比较顺利的,第一天应聘,第二天就上班了。我记得当时面试的时候大约谈了两个半小时,就一次性面试过关。另外我自己也比较引以自豪的是我是我们公司唯一一个在两个月之内转正的。初来乍到:熟悉环境,尽快融入
开始进入公司的时候首先要熟悉公司的环境。在一些大的公司可能会给大家熟悉环境的时间,还会安排一些相应的培训什么的。我当时进入冠泰瑞恒科技后,我们部门经理给我们刚入职的同事安排了一个多月的测试相关的辅导,这样我后面工作上上手就快了很多。
所以,你必须尽快的在一到两周之内熟悉公司各个方面的环境,尤其是人员环境。我觉得人际关系在整个公司里面也是很重要的一方面,夸张一点说甚至是比你的本职工作还要重要的。因为,掌握技术是你智商方面的问题,而与人交往就不是那么简单,因为我们的兴趣、爱好可能差别很大,性格也有内向和外向的,所以在进入社会步入工作岗位后与人交往真的是很考验一个人。如果你在公司人际关系搞得好的话,工作各方面的协调顺利,工作的进展也会很顺利。
还有就是要尽快的熟悉公司的测试环境,操作系统、开发语言、平台,接着就是要了解公司的产品,掌握产品相关的知识。像我们项目组是自己研发的经销群、财务这样的一个系统。你要了解公司产品的时候,可以向产品研发部,或设计部要些相关的说明文档,尽快的介入这个行业,熟悉自己要做的测试项目。说实话,我是学习艺术专业的,不是学计算机的,所以我当初的时候有点晕,我就直接拿着产品自己在那儿摸索,自己写出一个产品使用说明。向这样的事情,可能在大的公司会有专门的配选,在小公司可能就要自己学习产品了。不过,我觉得这样是挺锻炼人的,又发掘了你另一方面的潜能呢。
尽可能多的参加研发部的会议
员工间的技术交流。在我们项目像这样的会一周大概要有一到两次,大家相互交流工作进展情况,或者是一些相关的技术方面的交流。不一定是非常正式的,但我感觉这样的会议是非常有必要的。
还有就是公司研发部召开的会议,你也要一定要也应该的介入、参加。我当初介入最早的是他们的研发意向,然后他的一些需求调研啊,还有其他的一些设计啊等等一些会议。像这样的会议我觉得是一定要抽出时间来参加的,因为这确实是对你的工作有很大的帮助的。因为在立项会议上,你可以了解项目的可操作性,以及项目的特点;在调研会议上,了解需求,市场需求是开发的依据,也是测试的依据。同时一定要参加需求更改会议,以便你更好的进行测试工作。在这些都做到位后,我们就开始写测试计划了。
测试计划
写测试计划就像我们在课堂上学到的那些,测试计划、测试用例,开始我们的测试流程。这时就是具体应用的时候。写测试计划的时候要跟研发部要详细设计文档、产品规格说明书和需求调研的说明(产品使用说明)这样的相关文档。如果在大公司的话,他的设计部会写产品使用说明或者是一些测试规约。还有就是一定要他的开发计划,因为你做每一步测试是根据开发进度来进行的,开发计划是必不可少的。
最后根据上述的文档,从时间、内容、资源、所用工具,还有人力安排,这样一份简单的测试计划已经成形。像一般小的公司,他会对哪个人在哪天完成那项工作是很关注的,像我们原来学的那种比较完整的文档,在这样项目里是需要变通的,因为他们也没有很多的人力物力没有很多的时间去看那样的文档。编写测试用例首先要根据产品的特点编写。你的产品的特点在产品没有成型之前,你肯定不是特别了解也不是特别清楚,但是你可以根据它的框架大概的给搭出来,你能想到的尽量给细化写到文档里面,然后在测试过程中不断的完善。
如果在测试执行的过程中突然间发现一个比较好的测试用例,一定要及时给补充进去,你不给它补充上去是你的一大损失,因为你以后的工作中可能还会需要这样的文档,或者以后接手你工作的人,他可能会看到这个文档,这对他以后的工作也会有很大的帮助。在大的公司有专门的测试设计人员来编写这些东西,在小公司就是测试主管或者测试员编写。
像我们项目从测试用例、测试计划、测试执行什么的都是我来做的。当初是因为第一个项目比较小,我自己做,本来是给我招了一个助手,也就用了大概一两个月吧。我个人的感觉是除非你招特别熟练的,对行业,对测试技术各方面都比较熟悉的,一来就能上手工作的还行。如果不这样,招一个刚毕业的应届生,他对测试行业不是很了解,而公司人手本身就少,你根本就没有时间给他做培训,而你还要工作,也没有那么大的精力去手把手的教人家。
在设计测试用例的时候要考虑周到,不要重复。就我的工作来说做ERP产品就是注意各个模块的借口以及数据测试。有好多的接口,比如说销售模块是和财务模块在测试时是会发生重复的部分,这个要自己注意。行业性比较强接下来说执行测试。要按照测试用例来执行。你不能说做了测试用例而在工作的时候根本就不看,这样对你的工作是没有帮助的。因为你按照测试用例来执行的话基本就是按照自己的思路来做,这样你走到哪一步心里都非常的清楚。这样最大的好处就是减少重复的工作,可以提高工作效率。我想这点无论是在小公司还是大公司,还是就我们工作的本身都是很重要的。
然后,最好是做测试日记录,目的就是明确自己测试到哪里,以免重复工作。就我自己来说,我在做测试的时候每天都会做测试日记,一个是记录我今天发现了多少个bug,工作到哪一步了?做了哪些工作。我发现这个做测试日记录是很有意思的。每天测出了多少各bug,我虽然在那个bag管理工具上录了一遍,但是我还是要把它记录下来。
我当初第一天去上班的时候,第一次接触到这个执行测试的时候,我记得特别清楚,我是找出了65个bug。我觉得这说明两个问题,一个是我工作特别认真,一个是研发部有问题确实是有问题。所以,你不要觉得搞研发的都很厉害,很牛啊,你会有点怵。
当初我们公司也是联想、方正、惠普的这三个主力支柱,但是我没有觉得怵,虽然他们很自负。基本上很小的错误都能提出来,他们认为那根本不是bug。但是你到了讨论会或技术交流会、评估会的时候可以提出来,因为这是你作为一个测试员最基础的必须的工作,也是你对工作认真负责的态度。
和开发人员的沟通。这个是对测试人员很重要的。这个我在前面提到过,每个人不是独立的在做事情,工作中都是需要相互的配合,特别是测试工作,有问题,你需要及时的和研发人员沟通。如果你连沟通都做不好,那么,你的测试工作根本就没有办法进行。在这当中,你要坚持自己的原则,就是对事不对人,因为,这个产品有问题,它就是存在bug,那么,就要有人负责去修改。你不能说,对方是部门领导你就不敢坚持自己提出的问题。第二,就是要坚守其他的测试原则,这就是我们在学习理论的时候所掌握的一些知识。因为,我们学习时的课程设计就是根据项目来设置的,很多东西基本和实际工作中相吻合。
作为测试负责人,在测试工作中我给自己订了一个基本的工作流程,现在也就当作是部门的规章制度在执行。就是录入bug以后,我会在下面做bug描述,开发人员是否要修改,为什么要修改,大概时间是多少,这样督促对方的话,会有利于工作的进度。不然,如果工作没有完成,就会出现相互推诿的现象。
查出bug后就是督促开发人员修改bug。同时也要注意bug管理工具。自己要用好bug管理工具,也要督促开发人员用好bug管理工具。因为,有很多开发人员还都是比较懒的,他当时会跟你说,都有什么bug,你到我的机器上演示给我看不就行了吗?
这是一个不好的习惯,也很费时间。所以,你一定要督促他们使用bug管理工具。这是我深有体会的,而且,还在两次较大的公司会议上提出,最终是被大家所接受认同。大家都知道,一般开发的男同事较多,做测试的女孩子较多,你在提出问题的时候态度不要太强硬,在日常的工作中委婉的提醒他,大家一般都不会太为难你的。不但工作解决了,同事间的关系也很融洽。
接着就是测试报告的编写。这些我们在就业班的时候都学过,就是测试背景、内容、测试通过率。以及产品的优点、缺陷,还有你对项目的建议。这一切都做好了就是开测试评估会了。
关于自动化测试我的个人意见
我个人认为现在是自动化成风。现在很多的公司,无论是大是小,无论这公司有没有用过这个测试工具,他都会问你会用几种测试工具,会自动化测试吗?我当时去冠泰瑞恒面试的时候,也遇到这个问题,当时我首先问他的是,咱们公司做过手工以外的不管是性能啊还是功能其他测试吗?他们回答说没有。一个没有做好手工测试的产品,是坚决不能用工具代替手工的。
自动化测试是不能代替手工的。自动化测试用好了可以节省时间提高效率。但是如果你用不好,反而会增加自己的工作量。如果你的需求和界面一直在增加,那么自动化也是用不起来的。我觉得适合自动化测试的公司,一个是产品对安全和性能要求严格的;一个可以有专人对教本文档进行维护的。像那些手工测试不过关,需求经常变动,人员少,产品的GUI 经产改动的公司都不太适合用自动化测试。
一不小心就整理了这么多点滴出来,还真没想到自己还是很能写的嘛。估计这和我在公司除了做测试工作,还做些其他工作有关。我说过,因为冠泰瑞恒安排我从事的这个项目规模不大,所以,一些产品的使用说明、产品的安装说明,包括客服培训,都是由我来写的。在测试之余,一些和测试无关的工作我也会去做,比如测试制度的编写,OA 产品管理员,售前咨询顾问 这样的工作。我想我就是这么锻炼出来的。
第五篇:软件测试复习资料
1. 黑盒测试法是通过分析程序的功能来设计测试用例的方法。
2. 黑盒测试除了测试程序外,它还适用于对需求分析阶段的软件文档进行测试。3. 白盒测试除了测试程序外,它也适用于对软件具体设计阶段的软件文档进行测试。4. 单元测试一般以白盒测试法为主,测试的依据是模块功能规格说明。5. 软件测试中常用的静态分析方法是引用分析和接口分析。
6. 测试人员的基本素质为计算机专业技能、测试专业技能、行业知识
7. 软件危机的体现为:A、开发成本和进度估计不正确B、用户对完成的软件不满足C、软件经常不可维护;
8. 软件测试按照开发阶段划分:A、单元测试
B、集成测试;系统测试C、确认测试;验收测试
9. 软件测试按照测试技术划分:A、性能测试、负载测试、压力测试B、恢复测试、安全测试、兼容测试
10. 软件测试项目周期是指:A、需求阶段、测试计划B、阶段测试、设计阶段测试、执行阶段 11. 软件测试原则有:A、制定严格的测试计划 B、保留所有的测试文档C、功能测试中的缺陷确认 12. 制定测试计划的步骤:确定测试范围、确定测试策略、确定测试标准、确定测试构架、确定项目管理机制、预计测试工作量、测试计划评审 13. 对于软件的β测试,β测试就是在软件公司外部展开的测试,由非专业的测试人员执行的测试。14. 正式的技术评审FTR(Formal Technical Review)是软件质量保证活动,其相关的描述为: A.FTR是评审产品而不是评审生产者的能力B.FTR要有严格的评审计划并遵守日程安排C.FTR限制参与者人数并要求评审会之前做好预备 15. 在进行单元测试时,常用的方法是采用白盒测试,辅之以黑盒测试
16. 侧重于观察资源耗尽情况下的软件表现的系统测试被称为压力测试 17. 必须要求用户参与的测试阶段是验收测试 18. 系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
19. 测试通常可分为白盒测试和黑盒测试。白盒测试是根据程序的内部逻辑来设计测试用例,黑盒测试是根据软件的规格说明来设计测试用例。20. 一个程序中所含有的路径数与程序的复杂程度有着直接的关系。
1. 测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。2. 功能测试时系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。3. 软件测试主要分为单元测试、集成测试、确认测试和系统测试四类测试。4. 渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。5. 编写测试用例的依据是单元测试计划和详细设计说明书。6. 系统测试时在集成测试完成后,确认测试之前进行的测试。
7. 设计系统测试计划需要参考的项目文档有软件测试计划、软件需求工件、和迭代计划。
8. 测试设计员的职责有设计测试用例、设计测试过程、脚本。
9. 软件验收测试包括正式验收测试、alpha测试、beta测试三种类型。10. 软件测试按照开发阶段划分单元测试、集成测试、系统测试、确认测试、验收测试。11. 软件测试按照测试技术划分性能测试、负载测试、压力测试、恢复测试、安全测试、兼容测试
12. 静态测试基本特征是在对软件进行分析、检查和审阅,不实际运行被测试的软件 13. 软件测试项目周期是指需求阶段、测试计划、阶段测试、设计阶段测试、执行阶段 14. 软件测试的角色分析人员、设计人员、开发人员、执行人员 15. 软件测试原则有制定严格的测试计划、、保留所有的测试文档、功能测试中的缺陷确认
16. 测试工作的文档主要有:测试计划、测试模型和用例设计或规格说明、测试分析报告等
17. 测试计划的制定必须要注重测试策略、测试范围、测试方法、测试安排、测试风险、测试治理
18. 缺陷的分类为:需求文档的缺陷、软件配置引起的缺陷、分析、设计的缺陷、静态文档的缺陷、软件开发引起的缺陷、短视将来的缺陷 19. 测试用例工作主要是如何添加测试用例、如何编写测试用例、将测试用例和需求关联
20. 自动化测试工具有:ratinal Robot、winrunner、quicktest 21. 软件性能测试工具有: loadRunner、Ratinaol Visual Qantify、PureLoad 22. BUG的种类有:需求阶段的BUG、分析设计阶段的BUG、实现阶段的BUG、配置阶段的BUG、静态文档的BUG。23. 测试项目主要包括以下几个阶段:计划阶段、初始阶段、执行阶段、总结评估阶段、设计阶段。
1. 缺陷报告
是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report(SBR)或软件问题报告Software Problem Report(SPR)
2. 回归测试
是指重新执行已经做过的测试的某个子集,以保证修改变化没有带来非预期的副作用。
3. 动态测试 通过运行软件来检验软件的动态行为和运行结果的正确性。动态测试的两个基本要素: 被测试程序、测试数据(测试用例)
4. 白盒测试又称为结构测试和逻辑驱动测试,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,由于白盒测试是一种结构测试,所以被测对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准确定测试数据。
5. 黑盒测试又称为功能测试或数据驱动测试,把系统看成一个黑盒子,不考虑程序的内在逻辑,只根据需求规格说明书的要求来检查程序的功能是否符合它的功能说明。
6. 路径覆盖的含义是,选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。
7. 软件测试 :在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。8. 单元测试(模块测试):针对每个模块进行的测试,可从程序的内部结构出发设计测试用例,多个模块可以平行地对立地测试。通常在编码阶段进行,必要的时候要制作驱动模块和桩模块。9. 集成测试:在单元测试的基础上,将所有模块按照设计要求组装成为系统,应提交集成测试计划、集成测试规格说明和集成测试分析报告。
10. 确认测试:验证软件的功能和性能及其它特性是否与用户的要求一致。
11. 系统测试:将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试。
1. 测试过程中会产生哪些基本文档?
(1)测试计划(通常包括单元测试和集成测试):确定测试范围、方法和需要的资源
(2)测试过程:详细描述和每个测试方案有关的测试步骤和数据(包括测试数据及预期的结果);
(3)测试结果:把每次测试运行的结果归入文档,如果运行出错,则应产生 问题报告,并且必须通过调试解决所发现的问题。
(4)
2.大型软件系统的测试过程基本上由几个步骤组成? 1).模块测试
在设计得好的软件系统中,每个模块完成一个清晰定义的子功能,而且这个子功能和同级其他模块的功能之间没有相互依赖关系。因此,有可能把每个模块作为一个单独的实体来测试,而且通常比较容易设计检验模块正确性的测试方案。模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。在这个测试步骤中所发现的往往是编码和详细设计的错误。2).子系统测试
子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块的接口。3).系统测试
系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。4).验收测试
验收测试把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据(系统将来要处理的信息)进行测试。验收测试的目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。验收测试也称为确认测试。5).平行运行
关系重大的软件产品在验收之后往往并不立即投入生产性运行,而是要再经过一段平行运行时间的考验。所谓平行运行就是同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。这样做的具体目的有如下几点:(1)可以在准生产环境中运行新系统而又不冒风险;(2)用户能有一段熟悉新系统的时间;
(3)可以验证用户指南和使用手册之类的文档;
(4)能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。3.一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。
计划阶段、设计阶段、白盒单元、白盒集成、黑盒单元、黑盒集成、系统测试、回归测试、验收测试一套完整的测试应该由五个阶段组成:
1)测试计划首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准。以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。2)测试设计将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响测试结果的有效性)。
3)测试开发建立可重复使用的自动测试过程。
4)测试执行执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理,测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。
5)测试评估结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。4.软件测试的流程
制订测试计划、设计测试用例、实施测试、提交缺陷报告、编写测试总结。5.测试计划的内容都包括什么?其中哪些是最重要的?
1)测试计划的内容:测试目的和测试项目简介、测试参考文档和测试提交文档、术语和定义、测试策略、确定测试内容、资源、测试进度、测试员的职责与任务分配、项目通过或失败的标准、暂停和重新启动测试的标准、风险和问题等。2)最重要的:测试策略、确定测试内容、资源、测试进度、测试员的职责与任务分配、项目通过或失败的标准 6.测试计划的目的是什么?
测试计划的目的:编写软件测试计划的目的是指导测试组成员进行工作和让测试组以外的项目成员了解测试工作的。7.简述静态测试和动态测试的区别?
a)静态测试: 基本特征是在对软件进行分析、检查和审阅,不实际运行被测试的软件。静态测试约可找出30~70%的逻辑设计错误。对需求规格说明书、软件设计说明书、源程序做检查和审阅。包括:是否符合标准和规范;通过结构分析、流图分析、符号执行指出软件缺陷。b)动态测试:通过运行软件来检验软件的动态行为和运行结果的正确性。动态测试的两个基本要素:被测试程序和测试数据(测试用例)。动态测试方法:(1)选取定义域有效值,或定义域外无效值;(2)对已选取值决定预期的结果;(3)用选取值执行程序;(4)执行结果与预期的结果相比,不吻和程序有错。8.白盒测试有哪几种方法?
语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖。9.压力测试和性能测试的区别?
1)广义上说压力测试是包括在性能测试之中的,是性能测试项内的一种。
2)性能测试:顾名思义就是测试软件的运行性能。验证SRS中的性能需求,是否实现。
3)压力测试:测试软件在超负荷下的工作情况,也是一种软件的性能。因此是属于性能测试范围的。
10.测试结束的标准是什么?
测试计划中所有规定的测试内容和回归测试都已经运行完成或根据上级主管对测试结果的意见,就可以结束本次测试。11.黑盒测试的测试用例设计方法包括哪些?:
a)等价类划分:划分等价类--确立测试用例--设计用例。b)边界值分析:通过分析,考虑如何确立边界情况 c)错误推测法:靠经验和直觉来推测程序中可能存在的各种错误,从而有针对性地编写用例。可以列举出可能的错误和可能发生错误的地方,然后选择用例。d)因果图:通过画因果图,在图上标明约束和限制,转换成判定表,然后设计测试用例。这适合于检查程序输入条件的各种组合情况。
12.缺陷报告的作用
缺陷报告是软件测试人员的工作成果之一,体现软件测试的价值缺陷报告可以把软件存在的缺陷准确的描述出来,便于开发人员修正缺陷报告可以反映项目、产品当前的质量状态,便于项目整体进度和质量控制。软件测试缺陷报告是软件测试的输出成果之一,可以衡量测试人员的工作能力。13.等价分类法的基本思想是什么?
根据程序的输入特性,将程序的定义域划分为有限个等价区段“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等于对这一类其他值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误。14.简单阐述一下软件测试的目标
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。15.软件测试准则有哪些?
(1)所有测试都应该能追溯到用户需求。
(2)应当把“尽早地和不断地进行软件测试” 作为软件开发者的座右铭。(3)pareto原则:测试发现的错误中的80%很可能是由程序中20%的模块造成的。
(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。
(5)测试用例应由输入数据和预期的输出结果两部分组成,并兼顾合理的输入和不合理的输入数据
(6)穷举测试是不可能的。
(7)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
(8)程序修改后要回归测试。
(9)应长期保留测试用例,直至系统废弃。16.您认为做好测试用例设计工作的关键是什么?
1)白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
2)黑盒测试用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
1. 根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
2. 某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。请用等价类划分法和边界值划分法设计测试用例来测试程序的日期检查功能。
3. 设要对一个自动饮料售货机软件进行黑盒测试。该软件的规格说明如下:
“有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。”
利用等价类划分的方法,设计测试该软件的全部测试用例。