问题1:作软件测试必须有哪些的知识储备?
(1)软件开发技术
不少人认为,干嘛要学习软件开发啊,那还不如直接去学什么JAVA、C++、C#了。要知道,在之后的软件测试工做中,你就会发现软件开发与软件测试之间是什么样的关系了。没有软件开发,就没有软件测试,有了软件测试,软件开发出的软件产品才可以达到用户满意的地步,他们之间是相互依赖关系。有了更多的软件开发知识,就会更好地能理解软件产品,就知道在哪一个环节开发人员容易犯错误,知道在哪一个逻辑结构、哪一个接口或函数,甚至是从内存的管理机制上均可以找出问题。
软件开发所用的程序设计语言有不少种,因此要精通其中一门,其余能看懂代码,会对你的测试工做有更好的帮助,另外也会帮助开发人员进行快速缺陷定位。
并且在软件测试工做中,要编写一些辅助测试的小工具,都须要有软件开发基础。象测试过程管理工具、测试用例管理工具、缺陷跟踪工具、性能检测工具等等。
不要总是认为软件开发难,什么事都是从不会到会,从不精通到精通,都须要一个过程。没有人一辈子下来就什么都会的,都须要本身的不断努力才能成功。
(2)网络技术
软件是从字符界面产品发展到图形界面产品,从单机版到网络版(C/S结构和B/S结构),经历了一个漫长的过程。计算机网络的出现,改变了现实社会中人们的相互沟通方式,把一个小小的地球变成了一个地球村。因此,目前全部的软件产品都从传统的单机模式向网络模式转变,网络技术就更加关键。
目前网络的发展,使得网络速度进一步提升。目前,家庭网速达到1M~2Mbps,企业达到4Mbps,听说要到2012年家庭的网络速度要达到20Mbps。那么网络硬件从传统的电缆到目前的光纤技术、无线通讯技术。从目前的发展速度,三网(电信网、电视网、计算机网络)合并是早晚的事情。
网络硬件协议的测试,也是网络设备生产商要作的工做,好比华为和中兴电子。
(3)数据库技术
如今的数据信息是海量的。在目前的软件产品中,底层架构中就须要有数据库进行数据存储,那么对数据的增删改查的操做是软件测试人员必需要必备的技能。数据库测试也是测试技术的一种。
(4)测试与质量保证技术
精通软件测试理论,熟悉软件测试流程,理解软件测试的哲学思想,掌握软件测试每一个阶段的文档编写技巧,掌握软件测试的策略与各类测试方法,掌握测试用例的设计方法。掌握单元测试、集成测试、确认测试、系统测试、验收测试等每一个阶段的测试技术。软件质量保证知识、测试项目管理、测试团队建设知识也是必需要具有的。
掌握软件测试自动化工具,理解软件测试自动化测试框架,可以学会如何进行测试项目管理、回归测试以及性能测试,可以把性能缺陷进行定位。
软件测试仍是一个崭新的学科,尚未造成一个独有的知识体系,还须要咱们不断的研究与实践。
(5)行业知识
目前软件测试涉及的行业是多种多样的,从金融产品到电信、游戏、汽车、杀毒、网站、企业管理、学校教育、本地化产品等等,各行各业的软件产品都须要大量的测试,因此相关行业知识的储备也是必须的。
(6)职场规范
职场礼仪是必须的,你是否适合某个企业,可否融入这个企业,基本的职场规范是要学习的。必要、有效的沟通也是软件测试人员所必须掌握的技巧。
问题2:成为一个好的程序员需具有哪些条件与素养?
1.扎实的基础。数据结构、离散数学、编译原理,这些是全部计算机科学的基础,若是不掌握他们,很难写出高水平的程序。据个人观察,学计算机专业的人比学其余专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到必定程度很难再提升的时候,就应该想一想是否是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即便你再精通OOP,遇到一些基本算法的时候可能也会一筹莫展。程序员