Skip to main content

Posts

Showing posts with the label Software Engineering

Different characteristics of Capability Maturity Model (CMM)

Capability maturity model or CMM as it is often abbreviated. It is a development model developed after a prolonged study of the data collected from various organizations from all over the world. Characteristics of Capability Maturity Model 1.The development of this model was funded by the USDD (United States department of defence). 2.The capability maturity model became the foundation for the development of software engineering institute or SEI as it is popularly known as. 3.The term “maturity” emphasises process optimization and level of formality. 4.Processes are optimized from ad-hoc practices to steps that have been formally defined. 5.Nowadays this model is being used effectively for management of result metrics. 6.Capability maturity model has proved to be great help in active optimization of the processes. 7.This model allows improvement in the development processes of an organization. 8.It is an effective and good approach towards improvement of any organizatio...

What is the difference between scripted testing and exploratory testing?

Though exploratory testing and scripted are considered being a part of each other, there is a lot of difference between the two. The 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.  There are following ways of executing test scripts: 1. 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. - Automated tests are poorly written and they may break during the execution. - They only test what has been programmed into them. - They only ensure that old bugs do not reappear. - Manual testing and automated testing should be mixed together and used for exploratory testing. 2. Manual testing: - This is the oldest and the most rigorous ...

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 ...

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...

What are different aspects of web site cookie testing?

In the last post, we already discussed what a cookie is and how and when they are used. So let us explore a little more about these cookies. Here we are going to discuss how the websites that use cookies are tested. Disabling the cookie Disabling the cookie feature is perhaps the easiest concept under website cookie testing. Disabling the cookies is the first step in web site cookie testing. - How the turning off or disabling of the cookies does affects a web site? You can check out by yourself. - Clean up all the cookies and close all the open browser windows of the site that is to be tested. - When you close the browser windows, the session cookies are automatically deleted. - Keep the cookie folder open while you are browsing the site. - You have to close the browser in order to delete all the cookies. - You will notice that as you close the browser, the session cookies are automatically deleted. - Now you disable the cookies and try using the features of the we...

What are cookies and its types? Where are cookies used?

A cookie or an HTTP cookie can be defined as a message used by an origin website to send the information about the state to the browser of the user and by the browser to send the information about its state to the origin site. An HTTP cookie is known by many names such as web cookie, browser cookie etc. The information of the state that is sent across the origin site and the user’s browser is used for the purpose of: - Authentication - Identification of the session of an user - Preferences of the user and - Contents of the shopping cart In other word HTTP cookies are used for any purpose that can be accomplished using the process storing text data on the computer of the user. Characteristics and Uses of Cookie - The main characteristic of Cookies is that they cannot be programmed and thus, cannot carry any kind of viruses or worms. - Any malware cannot be installed on the host system with the use of a cookie. So they are safe to this extent. - However, cookies ...

What are different concepts of Pair wise testing?

We all know that we can't test everything. This is particularly appropriate for testing multiple combinations of input parameters. To test all the possible combinations for these parameters would require millions of tests. - Pair wise testing or all pairs testing is an effective and systematic way to reduce the number of tests. - The process of integrating this testing technique into test practices can prove to be a boon in saving time and efforts. - Pair wise testing is also known as all pairs testing. - Pair wise testing is nothing but a combined form of software testing methodologies or techniques. - In a typical pair wise testing, all the pairs of input parameters, which are basically software algorithms, are tested in various possible unique combinations. If the test vectors are chosen carefully, this process can be carried out much faster instead of performing an exhaustive search of all combinations of all the involved parameters and by parallelizing the...

What is the difference between the dynamic testing and static testing?

Dynamic testing is also called dynamic analysis. It has always been a part of software testing and is basically used to explain the dynamic behavior of a software application or a program. - Dynamic testing can now be defined as the testing the response or reaction (physical in nature) of the system to the dynamic variables ( the variables which keep changing with time and are not constant) that have been used in the program. - To carry out a dynamic test for any program, one has to compile the software, run it and work with it. - Working with the software involves inputting data values to the variables. - It also involves checking the output if whether or not it is up to the expectations of the programmer. - The actual program output is checked against the desired program output. Input and output is checked for validation of the software. Many methodologies have been developed for dynamic testing. Few have been listed below: - Unit tests - System tests - Integr...

What is the difference between web site and web application testing?

Before discussing the main topic i.e., the differences between website test and web application testing, we should know the difference between the two basic terms i.e., web site and web application. What is a Website? - A website can be defined as the collection of web pages that contain videos, text, images and other related digital assets. - A website is generally hosted on a web server and is accessible via an internet connection or network address called “uniform resource locator” or URL. What is a Web Page and Web Application? - A web page can be defined as a document usually written in a plane text formatted with the formatting instructions of the HTML (hyper text mark up language) or XHTML (eXtensible hyper text mark up language) language. - Suitable mark up anchors can be used to incorporate elements from other websites in to a web page. - HTTP (hyper text transfer protocol) is used to access and transport the web pages. - The web pages may employ HTTP ...

What are different aspects of network penetration testing?

Penetration test is popularly called pen test. Penetration testing can be defined as a methodology to determine the security level of a network or a computer system. - This is usually done by simulating an attack from malicious outsiders or the people who are aliens to the system i.e., the people who don’t have any authorized means or permission to access that particular organization’s computer systems or network. - The process of network penetration testing requires having an active analysis of the whole network and computer system for checking any potential flaws and vulnerabilities in the network system or computer system. - These potential flaws and vulnerabilities could result from the improper or poor configuration of the network or the computer system. Other reasons for these potential vulnerabilities and flaws are: - Unknown and known software and hardware flaws and problems. - The operational weaknesses of the testing process and counter measures of the t...

What is software quality assurance and why it is important?

Software quality assurance or SQA as it commonly abbreviated to, can be defined as a standard means of the processes of software engineering and other methods that are used to ensure the quality of the software system or application products. The methods used for software quality assurance are several in numbers and also they are varied. These methods may include the ensuring of the conformance to more than one model such as CMMI or standards such as ISO 9000. Software quality assurance encompasses the whole process of the software development. The software development process includes many processes such as: - Definition of requirements - Designing of software - Coding of software - Control of source code - Review of code - Changing the management - Configuration management - Testing of the software system or application product and - Integration of the software product. Software quality assurance like any other process is complete with certain goals and objectiv...

What are different rules of thumb to write good test cases?

Writing good and effective test cases requires great skills since after all effective testing is achieved by effective test cases only! Writing such test cases is a great skill in itself and can only be achieved by in depth knowledge of the software system or application on which the tests are being carried out and it also requires some experience. Here I’m going to share some rules of thumb to write effective test cases, basic test cases definition and test case procedures. What is a test case actually? A typical test case is comprised of components that are meant to describe an action or event, input and an expected outcome in order to determine whether the software system or application is working as it is meant to or not. Before writing a test case you should know the 4 levels or categories of the test cases to avoid their duplication. The levels have been discussed below: Level 1: This level involves writing of basic test cases using the available specific...

What are different aspects of exploratory testing?

First let us discuss a little about what is exploratory testing actually? It is a term rarely heard of! Exploratory testing is a usual approach to software testing and can be defined as a test designing, test execution and simultaneously a learning process. It was named by Cem Kaner in 1983. He stated: "exploratory testing as a kind of software testing that is emphasized and focused up on the responsibility and the personal freedom of the software tester to optimize the quality and effectiveness of his /her work continually by taking in to consideration mutually supportive activities like test designing, test related learning, test result interpretation and test execution". - These activities run in parallel to each other. - Exploratory testing basically heeds to exploiting the creativity of the tester or the programmer. - During the testing of the software, the tester comes across various new things to learn together with experiencing them. - The tester...

What are different guidelines for smoke test?

In the field of software testing, smoke testing is defined as a preliminary test for the further testing of the software program or the application. - The smoke is basically intended to reveal the simple failures but big enough to get prospective and deserving software rejected for release. - The “smoke” in the term smoke testing is taken to be metaphorical. - Typically in a smoke testing, a sub set of the test cases (includes all the test cases that have been selected to be performed on the software system or application) are selected and run on the software system or application. - All the selected test cases cover all the most important functionalities of the components of the software system or application. - This is done in order to ascertain that whether the most crucial functions of a software system or application are working properly or not? To make it easy to understand let’s say that the smoke testing involves enquiring about the following questions: ...

What are different principles of communication?

Effective communication forms the most important part of the human interaction. Its importance can be hardly over looked. Each and every individual who forms a part of a team ought to know the principles of effetive communication in order to work and talk with the rest of the members of the organization and be listened to. Here communication principles have been explained from different view poiints including litening and speaking. Communication as we all know is a 2- way process of giving and receiving information through any channel. The following basic principles apply everywhere irrespective of who the speaker or the listener are: - Know your topic - Know your purpose - Know your audience - Anticipate objections - Present a clear picture - Follow through on what you say in regard to your topic. - Achieve credibility with your audience. - Present what you want to say in different catchy ways - Communicate a little at a time - Develop a practical way to get fee...

What are merits and demerits of ad hoc test approach?

Ad hoc testing as the name suggests is the testing that is carried out without any formal planning and formal documentation though it can be used for scientific experimental studies. - The ad hoc testing is meant to be carried out only once until and unless a defect is found. - It would not be wrong if we call the least formal methodology of testing a software application or system. - It has always been under criticism because of its uneven structure and also because the defects discovered through this kind of testing are difficult to reproduce due to a lack of written test cases. However, there is still a plus point of ad hoc testing as important defects or bugs can be found quickly and easily without much efforts and pre planning. Principle of Ad-hoc testing The ad hoc testing is based on the principle of improvisation i.e., the software testers seek to find the errors and bugs by any means that seems appropriate to him/ her or we can say tests are performed acco...

What is specification based testing? What are its advantages and disadvantages?

Specification testing as its name suggests can be defined as the type of testing in which the software product’s performance and conformance is checked with every statement mentioned in all the available documents for reference. - This specification based testing is carried out by specification based tester. - The documents used for specification based checking might be user manuals, formal specifications check lists, third party documents or even advertisements. - Specification based testing ought not to cover automatic extraction of ideas of testing from the mentioned specifications and it also not covers the use of the automated program comprehension tools. - While carrying out the specification based testing an assumption is made in which we assume that a natural language specification exists that is to be analyzed by a human being. The following tasks are carried out by specification tester: - To identify the sets of reference 3 documents. - To develop the ide...

What are different mutation testing methods?

Mutation testing is another methodology of software testing. It can be defined as the software testing methodology which involves modification of source code or programs or the byte code of the program in a way that is particularly small but significant. Mutation is known by two other names: - program mutation - mutation analysis. SOME IMPORTANT FACTS - The mutated code is tested using various cases and the test suite that doesn’t detects and rejects the code that has been mutated is usually considered to be defective in nature. - The required mutations are carried out on the basis of some well defined operators known as mutation operators. - These mutation operators are well known to mimic typical programming bugs or errors and some times they also force the creation of tests which are significantly valuable tests. - Best example of such test is given by the test which derives each expression to the value zero. - The purpose of the mutation testing is basica...

What are different aspects of exploratory testing?

Exploratory testing is a usual approach to software testing and can be defined as a test designing, test execution and simultaneously learning process. It was named by Cem Kaner in 1983. "He stated exploratory testing as a kind of software testing that is emphasized and focused up on the responsibility and the personal freedom of the software tester to optimize the quality and effectiveness of his /her work continually by taking in to consideration mutually supportive activities like test designing, test related learning, test result interpretation and test execution". These activities run in parallel to each other. - Exploratory testing basically heeds to exploiting the creativity of the tester or the programmer. - During the testing of the software, the tester comes across various new things to learn together with experiencing them. - The tester or the developer with his /her creativity can generate new and better test cases to run. - Exploratory can be tho...

Simple Java Template Engine

Template engines are widely used in Web Frameworks, such as Struts, JSF and many other technologies. Apart from classical Web Framework, template engines can be very useful in integration projects. In an actual integration project that deals with a lot of XML data exchange, I discovered the Java Template Engine Library FreeMarker. This Open Source Library is a generic template engine in order to generate any output, such as HTML, XML and any other user defined output based on your given template. "[...]FreeMarker is designed to be practical for the generation of HTML Web pages , particularly by servlet-based applications following the MVC (Model View Controller) pattern. The idea behind using the MVC pattern for dynamic Web pages is that you separate the designers (HTML authors) from the programmers. Everybody works on what they are good at. Designers can change the appearance of a page without programmers having to change or reco...