程序测试

2019 年 CSP 模拟练习赛

拜拜、爱过 提交于 2019-11-29 21:46:43
2019 年 CSP 模拟练习赛 3.0 小时完成 (请选手务必仔细阅读本页内容) 题目名称 矩阵游戏 割韭菜 翻硬币 程序文件名 matrixgame leeks coins 输入文件名 matrixgame.in leeks.in coins.in 输出文件名 matrixgame.out leeks.out coins.out 每个测试点时限 1 sec 2 sec 1 sec 测试点数目 10 10 10 每个测试点分值 10 10 10 内存限制 256m 256m 256m 题目类型 传统型 传统型 传统型 提交源程序文件名: 对于 Pascal 语言 matrixgame.pas leeks.pas coins.pas 对于 C 语言 matrixgame.c leeks.c coins.c 对于 C++ 语言 matrixgame.cpp leeks.cpp coins.cpp 注意事项 1、文件名(程序名和输入输出文件名)必须使用小写。 2、除非特殊说明,结果比较方式均为忽略行末空格及文末回车的全文比较。 3、 C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0 来源: https://www.cnblogs.com/CXYscxy/p/11536000.html

【转】C# Application.DoEvent()的作用

随声附和 提交于 2019-11-29 21:10:40
Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息。 private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 10000; i++) { label1.Text = i.ToString(); Application.DoEvents(); } } 测试了一下,没有Application.DoEvents()的时候,Label基本处于假死机状态,最后显示一个9999,加上后会数字变换正常显示。 从这个测验后DoEvents的功能,应该DoEvents就好比实现了进程的同步。在不加的时候,因为优先级的问题,程序会执行主进程的代码,再执行别代码,而加了以后就可以同步执行。 原文链接:https://www.cnblogs.com/wuhanly/p/5228765.html 来源: https://www.cnblogs.com/wodewei/p/11532779.html

软件测试基础问答

僤鯓⒐⒋嵵緔 提交于 2019-11-29 20:54:37
问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决。 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;根据用户的一般使用习惯,来确认是否是缺陷;与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。 问:给你一个网站,你如何测试?首先,查找需求说明、网站设计m等相关文档,分析测试需求。 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试设计测试用例:功能性测试可以包括,但不限于以下几个方面: 链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。 提交功能的测试。 多媒体元素是否可以正确加载和显示。 多语言支持是否能够正确显示选择的语言等。 界面测试可以包括但不限于一下几个方面:页面是否风格统一,美观页面布局是否合理

记一次CTF出题WP

核能气质少年 提交于 2019-11-29 20:04:56
笔者有幸参与一次CTF入门级的出题,在此记录一下WP 1、测试你得手速 1、用IDA打开程序 找到单击次数, 获取全局变量地址。 打开程序 打开OllyDbg attcach后在左下角按CTRL+N 跳到004099F0内存地址 右击下硬件写入断点。 然后按F9运行 然后单击Click 将其改成19999的16进制 然后再摁F9 2、简单密码题 UPX脱壳 用IDA逆向后 记下base64编码的地址 打开x64dbg 加载后 按F9后将RIP修改成401530 然后按F9将base64编码打印出来 如下所示 复制下来后新建个html 然后打开 来源: https://www.cnblogs.com/godoforange/p/11531221.html

C#读写三菱PLC和西门子PLC数据 使用TCP/IP 协议

雨燕双飞 提交于 2019-11-29 19:26:13
本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 github地址: https://github.com/dathlin/HslCommunication 如果喜欢可以star或是fork,还可以打赏支持,打赏请认准源代码项目。 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装: Install-Package HslCommunication 如果需要教程:Nuget安装教程: http://www.cnblogs.com/dathlin/p/7705014.html 联系作者及加群方式(激活码在群里发放): http://www.hslcommunication.cn/Cooperation 组件的完整信息和API介绍参照: http://www.cnblogs.com/dathlin/p/7703805.html 组件的使用限制,更新日志,都在该页面里面。 如果你需要在读取PLC数据之后,还要群发客户端来实现远程办公室同步监视,可以参考如下的项目(基于该组件扩展起来的,带有账户验证,版本控制,数据群发,公告管理等等功能) https://github

什么是 CI/CD?

為{幸葍}努か 提交于 2019-11-29 18:47:12
什么是 CI/CD? 在软件开发中经常会提到持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD)这几个术语。但它们真正的意思是什么呢? 在本文中,我将解释这些和相关术语背后的含义和意义,例如持续测试Continuous Testing和持续部署Continuous Deployment。 工厂里的装配线以快速、自动化、可重复的方式从原材料生产出消费品。同样,软件交付管道以快速、自动化和可重复的方式从源代码生成发布版本。如何完成这项工作的总体设计称为“持续交付”(CD)。启动装配线的过程称为“持续集成”(CI)。确保质量的过程称为“持续测试”,将最终产品提供给用户的过程称为“持续部署”。一些专家让这一切简单、顺畅、高效地运行,这些人被称为运维开发DevOps践行者。 “持续”用于描述遵循我在此提到的许多不同流程实践。这并不意味着“一直在运行”,而是“随时可运行”。在软件开发领域,它还包括几个核心概念/最佳实践。这些是: 频繁发布 :持续实践背后的目标是能够频繁地交付高质量的软件。此处的交付频率是可变的,可由开发团队或公司定义。对于某些产品,一季度、一个月、一周或一天交付一次可能已经足够频繁了。对于另一些来说,一天可能需要多次交付也是可行的。所谓持续也有“偶尔、按需”的方面。最终目标是相同的:在可重复

C/C++内存问题检查利器—Purify

你。 提交于 2019-11-29 16:34:45
C/C++内存问题检查利器—Purify http://www.uml.org.cn/ 一、 引言 我们都知道软件的测试(在以产品为主的软件公司中叫做QA—Quality Assessment)占了整个软件工程的30% -50%,但有这么一种说法,即使是最优秀测试专家设计出来的测试案例,也无法彻底地检测到内存上的问题。 使用C/C++开发的团队一定有被其内存问题折磨过的经历,内存问题一直是C/C++开发人员的心头之痛。特别当程序越来越多时,类的继承和关联越来越多时,内存问题也就越来越多,很多时候,开发人员在不经意的时候就带入了内存问题。这是C/C++世界中很难避免的东西,哪怕是有10年以上开发经验的老手,也难以避免或是杜绝内存问题。 而且,内存的问题是让人很难察觉的,特别是对于内存问题排名第一的Memory Leak来说,在几万行代码中出现Memory Leak的机率几乎是100%,而且要靠一般的手段是很难检测出这种程序错误的。它并不像“野指针”或是“数组越界”那么容易暴露出来(这些会让程序异常退出,而Memory Leak则不会)。当你发现你的服务器端的程序,每隔一个月(或是更长的时间)就把服务器上的内存全部耗尽时,让服务器有规律地每过几个月就当机一次,那么你的程序可能是中了Memory Leak了,同时,你会发现在数十万行代码中寻找这种Memory Leak无异于大海捞针。

CRC32校验算法-C实现

a 夏天 提交于 2019-11-29 16:02:47
CRC即循环冗余校验码 CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。 CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。 以下是CRC32的C语言实现,经过测试,能够正确运行: https://blog.csdn.net/weed_hz/article/details/25132343 来源: https://blog.csdn.net/qq_23940143/article/details/100850069

Python 异常处理

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-29 14:05:26
Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理: 本站Python教程会具体介绍。 断言(Assertions):本站Python教程会具体介绍。 python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 OverflowError 数值运算超出最大限制 ZeroDivisionError 除(或取模)零 (所有数据类型) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败 OSError 操作系统错误 WindowsError 系统调用失败

软件实现

…衆ロ難τιáo~ 提交于 2019-11-29 08:22:20
通常把编码和测试统称为实现 所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。作为软件工程过程的一个阶段,编码是对设计的进一步具体化,因此,程序的质量主要取决于软件设计的质量。但是,所选用的程序设计语言的特点及编码风格也将对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。 无论怎样强调软件测试的重要性和它对软件可靠性的影响都不过分。在开发大型软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,在软件生命周期的每个阶段都不可避免地会产生差错,人们力求在每个阶段结東之前通过严格的技术审查,尽可能早地发现并纠正差错;但是,经验表明审查并不能发现所有差错,此外在编码过程中还不可避免地会引入新的错误。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些差错迟早会在生产过程中暴露出来,那时不仅改正这些错误的代价更高,而且往往会造成很恶劣的后果。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。 软件测试在软件生命周期中横跨两个阶段。通常在编写出每个模块之后就对它做必要的测述(称为单元测试),模块的编写者和测试者是同个人,编码和单元测试属于软件生命周期的同一个阶段