评估(并提高)一个软件系统的安全程度,需要从设计,实现和部署三个环节同时着手。目前,微软的安全软件开发周期(SDL)提供了一个基于微软开发模型的参考解决方案。它并不是一个类似CC的评估测试标准。但是在如何有效的评估软件实现和部署环节的安全性上(例如 FUZZ测试),大家可以借鉴一下。
软件从需求到发布是一个漫长的过程。而持续集成关注于软件开发,即开发人员的每次代码提交都会由持续集成工具进行构建。但到这个构建版本后,到将其真正部署上线还要走多远呢?从持续集成那里拿到好的Build以后,作为测试人员,部署到探索性测试(Exploratory Test)环境。
动态数据是在程序执行过程中暂时存在的数据。各种不同类型的动态数据在程序执行期间将共享一个共同的存储区域,若程序启动时对这个区域未初始化,就会导致数据出错。由于动态数据被破坏的位置可能与出错的位置在距离上相差很远,因此要发现这类错误比较困难。
作为一个在IT行业从业7年多的“经验”,本人作为一个外行的旁观者,对于软件测试给予一个“菜鸟级”的评述,不介意大家仍来的烂柿子和臭鸡蛋,只是想把自己对于这门行业的“疏狂想法”与大家分享之。
很多人认为,测试人员的职业习惯是,喜欢挑毛病,找错误,其实远不止如此,一旦你进入测试这个行业,你会慢慢发现,自己的思维习惯被悄悄改变了。
广义的软件测试和检验包括了软件生产全过程的测试,包括对用户需求、概要设计的测试,例如产品是否符合用户需求,是否符合用户的使用习惯;而不仅仅是一些人认为的从代码阶段才开始进行测试。所以,需求指标等等都需要进行检验,以确保在各个环节上产品质量都有一个体系作保证,俗称“ 一步三回头”。如同制造业企业有专门的质量检验部门,需要在各个工序和阶段使用各种手段、按照规格进行检验,这些都是发现问题的过程,正是这些手段保证了不合格的产品被降级使用,或者根本不能转到下一道工序。
大家知道,软件测试对软件的测试是有限的,而在项目进度比较紧,测试人员、时间有限的情况下,要进行充分的测试更是不可能!所以,如何在资源、时间有限的情况下测试的更有效,成了我们要思考的一个重要问题。以下以实例进行有关说明,大家对都用过手机,对手机的功能都不陌生,所以本文将全部用手机来做实例阐述!
大概许多人认为软件的质量是完全依靠测试团队测试出来的,其实这是一个错误的概念。软件质量的好坏,包含在软件生命周期的各个环节:客户调研,立项,需求调研,概要设计,详细设计,编码,测试,安装,售后服务。在这里我认为测试团队与软件开发团队如何进行工作的流程非常重要。
只是知道这些原则意义不是很大,如果真能让它们成为思考的血液,才能发挥它的真正价值。那真的需要很多的历练,其实成为一名出色的测试人员,远没有那么简单,需要简单,需要(不断的学习+不断的经历+不断的思考)。
随着市场对软件质量的不断提高,软件测试不断受到重视,但是由于总体上,国内软件项目过程不规范,导致重视编码和轻视测试的现象,对于软件测试的重要性、测试方法和流程等还存在很多错误的认识。根据作者的软件工作经验,本文列举了六种有代表性的认识误区,并作了剖析和相应的解释。希望对软件行业的技术和管理人士,正确认识软件测试起到一定的作用。
确认测试又称有效性测试。它的任务是验证软件的有效性,即验证软件的功能和性能及其它特性是否与用户的要求一致。在软件需求规格说明书描述了全部用户可见的软件属性,其中有一节叫做有效性准则,它包含的信息就是软件确认测试的基础。
为什么要编写测试策略?测试策略就是如何进行软件测试的计划。测试策略的目标包括:取得利益相关者(比如管理部门、开发人员、测试人员、顾客和用户等)的一致性目标;从开始阶段对期望值进行管理;确保“开发方向正确”;确定所有要进行的测试类型。
Acceptance testing(验收测试),系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制。
性能调优无疑是个庞大的话题,也是很多项目中非常重要的一环,性能调优的难做是众所周知的,毕竟性能调优涵盖的面实在是太多了,在这篇blog中我们蜻蜓点水般的来看看性能调优这项庞大的工程都有些什么过程,同时也看看这些过程中常见的一些做法。
纠错先要查错。查错的工作量通常占整个纠错的十分之九以上。所谓纠错的技术,主要是指查明程序错误时可能采用的工具和手段。这些手段如果运用得当,就能明显的提高查错的效率。
服务器稳定性是最重要的,如果在稳定性方面不能够保证业务运行的需要,在高的性能也是无用的。正规的服务器厂商都会对产品惊醒不同温度和湿度下的运行稳定性测试。重点要考虑的是冗余功能,如:数据冗余、网卡荣誉、电源冗余、风扇冗余等。
外部接口指如终端、打印机、通信线路等系统与外部环境通信的手段。所有外部接口之间,人与机器之间的通信都使用形式的或非形式的专门协议。如果协议有错,或太复杂,难以理解,致使在使用中出错。此外还包括对输入/输出格式错误理解,对输入数据不合理的容错等等。