Application Security Testing: An Integral Part of DevOps
An application lifecycle or a software development lifecycle is the different steps that are involved in developing software or an application. Researches show that the companies using effective tools for managing each step in an application are more successful than the others. Many companies may use tools provided by different vendors for managing each phase of the application lifecycle. It becomes a nightmare for the companies to maintain these different sets of tools. In order to resolve this issue Microsoft has the Team Foundation Server (TFS) for companies to do application lifecycle management or ALM effectively. The challenge in an application lifecycle is to keep track of things and TFS ensures that every step in each phase of the lifecycle is recorded.
In this article I will give an overview on the application lifecycle management using Team Foundation Server.
Visual Studio Tools for ALM
Team Foundation Server is a server setup hosting different features and configurations related to ALM. TFS will be used by various client tools and software like the Visual Studio IDE, Microsoft Test Management, Excel, etc., in order to upload or publish the data.
All the ALM activities through TFS are tied up to a Team Project. Visual Studio can be used to create a Team Project and TFS itself will provide a web console for the administration activities on the Team Project.
Though there are many tools involved, the core for all the ALM phases is the Team Foundation Server. The latest version of the Team Foundation Server is VSTFS 2012.
ALM using TFS
Application Lifecycle management involves various phases and TFS gives provision to manage all these phases. In a project team there will be people with different roles and TFS provides role based access to different functionalities as well. Fig 2.0 shows the ALM phases, which can be managed using TFS.
An administrator will be the person who sets up the TFS, creates the team project, and adds users and providers access based on the roles.
I will go over each step in the application lifecycle management and how it can be managed by using TFS.
In TFS for a particular application development, everything revolves around the reference of a team project created using Visual Studio.
Requirements, Document Management & Storyboards
In this phase the product management team or the customer will provide the finalized requirement documents to the project team and TFS provides the ability to upload the requirements document to the associated share point portal.
Using the storyboarding PowerPoint utility the customer can create a storyboard and present it to the project team. It improves the clarity and intractability.
Managing Sprints, Work Items, Tasks & Backlogs
Next is the planning phase, when the user stories are created, then divided into work items or tasks. The work items can also be assigned to the resources. Project managers or the responsible resource can make use of the TFS web access or the console to perform the action. Fig 3.0 shows the sample list of work items
The development resource starts working on their tasks once they are assigned to them. A developer can perform the tasks below with TFS and its tools.
1. Development – Visual Studio IDE.
2. Check in or check out to version control – TFS ingrains the Version Control in it.
3. Submit for code review – A code review workflow is available in TFS.
4. Development of automated unit tests – MSTEST.
I will be covering in detail about the features offered by Visual Studio 2012 for the developers in the ALM.
In an application management lifecycle using an agile or scrum model, it is important to have a non-breaking build at all times. TFS allows you to define the build jobs so that whenever a developer checks his changes into the version control, a build is triggered that also runs the code analysis, automated test cases, automated UI testing and sends an email notification on the results.
An important phase of the ALM is to deploy the builds successfully onto the QA servers. There is a lab management section available for the admin users in the web console and also the client management console, which can be used to define the server information and the details of deployments. So, on a single click the server deployment can be accomplished without any human interactions.
Test Plans, Defect Tracking & Exploratory Testing
TFS and Microsoft Test Management have lots to offer the QA resources. It allows them to create the test plans, log and track defects, create exploratory testing, which helps in capturing the videos and application logs.
A crucial phase in the application lifecycle is to fetch the feedback of the customers. It ensures that the application being built has the functionalities that are actually requested by the user and the team is progressing in the right direction. Microsoft Visual Studio offers a brilliant and interactive tool called Microsoft Feedback client, which gets the customer feedbacks in an effective way. The feedback flow is also nicely integrated to the TFS.
I hope this article gave a good overview about ALM using TFS. Happy reading!