Website Performance – How to Improve Test Reporting?

What is website performance testing?

This can be defined as ‘Taking cautious action against a web application or website for its ability to function under different circumstances. The circumstances could be load time, response time, low bandwidth, etc.’

Reporting of test results plays a vital role in optimizing performance of the website. Continual information and data sharing is crucial for better efficiency and overall success of a performance testing project. In real world scenario, not all of these data sharing and information is needed to build a formal or semi-formal report.

Managers and stakeholders require more detailed and conclusion based results. If you consider technical team, they also require various information such as analysis, comparison and details about the way you’ve obtained results. So, how to carry it out effectively? Well, one of the possible solutions or techniques is to forward the summary charts and tables each and every day through email with some key considerations to the stakeholders. You can use whatever feedback or review received from the stakeholders to make a decision what you’re going to include in a formal or semi-formal report. There are several automation tools for software performance testing available.

However, sometimes you may need to go beyond the scope to fulfill the needs of all consumers of performance test results and data with the help of a wide range of reporting and result-sharing methods. In this article, we’re going to cover some of the basic techniques that you can use for effective reporting of performance tests.

Always report early and frequently As we discussed earlier, to achieve desired success of a performance testing project, frequent flow of information and data sharing is critical. In real world scenario, not all of these data sharing and information is needed to build a formal or semi-formal report. You can send daily or alternatively the charts and tables to the stakeholders and get their feedback to decide what will be in formal or in semi-formal report. It will help you identify the crucial requirements of targeted audience before creating what is intended to be a final document.

Visually appealing report matters a lot Sending just a document full of text-based information or data won’t help you achieve success in your performance testing project. Instead, one should try to represent information and data with the help of various graphics and visual elements as it will be easy for the users to understand. This becomes crucial when you’re providing performance results data.

Make it intuitive Reports should clearly convey why the information is important and if it fails to convey its importance, it is time for you to make it intuitive. However, it is not important that the report provides the answers to the issues to be effective, but the issues should be easily identifiable and understandable. You can get feedback from someone unknown about the report by removing all the graphs, charts and other presentations to see how easily he/she can understand the issues and its importance.

Highlight specific issues with appropriate statistics It is very common that developers, testers and even managers don’t have appropriate and accurate statistical details, which may result into a misrepresentation of the performance test results while reporting. Try to find the accurate statistic to highlight specific issues.

Combine data accurately Of course, it is not at all compulsory to combine reports or results, but it would be quite easy to demonstrate specific results when they’re combined into a single graph. However, it is important to note that in order to consolidate the results correctly, test and test environment should be identical.

Summarize data effectively To highlight useful patterns in the test results, it is crucial to summarize data in an appropriate manner. When you include tables and charts, it is easy for the users to recognize various trends and patterns of test results. Such charts and tables make it easy for the team members to take some important decisions regarding system or application.

Customize reports for the intended audience Technical team members, non-technical members and even the stakeholders are referring performance test results and therefore, it is crucial to customize reports for targeted or intended audience. It is crucial for you to consider the intended audience and their expectations before you present the results to them.

A detailed verbal summaries It is a must to incorporate detailed rather than short summary related to the report. You can analyze your intended audience and include information within the summary respectively. Some may require only a few words whereas others may require a detailed information.

Make the data available Many people never share performance data with anyone as they feel scared that someone will not understand or analyze it correctly. However, it is not at all the real scenario as it is quite impossible to expect some third person to understand or extract everything at once. Therefore, it is advisable to make the data available to others.

Follow all the considerations discussed above in this article to effectively report the performance testing. For more details or suggestions leave the comments…!

Applying the TDD patterns in learning any framework

For quite some time now I had been researching on how to quickly learn any framework and make it stick forever in your mind in the shortest time possible. During this research I went from the memory techniques being utilized by memory champs to just straight off cramming. Why you might ask? Well in this highly fluid and ever changing field one has to find a way of learning new materials quickly without being bugged down with the nitty-gritty details of the framework and yet learn enough to be able to function efficiently and utilize in the knowledge in an application of any size.

Usually the common way of learning is to get the material(s), then try as much as possible to memorize, cram, understand and make a heck out of what the material(s) is all about. Although this way of learning is typical okay for some body of knowledge, but the problem is that (speaking from experience)trying to learn any moderate computer science course just by reading the material is not usually enough. This is because either as a beginner or a seasoned practitioner, one is usually greeted with a whole new registers that you can’t relate to your old body of knowledge, and even after learning the subject matter through this way, one tends to forget as time goes on. This bitter pill I tasted when I first started programming, then as an aspiring developer with a lot of ambition, belief and desire I discovered that after reading through books I discovered that after 2 months I would have lost about 60% of what I spent 2 months prior studying, 20% will very garbled in my head that I will be very doubtful of what is what and the remaining 20% will be what is left for me to call my own.

So then question I asked myself and that I still ask now (openly) is how can one learn any framework or programming language as quickly as possible and be able to remember and apply most of the knowledge several months after having learnt it the first time? So After much research and deliberation over this question, I discovered that the best way to achieve mastery in any framework or language and yet do so in half the time It would have taken the normal Joe on the street to do is the way of “Test driven learning” in this way your learning will be driven by test and not the other way round. What do I mean by Test driven learning? you may ask, let me explain.

Many of us know what Test driven development is all about as it is one of the key paradigm in agile patterns which have taken over the programming landscape. In TDD before a program is written the 1000 level birds’ eye view of of the project is taken. Now when you must have gotten this knowledge the next step is then to go ahead and write the unit tests/other tests as the case may be for the classes, methods and functions (mind which have not being written. Then codes will be written to pass these tests, the next step will be to re-factor so as to achieve the same result in the fastest and shortest way possible while keeping the code clean and devoid of code smells.

Yeah I know but how does it relate to learning the framework you may ask? If you look carefully you will see that it relates in every way. Most computer texts starts the student off with a highly simplified “hello world” program or task. Although there is nothing wrong with these way of learning but looking closely at it we will discover that taking this way will only give you the average knowledge and then make it harder for you to understand difficult but important concepts. Not to talk about taking more time to get to the level of mastery one needs in other to command his destiny in this career.

In Test driven learning the first thing that one needs to do is to get a grip of the language in other to start off (that is the 1000 level bird view) then the next thing is to go ahead and start up a project that is of manageable size but hard enough to take to the next level of the skill mastery( In TDL the test). The next thing that a TDL practitioner does is that he re-factors his knowledge by learning those hard but difficult concepts that he needs to know in other to accomplish the project. This is done repetitively until the person achieves the mastery he is yearning for.

One thing I discovered from the master developers is that they take this “Test driven approach”. First they take 1000 level birds’view of the framework they want to learn then they start a sophisticated project with that framework and as they go along creating the project, they fill out the pot holes in their knowledge of the framework by reading and researching about the topic as much as possible. By the time the project is completed, they must have not only gained the knowledge but experience. And as time go on they will then polish the project and the skill to a near perfection. That is what I call a double barrelled achievement (killing two birds with a stone).

Taking this path though it has its own series of drawbacks like a very tough learning curve is the best way to gain knowledge and experience at the same time because why you are studying the framework, you are working on the project thereby gaining the experience at the spot and no-matter how dull minded you are the knowledge will stick with you also you would have gotten projects to add to your curriculum vitae and achievements board.

In this present period of time, It is no longer necessary to read a book cover to cover and acquire the skill. Rather it is more important to do both at the same time because the employment system of most major companies is shifting from being skill oriented to being achievement oriented. So what one should now do instead of just reading a text book cover to cover is to try to implement a full working application while learning a certain framework.

One catch though is that it is for the brave of hearts, because this path will take you through hell first before taking you to that point where you turn from being just a learner to being an authority in the field. But do not let me frighten you for with patience and hard-work, wonders can be achieved and as they say “A journey of a thousand miles starts off with one step (so apoko apoko – small small). Am sure this is not the only way to ingest a large body of abstract knowledge in the shortest time possible, please if there are other ways do achieve it endeavour to share it with the community.

7 Creative Uses of CSS ‘content’

While CSS started as a fairly basic, presentational language, it has become more powerful over the past few years. We can now use CSS to disable mouse/touch events, make a checkbox look and act like a light bulb, and use CSS gradients to create wicked one-element illustrations. Another flexible addition to CSS was the content property, which on a basic level, allows you to place text content within a :before or :after pseudo element. But knowing web developers, we wont allow content to simply be used without a bit of wizardry. Here are seven clever uses of css content!

Glyph Fonts

You’ve no doubt been to a site that uses glyph fonts and there’s a good chance you’ve used a glyph font library like Font Awesome. If you take a moment to check out the source of these glyph font libraries, you’ll notice that they use CSS content to designate the given icon. Just set the font-family to the glyph font and then modify the content value. Here’s a sample CSS snippet from Font Awesome:

/* ... */

.fa-twitter-square:before { content: "\f081"; }
.fa-facebook-square:before { content: "\f082"; }
.fa-camera-retro:before { content: "\f083"; }
.fa-key:before { content: "\f084"; }
.fa-gears:before, .fa-cogs:before { content: "\f085"; }
.fa-comments:before { content: "\f086"; }
.fa-thumbs-o-up:before { content: "\f087"; }

/* ... */

You can even create your own glyphs! It’s quite incredible that a glyph can be changed simply modifying the CSS content value but that’s how glyph fonts work!

CSS Counters

The idea of counters makes most developers giggle but CSS counters aren’t those type of counters. CSS counters allow for incremental content labels with pure CSS; multiple layers of counters can be created and counter format can be customized. The Mozilla Developer Network experimented with CSS counters within the table of contents of wiki articles:

#toc ol { counter-reset: toc; } /* counter reset */
#toc ol li { counter-increment: toc; } /* counter increment */
#toc ol li:before { content: counters(toc, '.'); } /* counter display */

The code above adds a period-delimited list structure before list item contents, which would look like:

1  (text)
1.1  (text)
1.2  (text)
1.2.1  (text)
1.3
2
2.1
....

If you want to move away from traditional numeric counter values, you could use special numeric keywords to define the counter format:

#toc ol li:before { content: counter(toc, upper-latin); } /* counter display */

CSS counters are incredibly useful. A table of content is an ideal usage, as is a slide deck which displays slide numbers.

CSS Triangles

Before the CSS triangle technique became a popular, developers needed to use images to create tooltip pointers. And that was incredibly annoying because we’d need to pair image border and background colors with element border and background colors. And whenever you work wih images, you need to accommodate for image dimensions and another HTTP request. With CSS content as a factor we can now make triangular elements with pure CSS:

div.tooltip:before, div.tooltip:after {
    content: " ";
    height: 0;
    position: absolute;
    width: 0;
    border: 10px solid transparent; /* arrow size */
}

The content value is only whitespace in this case but it’s instrumental in the creation of a tooltip based on pseudo-elements. Now the entire tooltip, arrow and all, can be created with CSS and customizing the tooltip is easy as its its size and colors are created with CSS and border.

Printing Link URLs

Hover or focus any link on a given page and you’ll see the complete URL within the browser’s status bar. What if you’re printing a document though? You don’t get the advantage of the status bar. Luckily you can use content to display the link URL on the printed page:

a:link:after, a:visited:after { content:" [" attr(href) "] "; }

With this snippet, every link which prints will have its URL printed within braces next to the link. Now users who print a page wont miss a beat if they want to look further into a topic. One caveat is that the exact href value is used, so if your site uses relative links, the printed URL may not be as useful as desired.

Styling Visited Links

Setting a different link style for visited links is important but a slightly faded link color isn’t always valuable or apparent enough. Chris Coyier shared a technique on CSS Tricks for styling visited link with a visible check:

a:visited:before { content:  "\2713 "; }

The visible check is much more useful than just a style a link color update. We use a check mark in this case but any other icon could be used to denote that a link has been clicked. Regardless, a visual cue other than color communicates much better that a URL has been visited.

Inserting Images

Hardcoded text, element attributes, and generated content can be displayed with content, but you can also display images via CSS content:

a:before {
    content: url(image.png);
}

The syntax for using content for imagery is the same as CSS background shorthand syntax. This is useful when looking to avoid using multiple CSS backgrounds on a given element — you can use :before instead!

Localized Labels

CSS is not flexible in that it can conditionally express values but it can communicate values explicitly given to it. If you want to express text regardless of language, you simply need to ensure the text is provided in a custom element attribute and expressed with the correct pseudo element:

a.localized:after { content: " [" attr(data-lang) "]" }

What’s important to realize with this tip is that anything you add in an element attribute is reachable for usage with CSS content. Since adding localized labels would massively bloat a CSS file, using an element attribute as a pseudo variable allows for easy localization of pseudo-elements wherever desired.

The content property has been traditionally thought of as static but the examples above prove that the content property can be incredibly dynamic when used cleverly. There are likely many other examples of outstanding uses of content so please share them if you have one!

Is Java Most Suitable for Enterprise Applications Development?

The debate has been raging since a decade. Here are my two cents on why Enterprises are more likely to choose Java than other platforms

When it comes to the enterprise application development, enterprise application manager and developers never see eye-to-eye. There is no denying that Java is one of the most popular programming languages and despite tons of rise and falls, it has managed to win the hearts of the developers across the world when it comes to enterprise application development.

It brings tons of benefits for the developers, such as ample flexibility, scalability, versatility, security and of course robustness within the applications they develop. With Java, you can create almost any kind of enterprise-level application. Today, many programmers prefer to use Java to build comprehensive business solutions by leveraging from the benefits and features of this amazing platform. However, like any other technology platform, Java too suffers from certain limitations, but it can be easily overcome using not so costly mass storage devices and faster processors. Here’s an interesting article on Javaworld as to why Java will Dominate.

Is it possible for the enterprise development to leverage from the Java’s grungy nature?

In the last few years, there have been a lot of questions raised against the usability and effectiveness of the Java platform for developing enterprise-level applications. Java has faced a lot of criticism in the past few years for its enterprise application development capabilities. This has resulted in lack of trust in organizations and enterprises in using Java for creating enterprise level applications for their business.

Of course, Java has served its purpose for the enterprise development, and there are other powerful platforms available in the market, but that doesn’t mean Java is not suitable for enterprise application development. There are lots of points and reasons that definitely make sense to continue using Java for the enterprise application development. Here’s a few of them:

  • Enterprise Java development could be tricky and complicated at times as the performance of the enterprise-level applications depends on a few factors. While using multiple threads and object serialization, it is important to deploy the system in an appropriate way. A programmer or developer can easily fulfill all such requirements using Java to build business solutions. The JRE (Java Runtime Environment) is intended as a specialized version of Java classes and interpreter to simplify the application deployment process.
  • Ease of gearing up the performance – With the help of a wide range of robust plug-ins, it has become easy for the developers to boost up the performance of their interfaces without any extra efforts. Moreover, all the plug-ins will work smoothly on all the browsers on the go.
  • Java basically comprises three subtypes, including a JDK, J2ME, and J2EE. This makes Java extremely beneficial for the enterprises as it would help developers in building rich Java-based applications for different platforms, irrespective of their complexities.
  • A wide range of frameworks helps Java to fill the “GAP”! Frameworks based on Java are here to help developers simplify their enterprise application development process, and Hibernate is one of them with object-relational mapping. Spring is another popular framework that is rapidly becoming popular among the developers for enterprise-level Java development. Such frameworks have made Java a lot easier for the developers when it comes develop critical and complex enterprise or business solutions.
  • The level of security and reliability is something that makes enterprise applications more complicated for the developers, but the Java EE platform has made enterprise application development less complex by bringing an API, development model and runtime environment. The runtime will help developers to focus more over the functionality and performance of the enterprise applications they’re developing.
  • Leveraging from Java for multi-tier enterprise application through client tier, web tier, business tier and enterprise information tier. The client tier of the application comprises of clients that are located on machines different from the actual server. It is easy for the clients to access the Java EE server, and send the requests to the server for processing.

On the other hand, web tier of the business system consists components that can tackle the critical interaction between business tier and the clients. Moreover, the business logic of the enterprise solutions is supported by the components included within a business tier. The enterprise tier is comprised of enterprise resource planning (ERP) systems database servers and legacy data sources, such as mainframes.

Apart from all these, Java has rich APIs, powerful development tools and a huge collection of open source libraries, which makes it a perfect solution for the enterprise application development. Moreover, reports from many organizations have highlighted that Java platforms easily supersede the other platforms when it comes to the enterprise application development.

So, what’s your take on this? Share your thoughts in the comments…!

5 Brilliant Tips To Design An Impressive Logo Quickly

Before moving to the tips of logo design, I would like to tell you what basically a logo is. A logo can be simply defined as a symbol that a firm chooses to make its products recognizable in the market. It is one of the main and most important components that assist in marketing or branding your product. There would be no company, either a large scale or a small scale, which does not have its own logo.

A logo design needs a person with a creative mind and skills that can come up with brilliant designing ideas. It may not be an easy task for a newbie to design such logo. However, adherence to the following five brilliant tips will make it easy for you to design an impressive logo quickly.

Be Creative:

Creativity is the most important aspect of effective logo design. What I mean here by creativity is that your every logo should have something unique in it. It means that your new logo designs should not be same or similar to the ones that you have created in past. No or low creativity in your design may force your client to turn down your designs.

Show Originality:

Another important thing of designing a logo is that it must be original and not copied from anywhere. Design whatever you think and feel about the product, but do not copy. Copying someone’s concept may put you in troubles and you may lose your client and job too.

Double Entendre Image:

A good logo designer must utilize the double entendre images technique in his design. It means that he should use a clever technique that can clearly portray the concept of logo while playing a little mind game with the viewers. This will also assist in making your logo coherent yet concise.

Appropriate Color Selection:

One of the most important aspects of logo design is the selection of colors. One has to be very keen and curious while selecting the colors for the design. It is because the good color selection often makes an average logo a good one. Whereas, poor color selection makes it look dull which can turn off your client.

Make It Simple:

A good logo considered by professional designers is the one that is simple yet coherent. It means that your logo should be detailed but does not contain any extra wording or graphical images or textures in it. Good examples of the simplest logos are Nike, Puma, Jaguar and Apple. None of these logos contain any funky effects in them but look compelling and attractive. Therefore, your logo should be simple too.

Choosing An App Development Company: Making the Right Decision

Everywhere you look there are great chances that you will find somebody carrying a tablet, a Smartphone, an iPhone or a laptop. With so many portable mobile devices available in the market, it is not news at all that the app development industry has become a very attractive and profitable one.

The users of mobile devices are always on the look for new mobile apps that allow them to be more productive, stay on top of things, manage their time and money more efficiently, have fun, be informed and so on.

So much so that many business organizations and not only those that are technology-oriented have turned their attention to creating branded apps that customers and potential customers can use and enjoy. From restaurants that allow their guests to book a table by sending an SMS or parking services that inform their registered users where they can find available parking space, business organizations are increasingly embracing the app development industry. It’s definitely a fascinating way of attracting customers to their business?

In close relation to this, many app development companies have appeared in the market. They all promote themselves as the best ones or the fastest ones and, therefore, it can be tricky to decide on which one to rely. Hopefully this article will help you make the right decision when looking for an app development company.

What should you look for in an app development company? A serious and professional company devoted to developing apps should offer you: qualified staff, experience and samples.

Qualified App Developers

The app development company should have developers with an in depth knowledge of the various programming languages involved in developing mobile apps. Needless to say, they should be acquainted with the diverse platforms available as with the different operating systems. They should also be trained regularly and they should have experience in creating apps for companies in your niche. Creating an app for a restaurant or hospital is not the same as creating one for a travel company. If the app development company you choose has already worked for businesses in your same niche, that is very important as it gives them some additional knowledge of the market.

Experience

Even though there’s nothing wrong with working with a start-up, the truth is that experience plays a very important role in relation to a company’s app development capability. Experience provides developers with skills that are only acquired with practice no matter how well educated they are. This is the main reason why you should choose a company that works with experienced developers. Experienced developers will find it easier to understand your specific requirements and design an app that satisfies your needs and meets your expectations. Besides, only experienced developers have a trained eye that allows them to suggest improvements or alternatives to your initial design.

Samples

Just as you wouldn’t buy a pair of shoes or a TV set without having looked at it before, you shouldn’t hire an app creation company just from what it states in its website or brochure. These companies can have an excellent marketing team and they can be really convincing during the interviews but that doesn’t mean that they are able to deliver the kind and quality of app that you are looking for. It is then highly advisable that you ask the app development business organization to provide you with app samples they have developed and that they allow you try them and examine them thoroughly to make sure they are up to the challenge.

Finding an app development company is not a problem. The challenge is making sure it is the best one for your needs.