Posts

What is Unit Testing?

Image
Unit Testing is a type of software testing where individual units or components of a software or program of a software are tested. The purpose is to validate that each unit of the software or program performs as expected. Unit Testing is not a new concept. It’s been there since the early days of programming. Usually, developers and sometimes   White box testers  write Unit tests to improve code quality by verifying every unit of the code used to implement functional requirements. In simple words, it means – writing a piece of code (unit test) to verify the code (unit) written for implementing requirements. Unit Testing In SDLC In Unit testing, developers use manual or automated tests to ensure that each unit in the software meets the customer’s requirement. This unit can be an individual function, object, method, procedure, or module in the software under test. Writing unit tests to test the individual units makes writing comprehensive tests easier as all the units are put tog...

Worker Processes

Use the  Worker Processes  feature page to manage a list of worker processes running in  application pools on a Web server. Sort the list by clicking one of the feature page column headings. UI Elements for Worker Processes The following tables describe the UI elements that are available on the feature page and in the  Actions  pane. Feature Page Elements FEATURE PAGE ELEMENTS Element Name Description Application Pool Name Displays the name of the application pool. In Web gardens or if you have a worker process that is shutting down at the same time another worker process is starting, the same application pool can be listed more than once in the grid to account for different worker processes running in that application pool. Process ID Displays the worker process identifier (ID) for that worker process. State Displays the state of a process, such as starting, running, or stopping. CPU % Displays the percentage of time that the worker process has used the CPU sin...

IronPython

IronPython is an open-source implementation of the Python programming language which is tightly integrated with .NET.  IronPython can use .NET and Python libraries, and other .NET languages can use Python code just as easily. Why IronPython? IronPython is an excellent addition to .NET, providing Python developers with the power of the .NET. Existing .NET developers can also use IronPython as a fast and expressive scripting language for embedding, testing, or writing a new application from scratch. The CLR is a great platform for creating programming languages, and the DLR makes it all the better for dynamic languages.  Calling (Iron)Python code from a C# app? The process is simple, especially in a C#/.NET 4 application where support for dynamic languages have been improved via usage of the dynamic type. But it all ultimately depends on how you intend to use the (Iron)Python code within your application. You could always run ipy.exe as a separate process and pass your source fi...

Server Side Technologies

Image
Server side web technology is used to develop dynamic web resource programs that having the capability to generate dynamic web pages. Server side web technologies are two types. Process based                 Thread based    Process based Technologies are CGI and thread based technologies are Servlet, JSP, ASP.net. A light weight sub process is called Thread. Operating system controls processes but threads can be controlled through java programming using JRE support. Transferring control between two processes (or) between two threads is called as “Context switch” (or) “Control jumping” (or) “scheduling”. The scheduling on processes takes more time compare to the scheduling on threads. Since processes based scheduling takes more time, the CGI web applications performance will be degraded when multiple requests are given simultaneously. This makes the CGI web applications as non-scaleable web applications (If application gives good per...

AGILE Estimation Methods

  AGILE Estimation Methods Many people have used a variation of Planning Poker to do Agile estimation.  Here is a reference of 9 different Agile estimation techniques for different circumstances.   Planning Poker: Participants use specially-numbered playing cards to vote for an estimate of an item.  Voting repeats with discussion until all votes are unanimous.  There are lots of minor variations on Planning Poker.  Good technique to estimate a very small number of items (2 to 10). Bucket System: Using the same sequence as Planning Poker, a group or a team estimate items by placing them in “buckets”.  The Bucket System is a much faster Agile estimation technique than Planning Poker because there is a “divide-and-conquer” phase.  The Bucket System can also be used with larger groups than Planning Poker and with very large numbers of items to be estimated (50 to 500).  I teach this agile estimation technique in my Certified Scrum Master (CS...

MEF Framework

Image
This article provides an overview of the Managed Extensibility Framework that was introduced in the .NET Framework 4 What is MEF? The Managed Extensibility Framework is a library for creating lightweight, and extensible applications.  It allows application developers to discover and use extensions with no configuration required.  It also lets extension developers easily encapsulate code and avoid fragile hard dependencies.  MEF not only allows extensions to be reused within applications, but across applications as well. The problem of extensibility? Imagine that you are the architect of a large application that must provide support for extensibility. Your application has to include a potentially large number of smaller components, and is responsible for creating and running them The simplest approach to the problem is to include the components as source code in your application, and call them directly from your code. This has a number of obvious drawbacks. Most importantl...

Effort Estimation in Software Development.

Effort estimation is one of the initial steps in software development projects. Despite its complexity, when performed right, effort estimation creates a basis for all subsequent stages related to project planning and management. What is effort estimation?   There are three main factors when planning and estimating a software development project: The Scope(or the deliverables) The Resources (the budget and the team’s effort) The Timeline Software development effort estimation deals with predicting the effort required to develop quality product.  Effort estimation (and other estimates) create some certainty and commitment and are used for planning and making decisions for the project (planning budget, investment, and pricing).  How do you estimate efforts in software development using agile process? Effort estimation happens during the initial stages of software projects. Inaccurate estimations cause complications during the implementation of the project and further develo...

Cache-Control(Http Header)

 The Cache-Control HTTP header holds directives (instructions) for caching in both requests and responses. A given directive in a request does not mean the same directive should be in the response. Syntax: Caching directives have the following rules to be valid: Case-insensitive, but lowercase is recommended. Multiple directives are comma-separated. Some directives have an optional argument, which can be either a token or a quoted-string. (See spec for definitions) Cache request directives Standard Cache-Control directives that can be used by the client in an HTTP request. Cache-Control: max-age=<seconds> Cache-Control: max-stale[=<seconds>] Cache-Control: min-fresh=<seconds> Cache-Control: no-cache Cache-Control: no-store Cache-Control: no-transform Cache-Control: only-if-cached Cache response directives Standard Cache-Control directives that can be used by the server in an HTTP response. Cache-Control: must-revalidate Cache-Control: no-cache Cache-Control: no-s...