应该很多程序员都遇到过,总会有人找自己来修电脑,在加班加点的工作之余,还得兼职做电脑维修。
从事软件行业,和大众息息相关,但大众又不太了解,通常看到的新闻无非是黑客之类的,远程控制别人,或者盗取银行的钱。因为大家的不了解,所以会觉得很多事情程序员都可以做,从盗QQ,P图,硬盘文件恢复,装系统,安装各种盗版软件,甚至各种手机越狱Root。
最重要的是修电脑往往不涉及实物,给人的感觉是只是打打字,动动鼠标,又不花钱,是举手之劳,理应帮忙。如果说不会修,可能会遭来一句:“你学电脑的连电脑都不会修?”。我去,你还会开车呢,你会修车么?
对此小编只能说,也不能全怪大众,毕竟人家不了解程序员到底是干什么的,所以小编整理了关于软件与软件测试的说明,去和别人介绍自己的工作和技能,让找你修电脑的人都消失吧。
计算机就是个机器,这个机器主要由CPU、内存、硬盘和输入输出设备组成。计算机上使用着操作系统,如Windows或Linux,操作系统上运行着各种应用程序,如Word, QQ等。
操作系统将时间分成很多细小的时间片,一个时间片给一个程序用,另一个时间片给另一个程序用,并频繁地在程序间切换。不过,在应用程序看来,整个机器资源好像都归他使,操作系统给他提供了这种假象。
应用程序看上去能做很多事情,能读写文档,能播放音乐,能聊天,能玩游戏,能看电影 …
但本质上,计算机只会执行预先写好的指令而已,这些指令也只是操作数据或者设备。所谓程序,基本上就是告诉计算机要操作的数据和执行的指令序列, 即对什么数据做什么操作。
比如说:
打开文档,就是将数据从磁盘加载到内存,然后输出到显示器上。聊天,就是从键盘接收聊天数据,放到内存,然后传给网卡,通过网络传给另一个人的网卡,再从网卡传到内存,显示在显示器上。
基本上所有数据都需要放到内存进行处理,程序很大一部分工作就是操作在内存中的数据。
二、软件测试是怎么回事?软件测试(Software Testing)的定义
-
鉴定软件的正确性、完整性、安全性和质量的过程。
-
是一种实际输出与预期输出间的审核或者比较过程。
-
使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是展现预期与实际结果的差别。
一句话定义:在规定的条件下对程序进行操作,以发现错误,是对软件质量进行评估的一个过程。
三、可以从哪些角度对产品进行测试?黑盒测试:把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。测试方法包括:等价类划分、边界值分析、因果图分析、错误推测法、功能图分析等。
白盒测试:是对软件的过程性细节做细致的检查。是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。测试方法包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等。
单元测试:是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。一个软件单元的正确性是相对于该单元的规约(详细设计)而言的。因此,单元测试以被测试单位的规约为基准。测试方法包括:控制流测试、数据流测试、排错测试、分域测试等。
集成测试:是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。
系统测试:是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等。
回归测试:是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,回归测试的困难在于不好确定哪些内容应当被重新测试。
验收测试:由客户或最终用户执行,旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。
Alpha测试:由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现在错误和使用中遇到的问题。总之,Alpha测试是在受控的环境中进行的。
Beta测试:由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不同,开发者通常在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户Beta测试过程中遇到的一切问题(真实在或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。
介绍完这些内容后,如果还有人找你修电脑,那你就赶紧给他修呗,别耽误时间啦~
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
关注我的微信公众号【伤心的辣条】免费获取~
送上一句话:世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
推荐好文:包装成1年工作经验的测试工程师,我给他的面试前的建议如下
自动化测试到底要学什么?
为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事
自动化测试和手动测试哪个更高级?
新手必看:怎么写一个合格的测试用例?
python登录接口测试问题记录与解决 ( 干 货 )