学好软件测试都要掌握些什么?会不会用到C语言和数据结构

Python024

学好软件测试都要掌握些什么?会不会用到C语言和数据结构,第1张

首先,要有宽泛的计算机基础知识。微机原理,数据结构,数据库,操作系统原理,编译原理,逻辑,编程语言,网络,等等,都要系统地学习过。都精通不大可能,因为人的兴趣都不相同,但是,这些功课的基本知识点是应当了解的。我们在谈到职业的类别的时候,我们可以说C程序员,C#程序员,Java程序员,而没有C测试员,C#测试员,Java测试员,程序员可以只擅长某一门编程语言,测试员却不行。为什么呢?测试员是代表用户的,在做测试的时候,他(她)需要考虑到方方面面的事情。例如对于一个用C写的上网拨号程序,测试员需要考虑:

(1) 程序的功能是否正确;(要求计算机知识)

(2) 是否符合用户的使用习惯;(要求界面设计知识和换位思考能力)

(3) 性能是否满足要求,例如长时间使用;稳定性;(要求深入的计算机知识)

(4) 是否能够满足用户可能的不同操作系统的要求;(要求计算机知识)

(5) 如果在全球发布,是否满足不同语言和文化的需求;(要求软件国际化测试知识)

(6) 如何搭建测试环境;(动手能力,硬件知识)

(7) 做代码检查;(比较深入的C语言知识)

(8) …

所以,各方面都了解一点,你在做测试的过程当中你会感觉顺手的多。如果某写方面还差一些,没有关系,计算机行业的特点就是边做边学,只要是个有心人,学习是很快的。

其次,要掌握一门编程语言。有的朋友可能会说,我就是不愿意做编程才来做测试的,怎么测试还有这么一个要求?我要尝试说服你:)。我的理由有两个:

1. 只有知道怎么做一个软件产品,才能真正懂得这个产品。而只有真正懂得了产品,才能做好测试。一行代码不会,你会始终是个门外汉。不要满足于点鼠标,而去尝试着打开我们面前的黑盒子。

2. 自动化测试技术需要编程技术。自动化测试是软件测试的一个发展方向,一方面很多测试工具都需要人工干预,编写代码;另一方面在有的情况下需要自己编写测试工具。

对于测试员来说,编程技术不要求精通,但要会。

再次,学好英语。在现阶段,我们只能承认,在计算机方面,英语国家领先。有很多的资料都是英语的,如果仅仅局限在中文资料方面,会影响你的渊博程度:)。举一个简单的例子,Windows操作系统会捕捉到一些程序或者操作系统内部的异常,你可以根据这个异常到微软网站上去查找错误原因和解决办法,其中有很大一部分资料就是英文的,因为还没有翻译过来或者以后也不会翻译的。

以上所说的几点看法,都是在计算机行业里面打转,下面说几个“虚”的要求吧。

1. 锻炼出一双测试的眼睛。我的一个朋友,她也是做软件测试的,她说,有一次她和她老公去买笔记本电脑,她一眼就看出液晶屏上有几个坏点,而她老公却看不出来。她说,这要归功于她有一双测试的眼睛。测试的眼睛,就是对问题特别敏感,能够发现常人发现不了的问题。测试员就是要找软件中的问题,有了这双眼睛会让你收益非浅。耐心,细心和经验,会有助于我们到达这个要求。

2.平和的心态。从心理学上说,每个人都不喜欢别人对自己挑毛病,程序员也是这样。所以,要以平和的心态去看待发现的软件问题,以平和的心态去和程序员交流。千万不要以为自己发现了几个问题,就可以责怪程序员,或者冲过去骂他们一顿。也不要在背后谈论谁谁谁不行,bug太多。一个项目是大家共同做的,需要举集体之力才能做完。我们测试员发现的问题多,表明项目的风险又少了一点,应该高兴才是。如果你的脾气不好,可能这个恶名会掩盖你的真才实学,很可惜的。

变量前面加&代表取出这个变量的地址,&又叫取址符

指针前面加*代表取出,指针所指向的内存里的数据(值),*又叫取值符

p是指针,n是变量

计算机解析代码是从右到左,所以

*&n = *(&n)

&n代表取出n在内存中的地址,取址

*&n,就是对&n在取值

*&n和n是等价的

所以下面的都是等价的

*p = *&n

*p = n

p = &n

就好比小明住在番茄花园

小明家的地址就是番茄花园

番茄花园里的值就是小明

n代表小明,

&n就是小明的家(番茄花园)

*&n就好比问小明的家里住着谁,答案依然是小明

就好比我老婆的老公还是我。

再来理解一下*p

p是一个指针,p就是一个地址

p就是番茄花园

*p就是再问,番茄花园里住着谁

就好比有一个人叫小壮的,想找小明聚聚,但是不知道小明家的地址,他就找来和小明最要好的朋友小强,通过小强的他给了你一个字条,上面写着小明的地址,这张字条就是指针,指针就是一个记录地址东东,如果哪天小明搬家了,这张字条也就作废了,所以指针指向的是一个内存地址,如果这个地址被释放了,这个指针也就作废了,因为指针就是一张带着地址的纸。