黑盒测试的优点,软件测试怎么入门?
软件测试是软件工程的重要过程之一,是保证软件质量的重要手段。不同的软件项目类型,软件测试占整个项目开发工作量的15%到90%不等。例如普通数据分析软件,测试投入的工作量比较小,但对于飞行控制、核电管理等软件测试所投入的精力远大于开发投入。软件测试的重要性可见一斑。
现在软件测试的书籍非常多,有介绍测试理论的、有介绍测试过程的、有介绍自动化测试的等等。软件测试想入门可以先选择2到3本好点的书,从阅读开始。
这里我们先介绍一下软件测试的基础知识。
什么是软件测试广义的软件测试说白了就是主动地找软件的问题,包括需求问题、功能问题、可用性问题、可靠性、逻辑问题、健壮性、性能等等。
为什么进行软件测试软件行业发展初期,软件测试的活基本是由开发工程师自己干的,测试方法及过程比较随意。但是随着软件项目规模越来越大,越来越复杂,软件故障越来越难以避免,给企业和个人带来沉痛损失的案例也屡见不鲜,下面仅举两例:
1962年美国水手1号飞船发射后262秒就不得不摧毁掉,后来分析是因为代码中漏敲了一个破折号。
2009年,丰田因雷克萨斯ES350突然刹车失灵,导致车上4名乘客全部罹难。事后丰田不得不在全球召回900万辆汽车,本次召回给丰田带来的经济损失达30亿美元。后来据查是防抱死延时软件故障所致。
因此,对软件产品主动进行认真测试,尽可能地查出可能的问题和漏洞,已经是现代软件开发必做的重要工作。通过软件测试将软件故障消灭在发布之前,这是所有软件从业人员的共同心愿。
静态测试和动态测软件测试有动态测试和静态测试两种方法。
静态测试就是通过阅读软件的需求 、设计、编码等静态文档,通过分析静态文字或图表来发现需求、设计、编码存在的问题。
可见静态测试的主要方式就是同级评审,其好处是可以在软件需求阶段、设计阶段和编码期间就可以提前进行检查分析,及早发现存在的问题。一般而言,问题发现越早,修复成本越低。从这个角度看,静态测试比动态测试具有更高的性价比。
动态测试就是等软件开发完毕,测试工程师安装好软件,在不同的环境、不同的输入的情况下,运行并测试软件的功能、可用性、性能等。我们通常所说的软件测试就是指动态测试。
单元测试、集成测试、用户测试、阿尔法测试软件系统根据功能和系统内部结构可以划分为一系列的软件模块(或子系统),具体开发是一个模块一个模块地实现的(当然多个模块可以并行开发)。 每实现一个模块,开发人员都要认真地对所开发的模块进行测试,这种主要由开发工程师执行的模块测试,我们称之为单元测试。
单元测试期间一般要开发专门的测试主程序(有时还要开发测试桩程序)。
整个系统开发完毕后,由测试团队对软件进行整体的测试,我们称之为集成测试。
用户拿到我们开发的软件产品或系统后,他们一般也要进行独立的测试,这种类型的测试称之为用户测试。
如果认为软件基本合格了,企业可以将软件进行小范围发布(如企业内部、免费用户群等),让大家测试用并反馈发现的问题,这个过程叫阿尔法测试。
单元测试、集成测试都需要事先进行规划,有明确的流程要求。
集成测试流程集成测试与软件开发是软件开发过程的两条并行线程,其流程如下图所示:
如上图所示,集成测试可划分为测试分析、测试设计(包括测试准备)、测试执行三大步骤。
测试分析阶段对应系统的需求分析,它将软件系统进行功能拆分,分成不同级别的多个功能点,这些功能点是随后测试设计的基础。
测试设计在测试分析的基础上为每个功能点设计多个测试用例。有些用例重点测试基本功能,有些用例重点测试错误响应,有些用例测试边界条件,有些用例测试性能等等。测试数据的收集准备是测试设计的重要工作内容,也往往是测试过程的难点所在。
集成测试执行阶段使用测试设计生成的测试用例和测试数据,对软件逐个测试用例进行测试。发现软件故障应按公司模板或使用专门的故障跟踪工具进行规范化的故障跟踪记录。
一轮测试完毕后,开发工程师应该根据故障记录进行问题重现、分析、修复,并认真记录好修复信息。
通常软件提交给用户前需要进行三轮以上的集成测试。
实际工作中我们常常发现,按正规的集成测试流程走也有一定的问题,就是工作量大,投入时间长,测试效果往往不好。大道无形,我们不妨根据项目和企业自身人力资源特点,将集成测试和流程测试、Bug Hunting测试等多种测试方式结合起来使用,效果会更好一些,
测试工程师的职业规划大的软件公司通常有专门的测试团队,测试团队常年累月负责软件的测试分析、测试设计、集成测试工作。
好的测试工程师需要熟悉目标软件所在行业的专业背景知识,需要对项目需求细节有深入透彻的把握,需要有对软件内在逻辑的直觉领悟,也需要足够的耐性、细心和认真负责的工作态度。加班加点是软件测试人员的家常便饭,团队冲突也是测试团队要面对的常客,当一个好的测试工程师的确不容易。
小规模软件公司,往往没有专门的测试团队,测试工作往往由开发工程师、现场工程师轮流担当。
测试工程师们在测试工作得心应手之后,结合自身特点,学习掌握一些开发技能,对自己职业发展会有帮助。
女生做软件测试适合吗?
(一)先说测试都做什么:
初中级测试人员:
1、根据需求编写测试用例;
2、完成测试用例的评审(让大家都认可这个测试用例);
3、实际进行测试操作
-从整体/局部分为:单元测试、联动整体测试;
-从一般测试工作包括接口测试、白盒测试、压力/冒烟测试等;
备注:通常需要对一些基础的开发/研发语言有一定熟悉,对产品文档&运营文档有一定理解。
高级测试人员:
1、管理测试团队、合理分配测试人力来满足更高优先级的需求;
2、制定测试流程标准,分别说明123456等步骤都做什么,交付什么;
3、持续优化测试流程,让其符合当前业务所需;
备注:要求对业务熟悉,懂项目管理,懂测试各环节
(二)再分析一下测试工作的岗位特质:
薪资:好的测试人员处于行业收入的中等偏上,是目前软件系统、IT系统里必不可少的一环;
稳定性:企业会有持续的用人需求,长期来看,稳定性是OK的。且当前岗位会随着对测试的经验而沉淀更多。
(三)结论
如果你愿意求稳定,性格比较稳重、认真,那就是特别适合了。
如果比较活泼,且想去创新,也可以从测试入手,是个深度学习产品、运营的非常好的切入点。
附图是测试各环节示例,测试用例截图
自我介绍顺便求一下关注,好人一生平安,关注多多发财:互扯是5家互联网公司的5个年轻人一起做的知识分享账号。分别来自阿里、腾讯、百度、头条、拼多多。如果有幸能帮到你,希望加个关注,祝你早日实现你想实现的,为你骄傲为你加油~(握拳)
可以在这里搜到我们
今日头条:互扯
微信公众号:互扯
长丰黑金刚09款24手动四驱CFA6470LA这款车怎么样啊?
优点:车身高大,离地间隙小,越野行性能不错缺点:有限的乘坐空间,内饰不够个性化系列简介:新的黑盒版采用三菱4G64 S4 MPI发动机不仅动力强劲,黑金刚更改写国内轻型越野车现有的技术状况,第一个到达的黑金刚II,欧洲排放标准,加上先进的电脑控制技术,更好的燃烧,燃料效率,减少过多的越野车用燃料的一般问题。
个性化推荐算法的两种类型?
早期的推荐系统文献中一般从所选取的角度和所采用的技术两个不同的维度对个性化推荐算法进行划分。从选取的角度不同,可以分为基于内容的算法、基于协同过滤的算法,以及混合式算法三大类。从具体技术实现的角度,可以分为基于内存(memory-based)的算法和基于模型(model-based)的算法两种形式基于内容的推荐是从信息抽取领域自然而然发展起来的一类算法,其出发点是在对文本信息和条目元信息进行整理、建模的基础上,针对用户的不同兴趣偏好进行推送。
与之相对应的,基于协同过滤的推荐并不关心条目的具体属性,而是对用户整体的评分信息进行整理和建模,根据用户行为找出口味相似的用户群或者风格类似的条目,在此基础上进行推荐。由于利用了先验知识,对被推荐的内容有深入了解,基于内容的推荐在可解释性和新用户启动上有一定优势。
而基于协同过滤的推荐在可扩展性、准确性和惊喜程度上都要优于基于内容的推荐。有时我们也分别把这两种方式叫做白盒推荐和黑盒推荐。混合式的推荐则是综合以上两种方法的优点。针对不同的场景和用户群用不同的权重机制给出合理的推荐。严格来说,混合式推荐更像一种算法调度和权重分配机制,用来调整最终推荐结果的优化过程,而非方向性的推荐算法。
软件测试的方法有哪些?
测试类型有:功能测试,性能测试,界面测试。
功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。
区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试
还没有评论,来说两句吧...