I will soon celebrate my three years anniversary as a professional software engineer in test. After three years, I still feel like I am missing some formal “education” on software testing. Despite owning a Master  degree in Information Systems and Communication and having spent 5 years at University I never had any introduction to software testing ( no, it was not the course(s) I was too lazy to go to).  Of course, during the last three years, I went to some conferences, read books and blogs and tried to engage with influential software testers to get some expertise on the topic.

However, I would like to have a website that aggregate as much as possible of the software testing knowledge. Developers started earlier with what is called design patterns but I could not find an equivalent for software testing. So, I asked (on the Software Quality Assurance & Testing Stack Exchange QnA site) to other software testers if they were aware of any repository for software testing techniques and patterns. Answers I had were a bit scary as the only place still active on this topic was the Wikipedia portal about software testing, it looks like all repositories evolved to a “dead tree” variety. So currently most of the online knowledge on software testing is hosted on QnA sites or on personal sites where owners will have no external control over their sayings.

To address this issue, I decided to create and host a wiki about software testing patterns: http://www.testingpatterns.info. I will add as much content as possible during a full year. I hope to be able to educate myself doing so and ideally I hope that other software testers decide to give some of their time to increase the content of this wiki. I will be contacting some of the influential testers and hope to make them create a committee to validate each new pattern.

Are you interested in participating, do you know some people that might be? Please help me (blog, tweet, talk, comment) making this wiki a successful idea!

If you are interested in more than participating, ie administrating the website, feel free to contact me.

Thanks!

 

After playing with Pivot, I have been really existed by the possibilities that Pivot offers.

Pivot makes it easier to interact with massive amounts of data in ways that are powerful, informative, and fun.

Simply speaking, Pivot is a tool that helps us visually browse collections of information.

Pivot screenshot 1

Figure 1: Item view in Pivot while browsing the mathematics section of Wikipedia

What really excite me is that Pivot is based on the concept of collections (group of objects that have common attributes). For website with huge amount of information, as Wikipedia, it is really a great way of browsing because you can apply filter information and have a visual result. These collection can also be assembled manually (it is a simple XML file) so it could be a great way to share an important amount of information easily.

Pivot screenshot 2

Figure 2 – National parks, filtered by type

Get more information and download pivot from Pivot’s website.

 

Search engine are not doing search anymore… No search is for small player, now the real thing is to have an evolved engine. Where Wolframalpha offer a computational knowledge engine, Bing offer a decision engine. So far Google can keep being Google fearless ; )

Bing (also known as Kumo) should be publicly available on June 3rd. At least the name is easy to remember :)

You can already get some information on it:
- Behind bing
- Decision engine

I personally think it is a good idea to not compete with Google directly on traditional search, they real do a great job there. Live.com showed to be quite good but did not had any motivational factor to change people habits. Bing, might succeed there, I guess most of the people will be positively surprised by something else than search : )

Enjoy soon,
Ahmet

 

Wolframalpha the so called computational knowledge engine, is finally available to the public :)

Why and when would you want to switch from Google, Yahoo or Live?
The answer is quite simple: Wolfram will give you an answer while other search engines will gives you a (too huge) set of related pages where you can go if the title / description seems to fit your query. 
Google and other search engine maps the keywords of our query to a set of pages known to be related to this keywords. Whereas Wolfram Alpha will try to compute the answer based on the contents of those pages and extract the exact answer to your query and a bunch of information answering to your query.

Go have a look at the introduction video from S. Wolfram.

 

Hope you enjoy as much as I do,
Ahmet

 

A few weeks ago, I followed a presentation at Digicomp called “From Ethical Hacking to IT-Forensic” presented by Juerg Fischer. The most interesting part I kept from the presentation (that was in German so may explain the little I remember from it :) ) was about the tools and resources useful for the differents phases of the penetration tests. Even of most of these tools and resources might be alredy know, I hope it will still make an usefull list to somone else than me :)

1. Information Gathering

In this early stage the goal is to gather information about people and architecture you might find during your security analysis.

Whois: Domain name lookup
Sam Spade: Integrated network query tool
SearchDNS: Information about an organisation servers
Archive.org: Access old pages from Internet 

2. Vulnerability Analysis

For this second phase, the goal is to gather information regarding vulnerability that correspond to the list you gathered (type of server, OS …) in the first phase.

Secunia: Vulnerability Database
SecurityFocus: Stay informed

3. Router

Getting ride of the router…

NSLOOKUP: Find the IP addresses of a particular computer
DIG: Investigate DNS
dsniff: Suite of tools to sniff network data

4. Firewall

NMAP: Security Scanner
HPING: TCP/IP packet assembler/analyzer
Firewalk: Determine what layer 4 protocols a  given IP forwarding device will pass

There are many more tools but with the previous links list you should have already enough to start digging into security related topics :) 

Ahmet

 

 

Microsoft in its fight for search market share has finally acquire Powerset (a natural language processing system). The system is really impressive and could be a real value for users. For example if you type in ‘How tall is the Eiffel Tower’ you will have the answer: 300.65 Meters

According to an interview in TechCrunch the Microsoft search team will implement Powerset’s functionalities in their search engine (Live.com) by the end of this year.

Below is a simple explanation of how it works (by Barney Pell):

[...]I guess one way to think about it is like when you are learning how to diagram sentences in elementary school. You draw these trees of a sentence and find here is the noun phrase and a noun phrase has a determiner like “the” and then it has a noun like “dog” and here is a verb phrase, and it might have a verb like “barks” and then what does it mean for the that word, bark is a verb and it has a “S” at the end and the way that it works, which we call morphology, that’s the present tense of that verb. And then the whole sentence is composed of those pieces, and so the meaning is built out of those. So you draw these diagrams when you are learning how to do it. And the kind of knowledge that’s in a natural language processing system like Powerset is using is sort of like that. Its basically extracting out both the surface structure, that kind of a tree structure of a sentence, and then its converting that into a series of different representation, ultimately into one which expressing that thing in fact. So it will basically say that there is a kind of activity here and it is a barking activity and the thing that is doing that activity, the subject of that activity, is a dog. Ok. So it is going from that sort of a surface structure of the language that you are seeing and converting it into a semantic factor representation. In addition, it is then able to draw on the individual meaning and relationships between words so if you saw that the sentence said “The poodle barks.” Then the system knows, if it can draw upon other knowledge about the relationship between words, as Powerset does, that poodles are a kind of dog. So if you as the user were able to say, “I want dogs barking” then it can actually then match the concept of dog to the concept of poodle and it is matching barking to barking and it is then doing this sort of semantic match for you which uses words you are not even using in your query and matching those against the document.[...]

Then Ramez Naam gave some more explanation:

[...]So one of the things that Powerset brings that is unique is the ability to apply their search technology to the query to the user’s search in ways that are beyond just the simple pluralization or adding an “-ing” is that Powerset also looks at the document, it looks at the words that are on a web page and this is actually very important. If you look at just the users query, what you have available to you to figure what they are talking about are three words four words five words, maybe even less. That can give you certain hints. If you look at a web page that has hundreds or thousands of words on it you have a lot more information you can use if you understand it linguistically to tell what its about, what kind of queries it should match and what kind of queries it shouldn’t match[...]

A quick note about given answers by Powerset:

We return answers. We actually synthesize, so if you were to say, “What did Tom Cruise star in,” you actually get not just the movies, but the cover art for the different movies. It synthesizes multiple pieces of information to give you a whole different kind of presentation. Or, if you were just to say, “Bill Gates” you’d be given an automatically generated profile of Bill Gates, pulled across many, many articles. It’s no longer just about 10 links, although we can certainly do more relevant job (and will) of the blue links, and a better job of presenting those links. With the language understanding systems which we now have, we can go way beyond that and open up a whole new door in user experience until you think, “oh god, that’s how I used to search, now I want this whole new different kind of thing.”

It is also interesting to note that Microsoft will use natural language processing powered by Powerset in Word for grammar and not only in the Live search engine.

Now Google doesn’t have to worry yet but I bet that they are also working hard on natural language processing…

A.

 

Really interesting article from Technology Review about a Paper written by John Hauser, Glen L. Urban, Guilherme Liberali and Michael Braun.

It is about finding the user’s cognitive style (“a person’s preferred way of gathering, processing, and evaluating information”) by analyzing their pattern of click. In around 10 clicks the system can figure out whether a user is analytic, visually oriented or more holistic, impulsive for example.

[...]The changes would be subtle. “Suddenly, you’re finding the website is easy to navigate, more comfortable, and it gives you the information you need,” Hauser says. The user, he says, shouldn’t even realize that the website is personalized.[...]

[...]In addition to guessing at each user’s cognitive style by analyzing that person’s pattern of clicks, the system would track data over time to see which versions of the website work most effectively for which cognitive styles.
[...]

Their approach is very interesting:

[...]“morphing” the website automatically by matching web-site characteristics to customers’ cognitive styles. Our practical goal is to morph the website’s basic structure (site backbone) and other functional characteristics in real time. Website morph-ing complements self-selected branching, recommendations, factorial experiments, or customized content.[...]

According to the paper there are at least four technical challenges:

1. For first-time visitors, a website must morph based on relatively few clicks
2. The website must learn which characteristics are best for which customers (in terms of sales or profit)
3. To be practical, a system needs prior distributions on parameters
4. Implementation requires a real-time working system

The system is a bit complicate to put in place but in terms of e-commerce, it appears that this system could improve the sales up to 20%! In terms of web design, we need to be aware of these changes and think our design so they can be the more adjustable in a short future :)

Ahmet