Subscribe by Email


Showing posts with label Optimize. Show all posts
Showing posts with label Optimize. Show all posts

Sunday, July 15, 2012

Describe some Caching Issues?


We all are familiar with what a cache is? 
"A cache can be defined as a memory component that is held for storing the data transparently in order to speed up the future serving of the data requests."
The data stored in a cache might be the data that has been required earlier for some operations. 

There are two events related to cache as mentioned below:

1. Cache hit: When the requested data is available in cache and
2. Cache miss: When the requested data is not available in cache and has to be looked up in to the RAM.

- The speed of processing is directly proportional to the number of requests that can be served via the cache. 
- Cache memories are quite costly and hence to make it cost efficient and keep the data usage as efficient as possible, smaller caches are used. 
- But since the time of its advent, cache has proven itself in the field of computing. 

"Caching can be thought of as a technique that is aimed at increasing the computing performance by keeping in itself the frequently accessed data."

There are basically three kinds of caching as we have stated below:

1. Caching output caching: In this type of caching the dynamic output that had been generated up on a request.
2. Fragment caching: In this type of caching the portion of the page that is generated by the request is cached since in many situations it is not practical to cache the whole page at once.
3. Data caching: In this type of caching the objects are cached pro grammatically.

What are different caching issues?


In this article we have taken in to discussion some very prominent caching issues. Most of the people experience problem in server caching of certain files. 
There are four major caching issues have been recognized which have been mentioned below:
1. Designing of a custom cache.
2. Securing of a custom cache.
3. Monitoring of a custom cache and lastly.
4. Synchronization of the caches in a server farm.

Besides these four major caching issues, there are many other minor caching issues.
- Some times it happens that the package delivery fails or an object or element appears like it has been corrupted and seems like such a failure has not got anything to do with the connection! 
- In such cases you can go on with a cache clear up. 
- If the situation is worse, you may also require clearing up the proxy cache!
- Web sites and browsers are looked up as a means of optimizing the resources which is done by them so well that they end up breaking down your dynamic web site content. 
- Your web site is not updated as you thought it will be done. 

Let us see an example, suppose you own a music web site which you frequently update with new music. Your clients come to your site every day so what happens is that the cache forces the web site to list the cached version of the play list and so the clients would never be able to listen to new and the latest music.

Such situation though enhances your internet experience, can also cause many other problems! Some times the cache will stash up an old page of the web site instead of showing up the latest one. You should make it a point to empty your browser’s cache from time to time. There are many internet service providers that cache pages to speed up the internet access like AOL. All the web pages that you visit are stashed up in the cache. 


Saturday, June 30, 2012

What are the advantages of optimizing test automation process?


Like all the other processes in the field the test automation process has also been optimized and has reaped huge benefits. 
- Test automation is carried out for the manual testing processes employing formalized testing processes and this automated test is then further optimized to make it much more effective. 
Test automation is like any other process that requires writing a computer program that will do a particular thing like testing in the case of test automation. 
- Test automation takes a lot of time but once if done can save a whole lot of time afterwards.

In this article we are going to discuss the effect the optimization inflicts up on the test automation process plus we will also chalk up the advantages as well as disadvantages of optimizing the test automation process. 

- Throughput represents a very critical issue in almost all the testing processes.
- It is quite important to take care of the throughput factor especially at the maintenance level. 
There are some general rules and approaches that have been defined to be used during the analyzation of the total requirements of the software testing system and these rules and approaches have worked wonders in reducing the test time. 
- Apart from these rules and approaches there are other things like new programming environments, new interface standards (like Ethernet) that helps in making a significant improvement in the testing system. 

Till now a variety of approaches have been validated that can be used for the optimization of the test automation process in order to increase the throughput.
For optimization we can say that using it one can make significant gains only with a modest investment of time and effort. The software quality can be optimized by adopting the best of the software testing methodologies available, tools, processes and of course people.

For further optimizing your test automation process you must take a look at the below mentioned aspects:
  1. Code, documents and inspections.
  2. Unit testing
  3. Prototyping
  4. Allocation of the time and other resources.
  5. Designing and coding according to the testing.
  6. Automation of the regression testing.
  7. Designing of the tests for the verification of the user expectations and specifications.
  8. Document analyzation
  9. Performing positive root cause analysis.
- Some of the software systems and applications are quite small and simple and so the time taken to process the requests is quite less and negligible. 
- However, when it comes to the larger software systems and applications, the optimization of the test automation process can save a lot of time for even the most basic test case.
- For testing any big and complex software system or application, the optimization becomes crucial. 
- The goal of every software tesing methodlogy is to ensure that the software applications works just like what the customer has figured in his/ her perspective. 
- One of the myth about the optimization is that it is quite expensive and hence it should be used when extremely necessary.
- There are people who believe that 100 percent optimization of the test automation process is an ultimate objective. 
- However there is no particular formula, the relative merits of the optimization of the test automation process depends up on many factors. 
- When you optimize the test automation process, the efficiency of the whole automation process is increased gradually. 

Everyday we witness a dramatic increase in the complexity of the computing environments which puts quite a great pressure on the automated testing thus calling for optimization. 


Monday, June 25, 2012

How is optimization of installation testing done?


It becomes very important to carry out installation testing towards the end of the release process. It is very important to subject a software system or application to installation testing so that it can be released without any hesitation to the customers. 
One can make sure without installation testing that the software system or application will successfully install on the user’s system in the first go itself! The user might need to install the software system or application again and again which in turn might frustrate the user. You will loose customers as a consequence of this. Therefore perform installation testing becomes absolutely necessary. 
In this article we have discussed about the need for optimizing the installation testing and how to optimize it. by the optimization of the installation testing we mean modifying it further so that  some aspects of it use less resources and work more efficiently. 

What is the need to optimize?


- When you optimize a testing process you can run it more quite rapidly and that too it uses very less memory then. 
- The optimization though has been named as “optimization”, it can never produce a truly optimal system. 
- The amount of time taken by a test case of the installation can be reduced by making it consume more memory.
- In cases where the memory is limited, slower algorithms can be used.
- While optimizing the installation testing one should keep in mind that there is no such design that fits all the test cases. 

On what levels installation testing is optimized?


The installation testing process much like the other processes is optimized through the following number of levels:

Design Level: 
- This is the highest level of the above mentioned process. 
- Design is the best aspect that can be optimized to utilize the resources in a much better way.
- The implementation of the optimized design can be made more efficient by using efficient algorithms which in turn have been benefited from code of good quality. 
- It is obvious for the architecture of the test design to have an overwhelming affect on its performance.
- In some cases optimization process may also involve the following:
(a)  More elaborate algorithms
(b)  Special tricks
(c)   Special cases
(d)  Complex trade offs
- A fully optimized installation testing process becomes difficult to comprehend and may also house more errors than the un- optimized processes.

Source code Level: 
- This step involves rooting out the bad quality code from the test cases and therefore it also improves performance.
- When the malfunctioning code is removed, the obvious slow downs are avoided. 
- However, it is possible that any further optimization made to that test case may decrease its maintainability. 
- But, today there are available what are called “optimizing compilers”.

Compile Level:
- At this stage, it is ensured by the optimizing compiler that the test case is optimized to such a level at which the test case can be compiled by the compiler.

Assembly Level:
- This is the lowest level of optimization process and involves taking advantage of the full repertoire of system instructions. 
- This is the reason why most of the operating systems use the embedded systems are written in assembly code.
- Many of the test cases are compiled from a high level language to assembly language and from there it is manually optimized.

Run time: 
- Run time optimization is needed and are performed by the assembler programmers and just in time compilers which exceed the capability of static compilers.

Two types of optimizations can be performed on the installation testing process namely:
  1. Platform dependent optimization (uses specific properties of one platform) and
  2. Platform independent optimization (effective on all platforms)


Thursday, January 5, 2012

What are different aspects of network testing?

Network is interconnected collection of hardware components and computers interconnected by communication channels which shares data and resources. Computers are said to be interconnected if they are capable of sharing data and information. These computers are said to be autonomous since no computer can start, stop and control the other computer.

NEED OF NETWORK
- Network is needed because through network we can share resource which means we can make all programs, data and peripherals available to anyone on the network irrespective of the physical location of the resources and user.
- It provides reliability i.e.a file can have copies on two or three different machines, so if one of them is not available ,the other copies can be used.
- It also affects the cost factor which means personal computer have better price/performance ratio then the micro computers.
- Using a network, it is possible for managers, working far apart, to prepare financial report for the company.
- The changes at one end can be noticed at another and hence it speeds up the co-operation among them.

Network has some disadvantages also.
- Network makes systems more sophisticated and complex to run.
- This can add to costs and you may need a specialist staff to run the network. - If software and files are held centrally, it may be impossible to carry out any work if the central server fails.
- If networks are badly managed services can become unusable and productivity fails.
- File security is more important especially if connected to WAN e.g. protection from viruses.

Network testing is done by various types of tools. These tools help us to test switches, routers, servers and other networks. Network testing aims at determining the strength of the integrity of the network.


- Network testing methodology aims at testing the networking equipments and live networks.
- Network testing requires the network to adhere to the standards of networking. - It doesn’t matter what the software testers test the network for inter- operability, scalability, performance or protocol conformance, they can always rely only network testing for in depth and un biased testing of the network.

Speed testing is another aspect of network testing.
- Speed test can be used to verify if the internet service provider is delivering the connection speed that they promised or not.
- These days network equipment face validation challenges.
- There is a dire need of improving the quality and the performance of the core product.
- While the network complexity is constantly increasing, the process of network testing is increasingly becoming more intricate and time consuming.

There are certain problems that arise while performing the network test. They have been listed below:


- The complex combination of software, firmware and hardware components makes it very difficult to test a particular device as a single integrated system. Such cases often require manual intervention.
- The streamlining of remote manufacturing processes not only makes the whole testing process more complicated but it also makes it difficult to meet the market requirements on time.
- Performing network testing across a wide variety of scripts, testing equipments and network protocols requires complex configuration processes and long set up.

Whether the network to be tested is WAN (wide area network), LAN (local area network), VPN (virtual private network, data center products or other networking devices, network testing over comes their validation challenges and at the same time it increases test automation coverage and provides massive reduction in overhead testing costs and time consumption.

These days automated network testing set up is available. It significantly reduces the test duration, coverage and optimized test operations. Such set ups offer complete automation and configuration of the test prior to testing. The created test cases confirm to standards and provide maximum flexibility and re-usability.


Wednesday, June 15, 2011

What are key elements of Search Engine Optimization Part 2?

Apart from keyword analysis, other important elements of search engine optimization are:

- Page uses HTML links. These HTML links needs to be optimized and is an important element of search engine optimization. The HTML code should consists of search items which tells the search engine what is the page about. The following things should be optimized like page title, page headings, image text and link anchor text.
A good page title will not only be keyword targeted but also will entice a person to click on it in the search results.

- For good search engine optimization, good page content is also important. The content should be of high quality and unique. It should not be copied from other sites. A god content enhances the search.

- The code enhancement process determines your page rank on search engines. It understands the structure or pages of the website.

- Link building becomes very important for search engine optimization. It improves the ranking of the web page or web site.


Tuesday, June 14, 2011

What are the important elements in search engine optimization Part I?

SEO web design is one of the most appropriate strategies to keep the competition.
A successful search engine optimization has few important elements includes a well targeted keyword focus, strong page element optimization and good quality content.

Keywords are most important element for search engines. These keywords are what search strings are matched against.The most crucial step is to find the correct keyword that can be used to optimize.

- Choosing the right keyword to optimize. It is best to focus on less competitive and highly specific keywords. The keyword should have the property of describing what is the purpose of your website. Also, check whether these keywords are relevant to your website or not.

- The website should be rich in keywords and have good keyword density. It is a measure to judge how relevant is the page.Keeping 5 to 10 keywords is termed as OK keyword density. Keyword stuffing should not be practiced.

- Quality of keywords and their position on the seb page is also very important. Keywords that appear in the heading, title are more effective than the keywords that are placed at the bottom.

- A balance has to be there between url keywords and site usability.
- The contents of page title tag are displayed during search so this is the special place where keywords can be given.

- From an SEO point of view, it is good to have as many headings with good keywords in it. The headings should not be very long as readability becomes difficult.


Tuesday, January 6, 2009

What to do when there is not enough time for thorough testing ?

What if there isn't enough time for thorough testing? The first answer (and applicable in a world that is more ideal) is to not be in such a situation. If you are releasing a software that is not thoroughly tested, then you are potentially sitting on dangerous ground, not knowing when and where the software could fail. However, there are cases when you are not able to spend as much time as you would like in testing the application. The rest of the article is about getting the right questions to answer if you need to determine what you should do when there is not enough time for thorough testing.
Use risk analysis to determine where testing should be focused. If the failure in a specific area could lead to a higher impact, then testing that area becomes more important.
In an ideal world, you have the time and ability to test every possible aspect of an application, every possible combination of events, every dependency, or everything that could go wrong, but in a ream world, there are constraints. Given this, risk analysis is appropriate to most software development projects. Risk analysis however is not so simple, and is a specialist field by itself requiring judgement skills, common sense, and experience. (There are training courses and other formal mechanisms that can train people to become more knowledgable in the area of risk analysis). Some of the factors or considerations that are useful when trying to estimate the procedure when you do not have enough time for thorough testing:
• Figuring out which functionality is most important to the project's intended purpose? This is a business decision and would need consulting from business analysts.
• Which functionality is most visible to the user? Users tend to be more concerned about things they can see, and those should seem to work perfectly.
• Which functionality has the largest safety impact? In this world, with legal worries about impact of software, it is helpful to make sure that areas of the application that can impact safety (human, structure, financial information) need to be tested in more detail.
• Which functionality has the largest financial impact on users? Users get real worried if their is a perception that a software flaw can have a financial effect.
• Which aspects of the application are most important to the customer? From the above points, it should be more clear as to which are the points that a tester should focus on, things that matter to consumers.
• Which aspects of the application can be tested early in the development cycle? In any development cycle, there will be parts that will be developed first, and there will be parts that will be developed later on in the development cycle. It is necessary to understand which are the items that will be available early.
• Which parts of the code are most complex, and thus most subject to errors? A part of any design and development process is the estimation of which workflows and areas of code are complex, where there is a greater chance of errors.
• Which parts of the application were developed in rush or panic mode? This is not a scenario that most people would like to see, but in rushed projects, there are parts which are developed faster (could be parts that are developed near milestones, could be components that are based on existing code and where there is a perception that this area need not have much focus).
• Which aspects of similar/related previous projects caused problems? Heuristics is a big help. Working on the basis of previous cycles and evaluating problems that came in similar situations gives a good overall pointer.
• Which aspects of similar/related previous projects had large maintenance expenses? There are many projects which are in maintenance mode, and for which there will be a large amount of data regarding problems that have cropped up, and error prone zones of the application.
• Which parts of the requirements and design are unclear or poorly thought out? Such a situation is more difficult to evaluate; the common thought in such cases is to deny that any implementation has not been well thought out, and so on. One needs to probe much deeper to find answers.
• What do the developers think are the highest-risk aspects of the application? Typically, the people who have actually developed the application are the ones who have the greatest idea about which area of the application is the most risk-prone. The dev and QE need to spend time in discussion so as to make sure that the most risky parts of the application are identified and tested.
• What kind of problems would cause the worst publicity? This is a difficult area. A part of the application that prints names improperly could be a trivial task, but could cause the application to become a laughing stock.
• What kinds of problems would cause the most customer service complaints? Customer service complaints cost money due to the need to have an active customer service, and can quickly eat away into revenue.
• What kinds of tests could easily cover multiple functionalities? Such a situation is most welcome. If tests can be tweaked in a way that the same test or series of tests can help in the testing of multiple areas of the application, that is great.

If you can add to this article, please add a comment.


Facebook activity