Posts

Showing posts from March, 2011

Penetration Testing

Image
Acquired a new skill today. I hope that i can put it to use soon.

wstemp - on my c Drive at 2.00 GB

I am developing a rich GWT application and have been testing it heavily using RAD 7.0 and all of a sudden it gives me a weird error when tried restarting my server. I can't remember the nasty error but here is the log in IBM/SDP70/runtimes/ basv_61 /profiles/ "server profile"/logs/ffdc/server1_exception.log Index Count Time of last Occurrence Exception SourceId ProbeId ------+------+---------------------------+-------------------------- 1 1 3/22/11 19:46:07:072 CDT org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException com.ibm.ws.appprofile.ApplicationMetaDataHelper.isEARFileContainsAppProfileConfiguration 256 2 1 3/22/11 19:46:00:134 CDT java.lang.IllegalArgumentException com.ibm.wsspi.runtime.component.WsComponentImpl 470 3 1 3/22/11 19:48:09:558 CDT java.io.FileNotFoundException com.ibm.ws.management.application.sync.AddBinaryTask.fineGrainUpdate 105 4 2 3/22/11 19:58:30:883 CDT org.eclipse.jst.j2ee.commonarchivecore.internal.exceptio

The Dilemma FTP or MQ, which one to use?

In order to determine which one to use in a project, many will argue about cost and timeline. Let us factor that out. In any message or file transfer that happens in a system should at least meet the following criteria: 1. That a message should be reliably delivered. 100% successful delivery all the time. 2. Messages or files should not be overwritten 3. Messages usually trigger a job for the message to be processed by the receiving system. MQ supports all of the 3 criteria mentioned above and scales well. It is a full blown messaging infrastructure. It can handle full files and small chunks of messages but it was designed to handle asynchronous small messages between system in order to trigger or alert another system. It is like the Observer pattern mechanism but on a much larger scale. FTP is a really mature protocol and it has probably been around since when the Turing machine and the ENIAC was used to calculate ballistic charts =) for WWII [1 - Turing and Eniac Link] . FTP

Employee of the Month!

Image
I would like to thank all my co-workers for all the help and team work. Engaging and mentoring brings out all my tacit knowledge and discover knowledge that i don't know i have.     Thanks to Steve Morris for nominating me! I am always glad to share my expertise Thanks to David Zweber for listening to my ideas (even if they are bad)!  Thanks to Ross Resurreccion for sharing his ideas and strategies with me =) ! Employee Of the Month!

Selenium - Go Web Driver!

After a long hard search for a unit testing tool for our new web UI using GWT (Smart GWT) i settled for Selenium. It was introduced to me by a friend (VH) and I am very much convinced that it will suit our needs. It is not always advantageous to automate Unit Testing when developing UI besides what the Selenium website had mention here (To Automate or not To Automate ?). An automated unit test for a UI component of an application will not be able to pick up on the following factors[1] that makes a UI component a success. 1. Accessibility - relative ease of navigation. 2. Responsiveness - The user interface is clear to the users and they can do what they wanted to do. This includes the ergonomic elements of the UI such as color, shape, sound and font size 3. Efficiency - The least number of steps and time that a users take to do what they wanted to do. 4. Comprehensibility - The user interface is easily understood by the users with the minimum amount of effort. Obviously

Good Thing there is no CMMI Level 0 (Zero) - Every body starts at Level 1

A maturity level 1 organization does not mean that there is no software process. The software process is unpredictable because the process is dependent on the current staff. There is no organization in the world that has no process of producing software but there are organizations that lack sound management of the software process. Good management of the software process in an organization will lead to efficiencies of the software process that they currently have. Level 0 is not reasonable for any organization because most organizations own a process to deliver software. The process might not be efficient but a process is a process and this the reason why the Capability Maturity Model does not have a Level 0. A Level 5 organization has pretty much a really fined tune process.

Miller's Law - and the 7 pieces of information in your head

Miller’s Law states as humans we are only capable of concentrating on only approximately seven chunks of information. A typical software artifact has far more than seven chunks of information we are therefore limited on our capability to handle the complexity of a software artifact.The stepwise refinement help us handle the Miller’s Law restriction on our human capabilities by concentrating on seven most important information and hold off or not think about other aspects or information until we need to address it.

Structural and Functional Testing

Structural testing is a testing approach where the internal control structure of a program is used as a guide in the selection of test cases or test data. Functional testing on the other hand ignores the internal structure of the program but uses the functional properties as specified in the program’s requirement as the guide in the selection of test cases or test data[3]. Structural and Functional testing are similar because both testing approach requires to have an understanding how the program works either by extracting that understanding from the program’s specifications or by looking at the program code. Either way an understanding of the program is necessary in order to come up with an effective set of test cases or test data. Functional testing requires a much deeper understanding of the program compared to structural testing because in functional testing the functions in the program are being tested but in structural testing it is enough to just check the validity of the output

Verification ? or Validation ?

Verification and Validation are both done in order to ensure that a software product as a whole satisfies its specifications. Verification is ensuring that a step in the process of creating a software product has been correctly carried out [1]. This is usually done at the end of each step or stage. Verification usually is performed by mostly carrying out static testing type of activities like code review, walk through and code inspection. Verification activities may also include dynamic testing type of activities such as functional testing, unit testing and integration testing to execute the actual program code [2]. All of this activities are performed during the development process of the software product. Validation on the other hand is evaluating the end product of the development process in order to ensure that the software product meet’s customers expectations or its specifications. This is usually done by executing the software program in its production environment to perform a v