Friday, 28 January 2011


Introduction

        As we understood in our previous chapters , that many types of testing require changes to be done in the layers and logics of a particular environment to declare the product stable.
Here we will have a look on the distinguishable features of the environmental components. 

Environment

     Environment : In close relation to our testing context, Environment is defined as combination of three layers, namely Presentation Layer, Business Layer and Database Layer. Lets understand what these layers mean how does an environment affect or testing.

Image : Courtsey New York Cartoon Store.com 

                                             

Layers & Logics :   

Logic : Logic  is defined as ' The sequence of functions performed by hardware or software. Hardware logic is made up of circuits that perform an operation. Software logic is the sequence of instructions in a program.'(ref 1).  Or in simple terms to understand It is the reasoning to make simple circuit components to perform some action.
In general, there are three types of logics, Presentation Presentation logic generally means the user interface , business logic relates to the whole transaction between the user and the application and database logic is the design to establish proper storage and retrieval of any data whenever needed by the other two logics.
Layer : It is the hardware necessity to support the functions of logic, In other terms the logics of an application need to have the layers present to perform the functions or tasks effectively. Generally the Server that is responsible for executing the functions present in the logics of the application are known as the environmental layers of the application. So like logics, there are three types of layers such as Presentation Layer, Business Layer, & Database Layer.
    Improvising on the previous concepts we can come to a conclusion that,
    Application       =  Presentation logic + Business logic  + Database logic. 
    Environment  =  Presentaion layer + Business layer + Database Layer.
    System = Application + Environment .
Now that we have an idea of what an environment means in our testing scenario, lets move and understand how many types of environmental components exist and what are the testing related environments needed to be learnt. There are primarily 4 basic environments.

StandAlone Environment 

    In this type of environment  all the three layers ie, presentation, business and database will be present in one tier/block of area. (e.g  A Desktop PC or Home PC  has the capacity to support all the logics of an application which are built for them, like windows operating system is providing the presentation, business and database layer support for complex applications like SQL server and Animation, photo-video editing softwares etc. )
 This is also the reason why Standalone environments are also known as ' I tier or Single tier'  structure. If at all the application is to be used by a single user, then this will be the best suitable environment.

Client Server Environment 

    This type of environment contains 2 tiers (sections). One is for the clients (end users) and the other is for server.Presentation layer, business layer will be present in each and every client, but the database layer will be present in the server. 
If at all the application or data need to be accesed in a single organisation or a network located at one place , then this type of environment is most recommended. The benefits include speed and security within the network. But when the network increases geographically, then we have to go beyond this kind of  ' II tier architecture' to a bigger environment.



Image : See references oracle.com/docs 1.1

Web Environment

       This kind of arrangement is also known as 'III tier architecture' . One tier is provided for each kind of layer. The presentation logic will be available in the clients system, another tier will act as the application server (where updates can be quick and can be shared by every client quickly, In other terms whenever the software version changes or new features are added, you dont need to buy a new cd or dvd, you can log on to internet , connect to the application server, and download the updated version and new features are automatically installed in your system. ) 
If the application need to be used all over the world by limited number of people then this is the best suited environment. It overcomes the drawback of location when compared to II tier structure. But when the users are huge in numbers then we need to opt for the next option.

Distributed Environment or Multi tier or Entire Structure 

    This is similar to the web environment but the difference is that the number of application servers are increased.
Even though the number of client machines increase, the database logics also need to be increased but all the database logics will be in on tier and all the presentation logics in one tier. To understand better lets take this picture



Image 2.1, multitier, see references below 
 Big companies like google and yahoo receive billion visitors every week. The servers that host the data of the clients has to be huge and is secure at one place, which is usually one large storage server with terrabytes of capacity and is called the Data server.
Also the applications are improvised very often in web related functions. So updated applications also need more space on the application server. But the biggest advantage with this distributed structure is that the load on the server can be managed and the environment can handle stress efficiently.
(Refer Automation test knol for details.)
It also helps in continuing the services more effectively, because if one application server is down , the other application servers can share the load amongst themselves while the other server is under repair and maintenance.

Thick Client & Thin Client : If the client machine has both the presentation and business logic then it is called 'thick client' . For example, Computers in a workgroup share the same application in a bank but all the customers data is accesible only after an authorized entry into the database server.
    Thin client is the system which only has the access to presentation logic of the application, most of the applications on web like gtalk or messenger programs have an interface which can be customized according to each user, which is the presentation logic. The secure application is present in the application server where all the changes take place in the application and data is maintained seperately in a database server.
Once we understand this environments chapter, we can now link the types of testing and combinations of different environmental components. Moving forward we will see the different life cycle approaches of Software Industry.

Software Development Process Models


Waterfall model

  This waterfall model is most suitable for organisations that follow traditional development process. Waterfall model is similar to the SDLC model that we discussed earlier in our testing chapter
Every phase generates a document at the completion which acts as a proof of accomplishing the phase succesfully.
Advantages: of Waterfall model are that Its simple and easy to follow and maintain. Monitoring complex tasks become easier with this approach.
Disadvantages: of this model is that One is hesitant to accept any new requirements in the middle of the process. Generally the impact surveys are done if any new requirements arise from the customer during the project.
Waterfall Image  3.1 references

 Prototype model

  This model is used less frequently in companies presently. Main reason for this model to be introduced was to facilitate customers with unclear requirements. When the client is in doubt the company approaches with either the hardware or software prototype (rough approximate model close to the end result) to the customer.
Advantages: This is the best suited model for winning confidence of the non technical customers and create a clear requirements list.
Disadvantages: The first concern is that the prototype has to be built on the company's expense. Its also time consuming and sometimes the customer might limit his requirements and stick to the prototype specifications.

Evolutionary model

  This is a typical scenario where the developed service is more of a continuos project rather than a short lived product. If the customer is evolving all the time, In other words, wants more features or functionalities to be introduced in the application regularly, then this is the best model.
  Advantages: Validation is almost certain that it meets all the customer requirements.
Disadvantages: Few concerns with this model is that the deadlines are not clearly defined. Monitoring and maintenance is difficult and there is No transparency with the future requirements unknown.

Spiral Model

  One of the more popular models with high quality oriented companies is the spiral model. This is a circular, web like model where the stages are most suited for High Risk based projects, or sensitive secure projects. Generally we see that the project is divided in modules and approached, but the extra effort is taken to devide the goals of the project and individual analysis assigned with each phase in this model.


Spiral model image 3.2 references see below 


Advantages: When you have less margin for error and want a perfect quality application, then this is the best approach. High risk defence applications and medical services are the most benefited sectors from this model.
Disadvantages: Its highly time consuming, expensive and difficult to perform indepth risk analysis.


Fish model

  This is a process oriented companys development model. Eventhough it is a time consuming and expensive model, One can be rest assured that both verification and validation is done paralley by seperate teams in each phase of the model. So there are two reports generated by the end of each phase , one for validation and one for verification. Because all the stages except the last delivery and maintenance phase is covered , by the two parallel processes, the structure of this model looks like a skeleton between two parallel lines, hence the name fish model.
 Advantages: This strict process results in products of exceptional quality. So one of the important objective is acheived.
Disadvantages: Time consuming and expensive.
 

V-Model

  The highest Quality product can be claimed by only one model, which is the V model. Its proved to be the best model among all so far in the present times. The main reason is that along with the role checking and process checking, there is a seperate teset management process to re-ensure the quality of testing. This test management helps in calculating the efficiency of a software
V model image 3.3 references see below 

application. Its measure is known as DRE(Defect removal efficiency).
DRE = A/A+B , where A is defects found by testing team, and B is the number of defects according to the customer or the end users.
  Advantages: The result is of the Highest quality possible.
Disadvantages still remain the same as other good models, time consuming and expensive. These drawbacks are still be countered by present Process models. 
Please visit the Testing theory knol and STLC knol for detailed index and descriptions.

Agile Project methodology

Now a days project going very fast. and client wants us a perfect output with complete details and without any bugs. Most of the projects doesn’t follow the all details ( some methodology ) to complete the website.

Agile Project methodology is very simple and easy to implement. It is very fast to implement with professional way to complete.
1) Requirement analysis
It is also called as brainstorm.
2) Design Document & Prototype
It is also called as design
3) Iteration , Demo & feedback
It is also called development
4) Identify defects & resolve bugs
It is also called quality assurance.
5) Production & Technical support
It is called deployment.
agilechart | Anil Labs
agilechart | Anil Labs

References

  1. Articles, Logic term defn. synopsis.com/pages © 2008 Synopsys, Inc. All Rights Reserved. 5th December 2008
    logic definition
  2. GIC.XML, The Cached documents, Copyright © 1997-2008, InterSystems Corp. 9th Dec 2008
    Image link
  3. Downloads, Software terms.docs, Oracle.com Copyright © Oracle.com 9th December 2008
    Image 1.1 link
  4. image 3.2 Raj, softwareqatestings.com, spiral, 3 Aug 2008, copyright public, 11th Dec 2008
    image 3.2 link
  5. image 2.1 multi tier, bahadiryemez.com, copyright wordpress public, 11th dec 2008
    image 1.2 link
  6. image 3.1 waterfall model, universalsystems.co.id, Aceng Zakaria Ramadhani, basics of software testing, Copyrights © 2006 PT Universal System - All right reserved, 11th dec 2008
    image 3.1 link
  7. image 3.3 V model, conquestofspace.com, articles development, Last updated 11/06/200, accesed 11th dec 2008
    image 3.3 link

8 comments:

  1. Thanks for Sharing the valuable information and thanks for sharing the wonderful article..We are glad to see such a wonderful article..
    QTP Training in Chennai | QTP Training Institute in Chennai | QTP Training

    ReplyDelete
  2. Thanks for Sharing the valuable information and thanks for sharing the wonderful article..
    ios training in chennai

    ReplyDelete
  3. • Thanku for shariong..
    Informatica training, in the recent times has acquired a wide scope of popularity amongst the youngsters at the forefront of their career.

    selenium training in chennai

    ReplyDelete
  4. Thanks for Sharing the valuable information and thanks for sharin.
    java training in chennai

    ReplyDelete
  5. Everyone wants to get unique place in the IT industry’s for that you need to upgrade your skills, your blog helps me improvise my skill set to get good career, keep sharing your thoughts with us.
    Software training institutes in chennai|Software testing training institutes in chennai

    ReplyDelete
  6. Selenium is a most popular automation testing tool used to validate web application and other internet applications. This test automation tool readily integrates with your web browser and makes complicated testing process lot simpler.Selenium Course in Chennai | Best Selenium training institute in Chennai

    ReplyDelete
  7. Nice and good article.. it is very useful for me to learn and understand easily.. thanks for sharing your valuable information and time.. please keep updating.more 
    php jobs in hyderabad.

    ReplyDelete

TrainingHUB. Powered by Blogger.

Total Pageviews

THE BEST QTP TRAINING INSTITUTE IN HYDERABAD

QTP Training in hyderabad

Sql Tutorial

Popular Posts

Our Facebook Page

TrainingHUB

Followers