Monday, September 16, 2013
What are the differences between inter-network routing and intra-network routing?
Posted by
Sunflower
at
9/16/2013 11:03:00 PM
0
comments
Labels: Connection, Data, device, efficient, Information, Infrastructure, Internetwork Routing, Intranetwork Routing, Network, Networking, Organization, Packets, Protocols, Resources, Router, Routing, Switch, System
|
| Subscribe by Email |
|
Saturday, August 24, 2013
Explain multicast routing?
- Receiver
driven tree creation
- Multicast
distribution tree
- IP
multicast group address
- SM
or sparse mode
- DM
or dense mode
- SSM
or source specified mode
- SDM
or sparse – dense mode or bidirectional mode (bidir)
Posted by
Sunflower
at
8/24/2013 12:30:00 AM
0
comments
Labels: Address, Application Development, Communication, Data grams, Destination, Infrastructure, IP, Messages, Multicast Routing, Network, Packets, Protocol, Receiver, Route, Router, Routing, Sender, Source, transmission
|
| Subscribe by Email |
|
Thursday, July 18, 2013
Infrastructure: Need to do a frequent clean up of old builds from servers ..
However, there is an infrastructural issue involved with getting so many builds. I am talking of the cases where the typical release cycle of such a product is more than a few months. During this period, the team will generate a number of such builds that need to be hosted on servers so that they are accessible to the team members (and they needed to be transferred to additional servers if the team has members located in different geographical locations, or if there are vendors located in a different location and the vendors can only be given access to a different server outside of the main server that is accessible only to employees). Now, there can be additional builds that are required (for example, you may have the same application that has a different structure for the DVD release vs. the release on the company online store, and if there is distribution to vendors, there might be a different version). In some cases, the different language versions of the product might need to be different applications (builds) which also increases the size considerations.
Now, all these place a lot of constraints on infrastructure. Central servers are typically set up in a RAID kind of configuration which means that space needed is actually much more. Server capacity in terms of hard disk is cheap, but you can be pretty sure that at some point, unless you do some optimization, the additional hard disk capacity required on a regular basis can start becoming costly, not only from the perspective of equipment, but also from the perspective of the staff needed for maintaining this capacity, as well as making it more difficult to find what you want. It always makes sense to do some kind of optimization of the storage needs of the product in terms of builds, since if a build is not being used, the need of storing the build is unnecessary.
A initial thought might show that only recent builds need to be stored, but that is an over simplification. There might be defects that were filed some time back, and for the purpose of evaluating these defects, the builds on which these defects were found need to be accessible. Further, during the process of coding, there could be errors inserted into the code, but not detected for some time (this could be weeks or even months). Even though the code could be checked by doing a differential in the source code repository, it may be necessary to test the performance in the build in which the code change was first detected to see what the code change caused. There could be numerous such reasons as to why a specific build is needed at some point in the future, and hence, there needs to be a process defined that will let the team control which builds need to be deleted from the server, thus leading to an optimization of the server space. Here are some points that could help in this:
- If there are builds from the earlier cycle, then it is probable that those build are not necessary. It might just be enough to retain build that were of significant interest in terms of milestones.
- If a build had a problem in terms of the build either not launching or being rejected for the purpose of testing, those builds need not be retained and can be deleted
- When builds are older than a few months, the team can decide on a policy to check whether such builds can be deleted or not, and so on.
Posted by
Ashish Agarwal
at
7/18/2013 05:26:00 AM
0
comments
Labels: Build cleanup, Infrastructure, Server space, Server space management, Space, Space management
|
| Subscribe by Email |
|
Saturday, June 22, 2013
Working with vendors: Telling them the points of focus for the particular version ..
In this line of thought, there are several other processes that the team needs to transfer to the vendor team and do this in a systematic way to increase the level of efficiency. Some of the processes that the team might need to convey to the vendor team are:
- Certain specific processes such as the dealing with defects that have existed for some time. Consider the case of a defect that has been present in the product for more than one version, and the team has decided that they do not want to make the fix. Similarly, there may be cases where there is a difference of opinion with respect to the functionality, but anybody who needs to do this testing will be able to log a defect. In such cases, the team members know about these defects and do not try to file them, but somebody who is new to that area such as a vendor team member will not know, and will file defects in such areas. It is for the product team to ensure that they have transferred instructions regarding how to handle these defects to the vendor. If this does not happen, there will be wastage of time when the vendors actually do these testing. I saw such a case whereby there were some new members to the vendor team and there was a delay in passing on such information, and suddenly there was a buzz in the team about the vendor finding a number of defects that the team members had not found. There was some pressure on the testing team, but then it was found that most of these defects were of the types that the team already knew about, and there was a sigh of relief in the testing team (they would have come under a lot of pressure if the vendors found a number of defects that the core testing team was not able to find).
- Similarly, there are certain points of focus for every release. Or it could be the case where this is a patch or dot release that is focusing on a certain area, and it is incumbent on the product team to pass on the application focus onto the vendor team. This is needed to ensure that the testing done by the vendor team focuses on the relevant area instead of spending time on other areas which are not relevant. The team needs to decide on the best way to do this, one way to do this is to take the application where test plans and test cases are captured and create a plan that shows the vendor the focus areas where testing needs to be done. However, this pre-supposes that the test cases are written in a way that a subset can be used by the vendors and would make sense.
Posted by
Ashish Agarwal
at
6/22/2013 10:45:00 PM
0
comments
Labels: External vendor, Infrastructure, Processes, Software Process, Tool, Vendor, Working with vendors
|
| Subscribe by Email |
|
Working with vendors: Ensuring that tools are synchronized ..
- Part of the testing needed is done by the vendors
- There is a sudden work to be done besides the core work, and the additional work testing is needed to be done by vendors
- The product is being localized into many languages and the testing in various languages is being done by vendors
- Multiple other reasons such as these, all of which raise the need for vendors to take part for testing.
Now, when you have vendors working with the core team for testing purposes, you will be lucky if there is a continuity in terms of the personnel from the vendor side over the years. Our experience has been that unless we are able to provide business to the vendors the year round, people on the vendor side move onto different projects and would not be so easily available the next time when there is a need for the vendor. In addition, there are times when there is a sudden need for testing, and at that time, testers from the vendor side who have experience in the product would not be available.
In previous posts (Process setting, Kickoff and knowledge transfer), I have already been talking about some processes involved in working with vendors who assist in testing, and how to ensure that getting them trained is done as easily as possible. However, there is another area where there is a need for ensuring that knowledge transition happens efficiently, and that is in the area of tools that are used for the process of preparing the data as well as doing the testing.
Applications such as Defect Management systems and source repository systems are easy for vendors to understand, given that even if the vendors have been using a different tool for these functions, the basic concept of using these tools does not change too much, and hence it should be fairly easy for them to pick up a new tool.
However, it gets problematic when the team is using specialized tools, and there is a high chance that the personnel from the vendor site would not have the experience in using such tools. We had this in a previous project, where we were using specific tools such as 'Fiddler' for testing out the flow between the desktop application and an online application. When we spoke to the vendor team around the start of the project, they had no experience in a similar tool, and yet it was necessary for them to do the testing (we could not do the testing of this tool in all the areas where it was the vendor responsibility, and hence it was important for the vendor to learn this tool). So, finally we had to run a project whereby we did a few rounds of web conferencing with the vendor and explained how to use this and other such tools. However, it would have been more efficient to have already prepared such a document for the various tools that the teams use, along with something like a self-learning document.
Read more about working with vendors in the next post (Processes when dealing with vendors)
Posted by
Ashish Agarwal
at
6/22/2013 08:28:00 AM
0
comments
Labels: External vendor, Infrastructure, Processes, Software Process, Tool, Vendor
|
| Subscribe by Email |
|
Friday, May 31, 2013
Infrastructure: Testing, VPN and network issues relating to external teams
- External teams that are working as an extension of the testing team. This is getting more and more common, whereby the testing team can be expanded as necessary by adding vendors to the testing resources. However, when the these external vendors need to start their work, they need access to the testing infrastructure such as test cases repository and the defect management software.
- External teams working on the localization (conversion of the software into different languages). Such teams typically work on both development and testing of the application in different languages and need access to the source repository, as well as the testing infrastructure (test plan and case repository, defect management software, and so on).
- Teams working on the documentation of the product typically need access to the defect management software, since there can be several issues that need to be documented which are typically present in the defect management software, and the documentation team would be provided access to the defect management software.
For these 3 teams and others working in a similar area, if they are located outside the organization, then there may be a necessity for them to be provide the required VPN access to get access to all these tools. In modern secure organizations, such access policies would go through an approval process, and to ensure that such a process is accelerated, it makes sense to prep the approving authorities about these requests for approval.
- External testers / pre-release testers. Such pre-release testers typically do not need any access to source code repository or the testing infrastructure. However, these testers do need a platform where the defects they have logged get into the defect management software in an easy and transparent way (and where the testers are not expected to do any additional work - in some cases, it is as simple as providing them a web page where they can enter the defects that they have found, and some additional parameters that testers are expected to enter but pre-release testers are not expected to enter are entered by default).
For all these teams, there may be other access issues that teams may not have thought about. Typically when a team has any kind of feature that provides access to an online feature, such features are available in staged servers that need some kind of setting or special access. For ensuring that all the teams listed above and similar teams do not get stuck, it is required to plan for such an access. We had a problem in the past whereby an important online feature was rolled out to the press reviewing team, but there was a big screw up relating to the access for these features, and the team was not able to provide access for around 3 days, in which time, some of the press withdrew - a big disaster. So, a great team has plans for all these before they look to execute such features.
Posted by
Ashish Agarwal
at
5/31/2013 11:47:00 AM
0
comments
Labels: Access to vendors, Infrastructure, Network Access, Online features, Pre-release testers, Staging servers, Vendors, VPN
|
| Subscribe by Email |
|
Monday, March 4, 2013
What are Software Process Improvement resources?
- Infrastructure and
building support
- Sponsorship
- Commitment
- Baseline activities
- Technologies
- Coordinate training
resources
- Planning expertise
- Baseline action plan
and so on.
- For a technology
that is to be introduced.
- Providing
sponsorship
- Assessment of the
organization impact
- SEPG or software
engineering process group
- MSG or management
steering group
- TWG or technical
work group
- Human resources
- Finance
- Manufacturing
- Development
Posted by
Sunflower
at
3/04/2013 02:53:00 PM
0
comments
Labels: Approach, Components, Domain, Functions, Improvement, Infrastructure, Objectives, Organization, Process, program, Purpose, Requirements, Resources, Roles, Software, Software Process Improvement, SPI, Team, Technology
|
| Subscribe by Email |
|
Tuesday, September 18, 2012
Explain Quick Test Professional (QTP) Testing process?
- Configuring of the record and run settings
- Creating an object repository (this step is
optional is many cases)
- Creating the basic automation scripts
- Editing or enhancing the script
- Executing the script
- Debugging the script
- Analyzing the results
- Summarizing the results (this includes tracking
the discovered defects and generating the report)
Major stages of the QTP testing process
Posted by
Sunflower
at
9/18/2012 12:20:00 PM
0
comments
Labels: Actions, Analyze, Application, Automation, Debug, Functionality, Infrastructure, Object Repository, QTP, Quick Test Professional, Resources, Results, Scripts, Steps, Tasks, Testing tools, Tests, Users, Web, Windows
|
| Subscribe by Email |
|
Monday, March 14, 2011
Architectural Design - Refining the Architecture into Components and Describing Instantiations of the System
Refining the Architecture into Components
As the software architecture is refined into components, structure of the system begins to emerge. Components of the software architecture are derived from three sources:
- the application domain
- the infrastructure domain
- the interface domain
Because analysis modeling does not address infrastructure, one should allocate sufficient design time to consider it carefully.
In order to find the components that are most suitable for refining the software architecture, you need to start by using the classes which were described in the analysis model. The analysis classes in turn are representations of business entities that architecture is trying to describe. You could also base these components on an infrastructure model rather than the business model. If you went purely by the business model, you would not be able to depict many of those infrastructure components such as database components, components used for communication etc.
Whatever interfaces are described in the architecture context diagram imply one or more specialized components that process the data that flow across the interface.
Describing Instantiations of the System
The context of the system has been represented, the archetypes indicating important abstractions are defined, the overall structure of system apparent and major software components are identified, however further refinement is necessary which is accomplished by developing an actual instantiation of architecture. The architecture is applied to a specific problem with the intent of demonstrating that the structure and components are appropriate.
Posted by
Sunflower
at
3/14/2011 10:17:00 PM
0
comments
Labels: Analysis Classes, Archetypes, Architectural, Architectural design, Classes, Define, Design, Domain, Entity, Infrastructure, Models, Refining, Representation, Software, Software Architectue, Structure
|
| Subscribe by Email |
|
Thursday, February 24, 2011
What are different steps while conducting component level designing?
The following steps represent a typical task set for component level design, when it is applied for an object oriented system. If you are working in a non object oriented environment, the first three steps focus on the refinement of data objects and processing functions identified as part of analysis model.
STEP 1: Identify all design classes that correspond to the problem domain.
STEP 2: Identify all design classes that correspond to the infrastructure domain.
STEP 3: Elaborate all design classes that are not acquired as reusable components.
In addition to all interfaces, attributes, operations, design heuristics i.e cohesion and coupling should be considered during elaboration.
- Specify message details when classes or components collaborate.
Structure of messages that are passed between objects within a system are shown as component level design proceeds.
- Identify appropriate interfaces for each component.
Interface is an abstract class that provides a controlled connection between design classes. So interfaces should be identified appropriately.
- Elaborate attributes and define data types and data structures required to implement them.
The programming language that is to be used in the project typically is a factor in the definition of the data structure and types used to describe attributes. When the component level design process is started, the name of attributes is used; as the design proceeds the UML attribute format is increasingly used.
- Describe processing flow within each operation in detail.
There are two ways to do this; through a UML activity diagram or a programming language based pseudocode. The elaboration of each software component is by doing a number of iterations and in each iteration a step-wise refinement concept is used.
STEP 4: Describe persistent data sources and identify the classes required to manage them.
As the design elaboration proceeds, an additional data should be provided about the structure and organization of these data sources which are initially specified as part of architectural design.
STEP 5: Develop and elaborate behavioral representations for a class or component.
In order to depict the externally observable behavior of the system as well as that of individual analysis classes, UML state diagrams are used. As a part of component level design, modeling the behavior of a design class may be sometimes required. The instantiation of a design class a s program executes is also known as the dynamic behavior of the object. This behavior is impacted by the current state of object as well as external events.
STEP 6: Elaborate deployment diagrams to provide additional implementation detail.
When component level design is being done, in order to make deployment diagrams simple to read and comprehend, the location of components(individual components) are generally not depicted.
STEP 7: Factor every component level design representation and always consider alternatives.
The first component level model that is created will not be consistent, complete and accurate as compared to the nth iteration that is applied to the model. It is necessary to re-factor as design work is conducted.
Posted by
Sunflower
at
2/24/2011 01:41:00 PM
0
comments
Labels: Attributes, Classes, Component Level Design, Components, Consistent, Design, Domain, Elaboration, Identify, Infrastructure, Interfaces, Levels, Message, Operations, Problems, Refactoring, Steps
|
| Subscribe by Email |
|
Wednesday, February 2, 2011
Analysis for Web Applications - The Functional Model and The Configuration Model
The functional model describes two elements of web application :
- User Observable Functions: Delivered by web application to end users. It encompasses any processing functions that are initiated directly by the user. These functions may be implemented using operations within analysis classes but from the point of view of an end-user, the function is the visible outcome.
- Class Operations: Implement behaviors associated with the class. These operations manipulate class attributes and are involved as classes collaborate with one another to accomplish some required behavior.
The UML activity diagram can be used to represent processing details.
The Configuration Model describes the environment that the web application will require on both the server and client side of the system. Although it is very important to consider all configurations that are likely to be used, a web application must be engineered to serve its end-users. Web application resides on a server that provides access via Internet, Intranet or an Extra-net. Server hardware and operating system must be specified. Also, interoperability considerations on the server side should be considered.
Client side software provides an infrastructure that enables access to web application from user's location. Web application content and functionality is delivered by browser software. Each browser has its own peculiarities.
Posted by
Sunflower
at
2/02/2011 01:21:00 PM
0
comments
Labels: Analysis, Analysis Model, Applications, Classes, Client, Configuration, End-users, Functional, Functions, Infrastructure, Operations, Server, Users, Web Applications, WebApp
|
| Subscribe by Email |
|