Subscribe by Email


Showing posts with label efficient. Show all posts
Showing posts with label efficient. Show all posts

Monday, September 16, 2013

What are the differences between inter-network routing and intra-network routing?

- The individual networks when combined together form the inter-network. 
Intermediate inter networking devices are used for making connections between them. 
- All these networking elements combine to work as single large unit. 
- The creation of the internetworking has been made possible because of the packet switching technology. 
- The router is the most common and important device used for performing inter-network routing and intranetwork routing.
- Routing across various networks in the inter network is termed as internetwork routing and routing within the same network is termed intranetwork routing. 

In this article we discuss about the differences between internetwork routing and intranetwork routing. 

- Just like inter-network, intranetwork also uses IP (internet protocol) technology for computing services and sharing information. 
- But what makes it different from internetworking is that it is limited to some organization whereas internetwork extends beyond all i.e., it is not limited.
- Or we can put it in other words: Internetwork is spread across organizations and Intranetwork lies within an organization. 
- In some cases, the term intranetwork might mean only the internal website of the organization, but in other cases it might be a larger part of the IT infrastructure of the organization. 
- Sometimes, it may span over a number of LANs (local area networks). 
- The intranetwork is driven by the goal of minimizing the time, effort and cost of the individual’s desktop in order to make it more competitive, cost efficient, timely as well as productive.
- An intranetwork is capable of hosting multiple websites that are private to organizations and may even constitute an important part of the collaboration and communication between the members of the organization. 
- Intranetwork also makes use of various well known protocols such as the FTP, SMTP and HTTP. 
- The intranets are often incorporated with the technologies for lending a modern interface to the systems that host the corporate data. 
- These systems are known as the legacy systems. 
- We can see intranetwork to be a private analog of the internetwork. 
- It means the internetwork has been simply extended to an organization for its private use. 
- Extranetworks are a modified version of the intranetworks.
- Here, the website might be accessed by the non-members i.e., the suppliers, customers or some other approved third parties and so on. 
- Intranetworks are well equipped with a special protocol called the AAA protocol. 
- The 3 As stand for authentication, authorization and accounting. 
- There are a number of organizations who are concerned about the security of their intranetworks. 
- They have deployed a firewall and a network gateway for controlling the access to their services. 
The intermediate systems when connect together form the internetwork whereas they may bound together a part of the internetwork which might be an intranetwork
- The intranetwork routing involves routing between two routers which lie in the same network whereas in internetwork routing, routing is done between routers which reside across different networks. 
- Intranetwork routing is quite easy when compared to the internetwork routing. 
- Protocols used in both the types of routing are different.
- Interior gateway protocol is responsible for routing in the intranetworks whereas the exterior gateway protocol takes the responsibility of routing across the internetwork. 
- Most common example of interior gateway protocol is the OSPF or the open shortest path first protocol. 
- And most common example of exterior gateway protocol is the border gateway protocol or BGP. 
- Also, the routing graphs for both the types are different. 
- In the intranetwork’s graph, all the routers are simply linked to one another in the same network. 
- There is less mess.
- On the other hand, the inter network’s graph is quite tedious. 
- This is so because routers of different networks have to be inter-linked with one another. 


Tuesday, May 7, 2013

What is meant by Time sharing system?


In the field of computer science, sharing resources of a computer through techniques of multi-tasking and multi-programming by many other system users is termed as a time sharing system. 
- It was first introduced in the year of 1960 and eventually emerged as the most popular computing model of the 1970s. 
- With it, occurred a major shift in the technology of designing the efficient computers. 
- These types of systems allowed quite a large number of users for interacting with the same computer system at the same time. 
- Providing computing capabilities was a costly affair at that time. 
- Time sharing greatly brought down this cost by providing these capabilities at a very less cost. 
- Since time sharing allows multiple users to interact simultaneously with the same system, it has actually made it possible for the organizations and the individuals to use a system that they do not even own. 
- This has further led to the promotion of the computers to be used interactively and development of other applications with an interactive interface. 
- The earlier systems apart from being expensive were quite slow. 
- This was the reason why the systems could be dedicated only to one task at a time. 
- The task was carried out through the control panels from where the operator would enter small programs manually through switches so as to load and execute a new program series. 
- These programs would take even up to weeks for completing execution. 
- The realization of the interaction pattern was what that led to the development of time sharing systems. 
- Usually, the data entered by a single user was in small bursts of info and then a long pause. 
- But if there would have been multiple number of users working concurrently on the same system, there activities could fill up the pauses of the single user. 
The overall process could be made very efficient for a given size of the use group. 
- In the same way, the slice or share of time that was engaged in waiting for network input or tape or disk could be utilized by activities of other users. 
- A system that would be able to harness this potential advantage was difficult to be implemented.
- Even though batch processing was a high at that time, it could only make use of the time delay between two programs. 
- In the early times, the multiplexing of computer terminals in to main frame computer systems was seen.
- Such implementations were capable of sequentially polling those terminals to check for additional action and data requests made by the user of the system.

- Later, came the interconnection technology that was interrupt driven and made use of the IEEE 488 i.e., parallel data transfer technologies.
- Time sharing faded for some time with the advent of the micro computing but again it came back in to the scene with the rise of internet. 
- The corporate server farms cost in millions and are capable of hosting a large number of customers sharing the same resources.
- The operation of the websites using the early serial terminals was in bursts of activity that were followed by idle periods. 
- However, it is because of this bursting that the services of the web sites could be used by a large number of users simultaneously and with the advantage that the delays in communications won’t be noticed by them.
- However, if the server gets too damn busy they will surely start coming in to the notice.
- Earlier some time sharing services such as the service bureaus were offered by many companies. 
- Some examples of common systems that are used for time sharing are:
  1. SDS 940
  2. PDP – 10
  3. IBM 360


Wednesday, April 24, 2013

What is multi-tasking, multi-programming and multi-threading?


When it comes to computing, there are 3 important tasks that are inter-related concepts namely multi-programming, multitasking and multi-threading. 

What is Multitasking?

- This has actually emerged out of the need of multitasking since while the system performed one task a lot of time was wasted. 
- As their needs grew,people wanted the computer to perform many tasks at the same time. Multi-tasking is what we call it. 
- Here, multiple tasks or processes are carried out simultaneously.
- The common processing resources i.e., the main memory and the CPU are shared by these processes. 
- If the system has only one CPU to work with, then it can only run one task at a time. 
- Such systems seek to multi-task by scheduling all the processes required to be carried out. 
- It runs one task and the other one waits in the pipeline.
The CPU is reassigned to all the tasks turn by turn and this is termed as a context switch. 
- When this happens very frequently, it gives an illusion that the processes are being executed in parallel. 
- There are other systems called multi-processor machines which have more than one CPU and can perform a number of tasks greater than the number of CPUs. 
- There are a number of scheduling strategies that might be adopted by the operating systems and they are:
Ø  Multi – programming
Ø  Time – sharing
Ø  Real – time systems

What is Multi-Programming?

- Earlier we had very slow peripheral devices and therefore the CPU time was a luxury and so expensive. 
- Whenever a program was being executed for accessing a peripheral, the CPU was to keep waiting for the peripheral to finish with processing the data. 
- It is very inefficient. 
- Then came the concept of multi–programming which was a very good solution. 
-  When the program reached the waiting status, its context was stored in the memory and the CPU was given some other program to execute. 
- This processing continued till all the processes at hand were completed. 
- Later,developments such as VMT or virtual machine technology and virtual memory greatly increased the efficiency of the multi – programming systems. 
With these two technologies the programs were able to make use of the OS and the memory resources just as they were being used by the currently executing programs. 
- However, there is one drawback with multi–programming which is that is does not guarantees that all programs will be executed in a timely manner. 
- But then also it was of a great help in processing multiple batches of programs.

What is Multi-threading?

 
- With multi–tasking a great improvement was seen in the throughput of the computer systems. 
- So programmers found themselves implementing programs in sets of cooperating processes.
- Here, all the processes were assigned different tasks like one would take input, other one would process it and a third one would write the output to the display. 
- But for this, there was a requirement of tools that allowed an efficient exchange of the data.
- Threads were an outcome of the idea that the processes can be made to cooperate efficiently if their memory space is shared.
- Therefore, threads can be defined as the processing running in a memory context that is same for all. 
- These threads are said to be light – weight since there is no need for a change of memory context for switching between them. 
- The scheduling followed here is of the preemptively. 


Tuesday, July 3, 2012

What are the main attributes of test automation?


Test automation is nowadays counted among the best software development aids that we have today. It is a great testing aid that seeks to resolve the drudgery of the testers. Test automation has become so common nowadays that every one of us knows quite a lot about it.

What does Test Automation do?


- Test automation actually controls the execution of the test cases by using an automated process. 
- Also, the comparison of the actual and the predicted outcome takes place in the same and "take it easy" manner.  
- One thing that should be noted is that only those manual processes can be automated which have deployed a formalized testing process. 
- In the test automation process, the user actions are recorded and the checkpoints are introduced in to the testing script so that playing it back from a particular point is made easy when you have to perform regression tests. 
- The manual tests that passed can be automated and is mostly used in the testing methodologies like:
  1. Data driven testing
  2. Regression testing
  3. Performance testing and so on.

Attributes of Test Automation


By attributes, we mean the characteristics of the test automation process. It has got quite a lot of positive attributes. So let us what all attributes we can state for test automation:

1. Repeatability:
Automation supports repeated execution of a test case several times again and again. When you need to execute the same test case again and again the test automation comes as a big win for you.

2. Programmability: 
The test cases can be programmed to be executed on a number of different machines whereas the manual tests have to be executed in a sequential way one after the other.

3. Reliability: 
You can rely on test automation for repeat-ability and accuracy.
4. Impact
5. Criticality

6. Maintainability: 
The maintenance is just that you have to update the test automation suites for every new release of the software system or application.

7. Flexibility: 
With test automation it becomes quite easy for you to run automated tests that frequently change according to the regressions at particular time intervals and also the tests can be run in mainstream scenarios.

8. Efficiency: 
The ratio of total cost to the required effort need is reasonable.

9. Portability: 
The automated tests can be executed in different environments unlike manual test cases.

10.Robustness: 
The automated tests are quite effective for the software systems or applications that are quite unstable or change rapidly.

11. Usability: 
The automated tests can be used to a large extent by different types of users.

12. Speed
13. Accuracy

14. Relentlessness: 
The automated test generator as well as the process never gets tired generating and running test cases.

There are some tests like exploratory testing and usability which cannot be automated because of their free style. Testers involved in a testing team support diverse software systems and applications that are quite unrelated to each other. 
If the projects that demands implementation of a unique testing strategy, then the testers involved in the whole will appear more to be a hindrance rather than being a help. 
- The testers will require tie to get adjusted to the new environment which unfortunately they cannot get and thus lowering the level of their productivity. 
- We cannot waste time on re- engineering the development frame works but we can surely harness test automation power for every new application that we need to develop. 
- The application can be continuously improved since the test automation has got so many positive attributes that can surely benefit the whole testing process. 


Wednesday, May 2, 2012

TestLink is a Free, open source test case management tool? - Explain?


Testlink is a free open source test case management tool! It means that it can be freely redistributed and accessed. These kind of open source tools have been invented so to support the new environment created by the issues like:

                                            1.  Licensing
                            2.  Copyright
3                          3. Domain issues
4                          4.  Consumer issues
    
      

Concepts of Open Source Models

 -The open source models employ the concept of different agendas but concurrent with different approaches in  production. 
      - The whole open source concept works on the principle of the peer production.
      - Peer production means collaborating and bartering with the end documentation, source material, blue prints and product which are available for free to the public.
    - The source code of the testlink is made publicly available and the public is given full right for modifying, copying and redistributing it at no cost. 
   - It has evolved through the community operation which is comprised of many individual software programmers from large companies. 

       

What purposes are facilitated by Test Link?


       Testlink is an open source test management tool and provides the facilitation for purposes like:
1                                          1. Test specification
                                            2. Test planning
                                            3. Test reporting
                                            4. Tracking of the requirements
                                            5. Collaborating with the well known bug trackers
     
         

 Features of TestLink

      1.  Set urgent tests
            2.  Custom.css
            3.  Gives an option for creating new test cases and requirements.
            4.   Offers the possibility to do a quick DIFF of the 2 test case versions.
            5.   Fully supports the internet explorer 9 via ExtJS 3.4.0.
            6.  Direct links to each and every requirement can be generated.
            7.  Table ruler
            8.  The requirement versions are well supported by the internal links.
            9.  After editing the requirements and specifications, the tree can be refreshed.
          10.  The states of the tree can be stored and restored in a very reliable way.
          11.  Test result matrix facilitates the filtering by status.
          12.  Requirement revisioning.
          13.  Test case and new requirement comparison method.
          14.  PHPMAILER
          15.  Collapse and expand buttons for trees
          16.  Log messages for the history of the requirements.
          17.  MSSQL support
          18.  IE8 based event viewer
          19.  Query metrics
          20.  Improved minor usability
          21.  Improved tables via EXT- JS
          22.  Improved filters
    23. At the build level, test case execution assignment has been provided.


In spite of all such great features, currently there are two features lurking out:

               1. The debug messages interfere with the working of the reports.
               2. There are troubles going on with the updating of the test case executions. 
       
       

Benefits of TestLink

 

      1. Using the testlink, one can easily integrate one’s test scripts to get the results. 
     2. It is a test management tool that is completely independent and is very effective in managing testing cycle    in a short period of time. 
     3. It helps in cutting down the management, development and maintenance cost of your project, thus making the whole project quite affordable and feasible for you.
     4. It helps in simplifying and accelerating the whole testing process and reporting by:
                 -  Collecting and organizing all of your test cases in a dynamic way.
                 -  Tracking the metrics and the results in association with the test execution.
                 -  Capturing and reporting the details.
                 -  Customizing itself to fit your processes and requirements.
5. It overall assists you in conducting an efficient and thorough testing process and makes best use of the experience it has achieved over 100s of implementations for the clients around the world. 
6. The redistribution of this tool is governed by the GNU general public license.


Friday, March 16, 2012

What are three main purposes of software testing?

It is a world wide established fact that the software testing has proved all the way very effective in improving the satisfaction of the clients and customers by delivering them a software product that is quite free of defects, errors and bugs.

Only the stable, error free and reliable software systems and applications are accepted in to the business. There is no place for the unstable and buggy software systems.

WHAT HAPPENS IF TESTING IS NOT DONE PROPERLY?


- There is a substantial increase in the chances of the failure of a software system or application if it is not tested or tested only up to a small extent.

- This in turn increases the rates of wastage of time as well as one’s precious efforts.

- The rework and rewrites and their maintenance cost the organization so much and also annoys the customers and clients.

- If a software system fails, it only gives an indication towards the inadequacy of the efficiency of the system and a lack of testing.

- The failure of the software systems or applications can cost too much in certain cases where very sensitive and critical matters are dependent on the working of the software.

- Software testing has been scientifically defined as a process that deals with the verification and validation of the software system or application.

- It ensures whether or not the system meets all the requirements specifications that have been used all along its development cycle to guide its designing and makes sure that the software system or application is working as expected by the makers.

THREE MAIN PURPOSES OF SOFTWARE TESTING


Three main purposes of the software testing have been laid down as mentioned below:

1. Verification
This purpose deals with the verification of the development process of the software system or application and ensures that the software is being developed or built in the right way.

2. Validation
This is all about making sure that the right software artefact is being produced.

3. Defect finding verification
This is for the purpose of ensuring that the software system or application that is being built, meets the technical specifications and requirements stated for it by the customer or the clients. It also checks out for the variation of the defect range between the actual outcome and the expected outcome.

BENEFITS OF SOFTWARE TESTING


- Software testing has very well taken up the responsibility for ensuring that the software system or application meets the business requirements as specified for it and thus whether or not works as expected.

- The compatibility of the software system or application with a range of different platforms is also evaluated and the performance rating is given.

- Whether the software system or application should be released or not, is determined on the basis of the results of the software testing.

- Software testing has a whole lot of benefits, the greatest ones being the saving of the time and efforts which are indeed very priceless commodities.

- Defects, bugs and errors if detected earlier eat up less time and money and reduce development time and also if the application or system is kept error free in the beginning itself, then less problems will be faced in the future development phases.

Software failures as mentioned above can give rise to life threatening issues to the:

- People (for example, control system failure resulting in a plane crash, life support system failure in hospitals causing deaths)

- Environment (for example, a software failure causes the harmful radiations and chemicals to be released in to the environment and thus affecting the whole eco system)

- Companies (for example, some times the software might do the bill incorrectly due to some discrepancy in it causing the company a great money loss) and so on.


Saturday, January 21, 2012

What is the difference between automated testing and manual testing?

Automated scripted testing and manual scripted are two most common and popular ways of carrying out the scripted testing. Scripted testing is performed by a set of test scripts which can be defined as a set of instructions that are to be performed on the software system or application under the test to test a particular functionality as required.

Automated testing is mostly used.
- In automated testing the test cases are executed automatically and there is no need of human intervention.

- Non- requirement of human intervention is the best advantage of automated testing.

- It can be easily repeated and is faster than manual testing.

- It is very useful when it is required to run the same tests over and over again.

- It is performed as a part of regression testing.

- The main drawback of automated testing is that the automated tests are poorly written and they may break down or crash during the execution.

- They only test what has been programmed into them.

- They only ensure that old bugs do not reappear and don’t prove to be a good methodology to find out new bugs and errors.

In contrast to automated testing the manual scripted testing is the oldest and most rigorous form of software and application testing.
- In manual testing the test cases are reviewed by the whole testing team before putting them in to execution.

- These test cases are created at two levels.

- The first level is basic functionality level and the second one is the scenario level.

- Apart from reviewing of test cases, the designing is also done by the whole software development team.

- Manual scripted testing is considered to be a waste of resources by most of the testers.

- According to some testers the scripted manual testing inhibits the mind of the tester to use their creativity and also this testing requires heavy documentation as well as considerable amount of resources to create them.

- They often get out dated since the changes in the system are inevitable.

- Though being so criticized manual scripted testing is used by many organizations.

- The test cases are made repeatable and easy enough for a tester to perform testing with minimum supervision.

- Manual scripted testing is used in contracts where contractual agreement states that written requirements and specifications of the software must be met.

- Scripted test cases are useful where the tests are used for the benchmarking purpose and have to be executed in the same way, every time.

- The testers should have a strong knowledge of the software system or application since in manual scripted testing; the test cases are created beforehand.

- The primary sources of information to the testers are functional design specifications, requirements documents etc and so on.

- To make the testing more effective, the testers are free to use supplementary sources of information to increase their knowledge of the software system or application by rigorous discussions with the development team.

- Manual scripted testing is used in situations or programs where a waterfall methodology along with the V-Model has been implemented.

- Apart from waterfall and v model methodology, this approach can also be used for projects where requirements and specifications are frozen and likelihood of modifications in those requirements and specifications is very less and this is also suitable for the situations where safety and regulatory situations demand proof of testing.

- Generally, this manual testing approach is considered old but, it is quite relevant in this current era of market driven applications.

The best methodology is mixing manual testing and automated testing together and using it for exploratory testing.


Friday, January 20, 2012

What do we mean by automated test data generation?

First let us clear up what is meant by Test automation? Test automation can be defined as the use of software system, program or application to carry out the following tasks:

- control the process of execution of tests
- to compare the actual outcomes with the predicted outcomes
- to set up the preconditions for test cases
- to keep test control and
- to implement the function of reporting tests.

WHY TEST AUTOMATION IS USED?
Test automation as the term itself suggests involves automation of a manual testing process which is already in progress.

- It is used for automating manual testing processes which use a formal approach for testing.

- Although manual testing also holds good for finding defects in a software program or application, it is a very laborious and time consuming testing process and also it is not so effective in finding certain kinds of defects.

- To overcome these drawbacks of manual testing, automated Testing is employed.

- It involves a process of writing a computer program or software to carry out testing that would otherwise requires to be done manually.

- Once the tests have been automated, they can be run, easily, quickly and repeatedly.

- All these plus points make the automated testing a very cost effective method for software applications.

- Even minor bugs or discrepancies can cause the program to break or crash over the lifetime of the application.

Two general approaches to test automation have been discovered so far:

- Code driven testing
Elements like classes, public interfaces, libraries and modules are tested under code driven testing with a assorted data arguments in order to validate the results for their correctness.

- Graphical user interface testing
As the name suggests this testing approach creates user interface events such as mouse clicks, key strokes etc. the changes that occur in the user interface are observed and that observable behavior is validated for its correctness.

TOOLS FOR TEST AUTOMATION
Unlike tools required for manual testing, test automation tools are quite expensive, and are usually employed or used in combination with the tools of manual testing.

- Nevertheless, the tools can be cost-effective in the longer term if used repeatedly in regression testing.

WAYS TO GENERATE DATA
Now coming to the automated test data generation, there are several ways for generating data and test cases.

- One of the ways to generate test cases automatically is model- based testing and it generates test cases through use of a model of the system.

- Data is the most important thing needed to execute any test.

- Generating data again and again for repeating tests becomes a time consuming task.

- You need to design the test data again and again to execute your test cases.

- You need to design the test data at the current instant if you are running tests in an exploratory manner.

- Generating test data on your own takes a lot of your valuable time.

- Automated tests need a large amount of distinct test data.

- Another alternative can be copying and pasting data for running tests if the production data is available.

- However, this does not prove to be a very good approach.

- But, nowadays several tools have been developed which can be used for automated test data generation.

So the good thing is that you need not waste your precious time generating test data by hand. These tools help you by creating large quantities of test data based on the conditions and constraints specified by you.

Automated test data generation has got the below mentioned benefits:
- Fast data generation
- Accurate data
- Uses built in algorithms
- Creates both valid and invalid test data
- Data is exportable


Facebook activity