You are on page 1of 54

A

Project Report
On
AEM-Test Automation

Developed at

Infosys Limited,
No.350, Hebbal Electronics City,
Hootagalli, Mysore

Developed by

Sunpreet Gujral -CE Department, Punjabi University

Guided By:

Mr Akash Malik

1
Punjabi University
Patiala-147002
May - 2016
CANDIDATE’S DECLARATION
I declare that final semester report entitled “AEM – Test Automation” is my own work
conducted under the supervision of the external guide Akash Malik from Infosys Limited.

I further declare that to the best of my knowledge the report for B.Tech. final semester does
not contain part of the work which has been submitted for the award of B.Tech. Degree either
in this or any other university without proper citation.

Also I declare that following students also worked in this project:


Sunpreet Gujral -CE Department, Punjabi University
Tanvi Bansal-CE Department, Punjabi University
Shubhmeet kaur - CE Department, Punjabi University
Sugandha Madaan- CE Department, Punjabi University
Shubham Gupta – CE Department, Punjabi University
Sakshi Gulati - CSE Department, Thapar University

Candidate’s Signature:

Candidate’s Name:

Branch: C.E. Student ID:


2
PUNJABI UNIVERSITY

PATIALA-147002, PUNJAB

CERTIFICATE

This is to certify that the project entitled “AEM – TEST AUTOMATION” is a bonafide
report of the work carried out by:

Sunpreet Gujral -CE Department, Punjabi University


Tanvi Bansal-CE Department, Punjabi University
Shubhmeet kaur - CE Department, Punjabi University
Sugandha Madaan- CE Department, Punjabi University
Shubham Gupta – CE Department, Punjabi University

Of semester VIII, under the guidance and supervision for the award of the degree of Bachelor
of Technology at Punjabi University, Patiala (Punjab). They were involved in Project training
during academic year 2015-2016.
Following student was also involved in this project:

Sakshi Gulati - CSE Department, Thapar University


Prof.
Punjabi University, Patiala
Punjab

3
TABLE OF CONTENTS

CHAPTERS

1.0INTRODUCTION
1.1Project Details…………………………………………………..…...
1.2Purpose……………………………………………………...………..
1.3Scope……………………………………………………………...…..
1.4 Objective (Scope) …………………………………………………….

2.0TECHNOLOGY AND LITERATURE REVIEW


2.1Introduction to AEM……………………………………………….
2.2History of AEM…………………………………………………..…
2.3 Digital Strategy………………………………………………………

2.3.1 Digital Goals………………………………………………


2.3.2 Digital Experience Management Self Assesment Tool….
2.4Digital Asset Management(DAM) Strategy………………………….
2.4.1 DAM Strategy……………………………………………..
2.4.2 Recommendations for Digital Assest Management……..

2.5Agile Strategy…………………………………………………………..
2.5.1 Agile Scrum Methodology…………………………………
2.5.2 Scrum Process………………………………………………
2.6 Deployment…………………………………………………………….
2.6.1 Project Phases………………………………………….

4
2.7 Modes of AEM

2.7.1 Author……………………………………………………….

2.7.2 Publish……………………………………………………….

2.8Components……………………………………………………………

2.8.1 Each AEM Component……………………………………

2.8.2 Component Included with AEM Include…………………

2.9 Templates………………………………………………………………...

2.10 AEM Stack…………………………………………………………

2.10.1 OSGI………………………………………………………

2.10.2 Java Content Repository…………………………………

2.10.3 Apache Sling………………………………………………

2.10.4 CQ5…………………………………………………………

2.11 Script Modularization and Re-Use……………………………………..

2.12 AEM Designer……………………………………………………………

2.13 Dialogs………………………………………………………………

2.13.1 Using The Dialog Editor…………………………………

2.13.2 Creating A New Dialog…………………………………..

2.13.3 Design Dialog……………………………………………

2.14 Parsys………………………………………………………………

2.14.1 I-Parsys(Inherited Paragraph System)………………………

5
3.0Test Automation…………………………………………………………….
3.1Screeshots ……………………………………………………

4.0 SYSTEM ANALYSIS………………………………………………………


4.1 System Requirement Specification (SRS)…………………………..
4.1.1 Functional Requirements…………………………………
4.1.2 Non –Functional Requirements...…………………………

5.0 IMPLEMENTATION PLANNING………………………………………


5.1 Coding Standards………………………………………………...
5.2 Future Enhancements………………………………………………..
6.0 CONCLUSION AND DISCUSSION……………………………………….
6.1 Conclusions and Discussions ………………………………………..
REFERENCES………………………………………………………………

6
CHAPTER 1

7
INTRODUCTION
1.1 PROJECT DETAILS

“AEM-Test Automation” is designed to check the contents of the package uploaded


by the user which is a zip folder. It performs automatic testing and ensures whether the
different elements are in the respective folders. The foremost test performed is whether
jcr_root and META-INF subfolders are present in the package.

1.2 PURPOSE

The main purpose of “AEM-test automation” is to allow users to test the compatibility
of their uploaded package with AEM. It allows user to perform structural and functional test
cases on the uploaded package.

1.3 SCOPE

 We can unzip the folder and check its contents.


 We can test the compatibility with AEM.

1.4 OBJECTIVE

 The user can upload a package in the form of a zip folder and unzip it.
 It automatically checks for the contents of the package and performs test suites
to check whether it contains jcr_root and META-INF or not.
 It also allows user to specify the Path and tests whether the particular component
is present on the given path or not.

8
CHAPTER 2

TECHNOLOGY AND LITERATURE REVIEW

2.1INTRODUCTION TO AEM:

Adobe Experience Manager (AEM), is a comprehensive content management


platform solution for building websites, mobile apps and forms - making it easy to
manage your marketing content and assets.

Adobe Experience Manager (AEM) provides a better digital customer experiences


across all customer touch-points including websites, mobile sites, social networks,
and customer transactions. AEM will help your businesses create a compelling
presence across the customer’s entire journey. This will allow your organisation to
improve brand loyalty, enhance customer engagement by offering relevant and
personalised content and, as a result, drive demand and business growth.

Adobe Experience Manager combines a number of infrastructure-level and


application-level functions into a single integrated package.

The offering addresses:

Sites Quickly create and deliver relevant websites and mobile apps, and update the
content anytime, all without burdening your IT department.

Assets Easily manage images, videos, and other assets across every digital channel to
deliver personalised customer experiences.

Communities Build thriving communities and engaging conversations across all of


your social properties, so you can inspire new levels of learning and customer loyalty.

Forms Integrate enterprise-level forms into your websites and mobile experiences,
and simplify the creation of forms and the completion of transactions.

Apps Create and deliver mobile apps with a solution that bridges the gap between
marketers and IT, so marketers can easily update content, even after launch.

9
2.2 HISTORY OF AEM:

Created by Day Software

First release: Day CQ 3.5-2002

Day CQ 4.0-2005

Day CQ 4.1-2006

Day CQ 4.2-2008

Day CQ 5.0-2008

Day CQ 5.2-2009

Day CQ 5.3-2010

Adobe CQ 5.4-2011

Adobe CQ 5.5-2012

Adobe Experience Manager 5.6-2013

Adobe Experience Manager 6.0-2014

Adobe Experience Manager 6.1-2015

Adobe Experience Manager 6.2-2016

2.3 DIGITAL STRATEGY:

One of the biggest digital challenges organizations face is being able to define what
they are trying to achieve through digital channels. In many cases, corporate websites
aren’t owned by a single owner, leading to a mix of different or — even worse —
competing interests and purposes. This causes a mixture of counterproductive results.

A clear digital strategy enables your digital team to align its activities to the key
priorities of your business and succeed as an integral part of your organization. A key
point to consider is that your digital strategy should always be aligned to the overall
business goals of the organization.

10
These are steps you can follow to craft your digital strategy:

• Identify all of the key stakeholder groups that have input into your company’s
digital approach;

• Gather key business objectives from each group separately;

• Merge the goals into a set of four to five key objectives;

• Based on your understanding of the corporate strategy, prioritize and rank the list of
goals;

• In a group meeting, review and refine the goals with key stakeholders —if needed,
involve a neutral third party to mediate potential disagreements;

• Based on stakeholder feedback, finalize the business objectives and define KPIs to
measure these by;

• Share an overview of the agreed-upon digital strategy with key stakeholders.

2.3.1 Digital Goals:

• Strategic business goals and objectives for your digital channel

• Identify how the digital channel will contribute to achieving the Enterprise Goals

• There can be more than one Digital Goal for each Enterprise Goal

2.3.2 Digital Experience Management Self-Assessment Tool

This tool will enable you to identify your organization’s strengths and prioritize focus
areas across seven digital experience management dimensions:

1. Web Content Management how your organization is managing content across


your digital properties.

11
2. Digital Asset Management How your organization is managing and using assets
across your digital properties.

3. Personalization How your organization is using personalization to provide


engaging experiences.

4. Content Delivery How your organization is engaging customers across your digital
properties.

5. Mobile Site and Apps How your organization is managing its mobile digital
properties.

6. Communities How your organization is using owned social channels to engage


customers.

7. Strategy The combined level of talent, technology, processes, and knowledge of


your organization’s digital property management practice.

12
13
2.4 Digital Asset Management (DAM) Strategy

Let’s start by understanding what the Digital Asset Management (DAM) in Adobe
Experience Manager is, and what it can help do.
Digital assets are electronic files or content such as videos, photos, PDFs, graphics,
animations, audios etc. With DAM, digital assets are easy to find, share, tag, revise and
publish, regardless of format or location. AEM Digital Asset Management is a modern,
unified digital asset management system that empowers enterprises to simplify planning,
production, management and delivery of digital assets.
With the Adobe Experience Manager DAM you can:

• Connect marketers with creative professionals Collaborate on assets within


Adobe Creative Cloud, and take advantage of deep integrations with desktop applications,
such as Adobe Photoshop®, Illustrator®, and InDesign®.

• Increase the ROI of digital assets Dynamically repurpose assets and optimise
delivery across new channels, devices, target audiences, and geographies.

• Improve brand consistency Preserve brand equity with versioning and workflow
controls.

• Reduce cost of asset management: Eliminate redundant asset creation, tagging,


editing, and distribution.

• Increase IT agility Access a centralised repository via a web browser, and ease
installation with no client software requirements.

• Increase business agility Meet time to market goals, and accelerate asset products
with DAM workflows.

14
2.4.1 DAM Strategy

Start by understanding what assets you have and how they are being used. Asking questions
that help you recognise when, how, and why digital assets are being used will help you get an
overall understanding of what you need for the future.
Once you know what digital assets you have, locate where they are currently being stored.
Identify all the access and management requirements, as this will help your IT and digital
team create a list of system requirements. This will also help you identify everyone involved
in creating and managing digital assets. Talk to these stakeholders as they will provide good
feedback about DAM day-to-day activities and how they can improve.
Planning and implementing a strategy for Adobe Experience Manager DAM will require a
culture change inside your organisation and your third-party agencies. Adoption is usually the
greatest obstacle in a successful DAM project. Spend time making sure all teams and
departments understand the benefits and improvements this system can bring to the
organisation.
When working with digital assets in AEM, you need to understand the following
terminology:

Collection
A collection of assets, either based on physical location (folder), common properties (saved
search folder), or user selection (lightbox folders).

Metadata

Assets have metadata — for example, author, expiry date, DRM Information (Digital Rights
Management), and so on. Metadata is under access control. CQ DAM supports the following
various common metadata schemata out of the box:
Dublin Core (including author, description, date, subject);
IPTC (including event, model, location);

WCM (including page properties, on- and off-times).

15
Tagging

Assets can be tagged and classified. Tags are a quick and easy method of classifying content
within your website. In technical terms, a tag is a piece of metadata assigned to a content
node within CQ (usually a page). You can also think of them as keywords or labels that you

attach to a page to help you find it again.

Renditions

A rendition is the binary representation of an asset. Assets always have a primary


representation — the uploaded file itself. They can have any number of additional
representations that are created, for example by customised workflow steps or when an asset
is uploaded. Renditions may be of a different size, with a different resolution, with an added
watermark, or some other changed characteristic.

Versions

Versioning creates a snapshot of digital assets at a specific point in time. You can restore

assets to previous versions.

Sub-assets

Sub-assets are assets that make up an asset — for example, layers in an Adobe Photoshop file
or pages in a PDF file. In CQ DAM, you can manage sub-assets as you would assets.

16
2.4.2 Recommendations for Digital Asset Management:

• Organisations with higher maturity in digital asset management possess an enterprise


digital asset management system integrated with creative tools, along with the possibility to
re-use assets across channels and digital properties.

• To achieve a higher level of digital asset workflow capability organisations should develop
and implement asset management workflows across the entire enterprise.

• Organisations with a higher level of image delivery capabilities can deliver dynamic
personalised images to the customer leveraging user data, image templates, 360-degree
rotational view and mixed media capabilities.

• To achieve a higher level of video delivery, marketers should have the capability to deliver
dynamic personalised video leveraging user data, templates and targeting capabilities.

2.5 Agile Strategy

The Agile movement proposes alternatives to traditional project management. Agile


approaches are typically used to help businesses respond to unpredictability. This
methodology is used as a fast reaction technique in unpredictable scenarios, and is being
widely adopted by digital teams due to the pace of change and flexibility required to react to
competition in a digital world.
Agile is used in the implementation and delivery of AEM. Its framework helps Adobe
provide instruction on how to implement the basic concepts, identify the roles and
responsibilities, and lay

17
2.5.1 Agile Scrum Methodology:

Recommended Methodology

At Adobe we operate using a maturity model that envelopes Agile principles within the
Scrum framework. We believe this approach leads to a more responsive and adaptive product
development life cycle. Agile allows project participants to adjust their activities in response
to situations that arise during the project management process. It makes the process of
software development more focused and better controlled.

2.5.2 Scrum Process

The Scrum process is relatively simple in theory. In practice, it can take some time to get the
process fully operational. Scrum is a lightweight framework designed to help small, close-

18
knit teams of people develop complex products. The stakeholders, product managers,
marketing managers and the Scrum team will contribute to the list of feature requirements in
the product backlog. The Product Owner will accept (or reject) these, and will prioritize these
features in the product backlog. The Product Owner works closely with the business to
understand their requirements and considers all their requests before making decisions on
what to include in the product backlog.

2.6. Deployment

Deployment covers the various processes related to implementing and configuring Adobe
Experience Manager in an efficient and effective manner. Organisations should have a formal
process for gathering business requirements for new projects. Without well-defined processes
in the deployment phase, key data needed by the business can be left out due to incomplete
requirement gathering, introducing unnecessary risks and delays. Larger corporations with
several deployments occurring concurrently need to involve project managers.

2.6.1 Project Phases

19
2.7 MODES OF AEM:

There are two modes in AEM:

1. AUTHOR
2. PUBLISH

2.7.1 Authoring:

This provides an easy to use interface (graphical user interface (GUI or UI)) for creating the
content. It is usually located behind a company's firewall that provides full protection and
requires the author to login, using an account that has been assigned the appropriate access
rights.

20
Authoring Interface has:

 Floating Window (Sidekick).


 Content Finder.
 Page Built of component.

Modes on sidekick:

 Edit
 Preview
 Design
 Scaffolding
 Client Context
 Versioning
 Work Flow
 Websites
 Refresh

2.7.2 Publishing:

Pages are made available to your intended audience, according to the entire look-and-feel of
the interface that you have designed. For a normal internet site, the publish environment is
located inside the demilitarized zone; in other words, available to the internet, but no longer
under the full protection of your internal network. On the published website visitors can also
post comments on the individual pages or interact with the forums.

21
Dispatcher:

Dispatcher is Adobe Experience Manager's caching and/or load balancing tool. The most
common use of a Dispatcher is to cache responses from an AEM publish instance, to increase
the responsiveness and security of our externally facing published website. The Dispatcher
can also be used to increase the responsiveness of your author instance, particularly if you
have a large number users editing and updating your website.

2.8 Components

 are modular units which realise specific functionality to present your content on your
website;

 are re-usable;

 are developed as self-contained units within one folder of the repository;

 have no hidden configuration files;

 can contain other components;

 can run anywhere within any AEM system or can also be limited to run under specific
components;

22
 have a standardised user interface;

 use widgets;

 have an edit behaviour that can be configured.

As components are modular, you can develop a new component on your local instance, then
deploy this seamlessly to your test, then live environments.

2.8.1 Each AEM component:

 is a resource type;

 is a collection of scripts that completely realise a specific function;

 can function in isolation — either within AEM or a portal.

2.8.2 Components included with AEM include:

 paragraph system;

 header;

 image, with accompanying text;

 Toolbar.

2.9 Templates:

A Template is used to create a Page and defines which components can be used within the
selected scope. A template is a hierarchy of nodes that has the same structure as the page to
be created, but without any actual content.

Each Template will present you with a selection of components available for use.

23
 Templates are built up of components
 Components use, and allow access to, Widgets and those are used to render the
content.

PROPERTIES AND CHILD NODES OF A TEMPLATE

 A template is a node of type cq: Template and has the following properties and child
nodes:
A template is the basis of a page.

To create a page, the template must be copied (node-tree


/apps/<myapp>/templates/<mytemplate>) to the corresponding position in the site-tree: this is
what happens if a page is created using the Websites tab.
This copy action also gives the page its initial content (usually Top-Level Content only) and
the property sling:resourceType, the path to the page component that is used to render the
page (everything in the child node jcr:content).

Name Type Description

Current template. A template


. cq:Template
is of node type cq:Template.

Path of a template that is


allowedChildren String[] allowed to be a child of this
template.

Path of a template that is


allowedParents String[] allowed to be a parent of this
template.

Path of a page that is allowed


allowedPaths String[]
to be based on this template.

Date of creation of the


jcr:created Date
template.

24
jcr:description String Description of the template.

jcr:title String Title of the template.

Rank of the template. Used to


ranking Long display the template in the
User Interface.

Node containing the content


jcr:content cq:PageContent
of the template.

thumbnail.png nt:file Thumbnail of the template.

icon.png nt:file Icon of the template.

25
2.7AEM STACK:

2.7.1 OSGi:

OSGI also known as Open Service Gateway Initiative is built on the concept on bundles.
Each Bundle has its own class loader. Which allows developers to start and stop each bundle
separately.

The OSGI Framework consists of three major parts:-

Bundles, Lifecycle, and Services.

Services layer exposes services objects that can be called from other services running in the
OSGi server.

Life-cycle layer defines sequence of steps that the bundles should go through when installed,
started, updated, stopped and uninstalled.

The Bundle layer is represented as a JAR file.

26
27
2.7.2 Java Content Repository:

JCR (JSR-170) is a standard Java API for content repositories. It provides an interface for
Java applications to interact with content repositories, however it does not provide a
repository implementation.

Apache Jackrabbit is an open source content repository implementation that fully implements
the JCR API.

Adobe CRX is the commercial content repository component used in the AEM, which uses
some elements of Jackrabbit (e.g. some of the security APIs). CRX provides additional
features such as development tools & clustering capabilities and has its own storage
mechanism which differs from the Jackrabbit implementation.

2.7.3 Apache Sling:

AEM is built using Sling, a Web application framework based on REST principles that
provides easy development of content-oriented applications. Sling uses a JCR repository,
such as Apache Jackrabbit, or in the case of AEM, the CRX Content Repository, as its data
store. Sling has been contributed to the Apache Software Foundation - further information
can be found at Apache.

Using Sling, the type of content to be rendered is not the first processing consideration.
Instead the main consideration is whether the URL resolves to a content object for which a
script can then be found to perform the rendering. This provides excellent support for web
content authors to build pages which are easily customized to their requirements.

The advantages of this flexibility are apparent in applications with a wide range of different
content elements, or when you need pages that can be easily customized. In particular, when
implementing a Web Content Management system such as the WCM in the WEM solution.

28
2.7.4 CQ5

CQ5 or Communique5 is a Web Content Management System

Enable users to create, edit, manage and optimize websites

Runs on java based server and is platform independent

Allows integration with other Marketing Cloud solutions and marketing tools to interact with
target audience

2.8. Script Modularization and Re-use:

 Breaking down a script in multiple script files.


 Modularized files can be reused anywhere in code.
 Maintenance of code.
 Reuse of functionality.

Different ways of including files to the script:

JSP Include Compile Time <%@include file=”path”%>

CQ Include Run Time <cq:include script=”path”/>

Sling Include Run Time <sling:include


resource=”%=par%”/>

29
2.9. AEM Designer:

 AEM design is used to manage look and feel of global content; including path to tool
pages, images of logo.
 Multiple pages which use same design, have access to common css, images for button
and background.
 AEM has been developed with maximum web accessibility compliance which means
people with disabilities can perceive, understand, navigate and interact with Web
Design.
 Designs are stored under /etc/designs. The path to the design to be used for a website
is specified using the cq:designPath property of the jcr:content node.
 Root Node: cq:page
 Vital Child Node: jcr:content
 Designer of various sites can be accessed from TOOLS -> DESIGNS
 A designer is an example of Include Hierarchy in AEM.

30
To realize your design you will need:
CSS:
The Cascading Style Sheets define the formats of specific areas on your pages.
Images:
Any images that you use for features such as backgrounds, buttons.

2.10. Dialogs:

The dialog editor provides a graphical interface for easily creating and editing dialog boxes
and scaffolds.
To see how it works, go to CRXDE Lite, open the explorer tree
to /libs/foundation/components/chart and double click on the node dialog:
 Dialogs are used for editing content or designing a component.

31
 Accepts user inputs via a form which is a collection of widgets and applies them to
component’s content
 Node type of dialog is cq:dialog.

 Component without any dialog will not appear in sidekick.

The dialog node will open in the dialog editor:

32
2.10.1 USING THE DIALOG EDITOR:

To build a dialog box, the user drags and drops elements from the palette to the structure pane
into position within the dialog definition hierarchy.
Once the desired structure is completed, the user clicks Save, at the top of the render pane.

2.10.2 CREATING A NEW DIALOG:

To create a new dialog box you need to select the required component, click Create... and
then Create Dialog....
Enter the required details then click Save All - now you can double-click on the dialog to
open it with the editor.

33
Hierarchy of dialog:

2.10.3 Design Dialog:

Design dialogs are a very useful feature of cq5. It allows you to store configurations that can
be accessed across pages. To be more specific the data is stored at a common place for each
template. Changes through a design dialog will get reflected across all pages created using
the same template.

A design can be used to store CSS and lot of other stuff .To create a design go to miscadmin
from site admin (click on the gear icon in the top tool bar). Under the design folder create a
new page out of the design template (like u create a normal page). That is all it takes to create
a design.
To assign your site a design on the page follow these steps.
 Open the page from site admin
 click on the page properties link in the side kick to launch page properties dialog
 click on the advanced tab
 select the design you created form the dropdown

34
This design will get assigned to all the child pages as well

To configure components across page


 to edit design related global content.
 All pages that uses same design(s) can access this global content.
 Global content:
 Is stored at /etc/designs
 Root node as cq:page
 Sling:resourceType property set to as /wcm/core/designer
 Child node jcr:content of type cq:pageContent.
 Design values can be accessed using current style object provided in
global.jsp.
 Design dialogs are accessed in design mode

35
11. Parsys (Paragraph System):

The paragraph system (parsys) is a compound component that allows authors to add
components of different types to a page and contains all other paragraph components. Each
paragraph type is represented as a component. The paragraph system itself is also a
component, which contains the other paragraph components.
You configure which components users see by making them available to the user in Design
mode.

For example, the content of a product page may contain the following:
 An image of the product (in the form of an image or text image paragraph)
 The product description (as a text paragraph)
 A table with technical data (as a table paragraph)
 A form users fill out (as a forms begin, forms element, and forms end paragraph)

It provides:
 Ability to add,delete,copy and paste paragraphs.
36
 Coloumn management within a paragraph.
 Ability to decide which content component can be added to paragraph.

ADOBE recommends that foundation parsys component should be used as many times as
possible and use of templates should be as minimum as possible because too many templates
are difficult to maintain.

11.1 I-Parsys (Inherited Paragraph System):

The inherited paragraph system is a paragraph system that also allows you to inherit the
created paragraphs from the parent. You add paragraphs to iparsys at for
example, /content/geometrixx/en/products and as result, all the subpages of products that also
have iparsys with the same name inherit the created paragraphs from the parent. On each
level, you can add more paragraphs, which are then inherited by the children pages. You can

37
also cancel paragraph inheritance at a level at any time.

Simply, iparsys is a parsys that inherits it's content from the ancestor pages.

Disable Inheritance:

If the checkbox is selected, child pages do not inherit the paragraph of this page.

<cq:include path=”par resourceType=”foundation/components/iparsys”/>

38
CHAPTER 3

TEST AUTOMATION

 Uploading a Zipped AEM Package

The AEM Site as we initially open looks the way as shown

It provides the facility for the user to enter the path of the component , template ,
page component , package which he wants to search.

We have an option to browse for the zipped package

 Unzipping the package

 Check the AEM Hierarchy in the package

 Generating Automated test suites

39
The user selects the Zipped package and the AEM at the backend checks whether this
particular package contains JCR_Root and META_INF folder

If these folder are present,the package gets stored in user generated folder present in contents

40
41
42
43
44
45
46
47
CHAPTER 4

PROJECT MANAGEMENT
4.1 FEASIBILITY STUDY
Once scope has been identified, it is reasonable to ask whether we can build software that
meets this scope. Is this project feasible?

The feasibility of software can be tested in four dimensions:

 Technology - Is the project technically feasible?


 Finance - Is it financially feasible? Does it have too much cost of development.
 Time - Will it take too much time to complete? We have planned each phases and it
seems to be in controlled and within time so no extra time cost will be added.
 Resources - Do we have sufficient resource to succeed? The required set of resources
were available as per our requirement.

There are four categories of feasibility tests: operational feasibility, technical


feasibility, schedule feasibility and economic feasibility. Often economic feasibility
and operational feasibility means decrease in economic feasibility.

4.1.1 Technical Feasibility:

What we have planned to implement is technically feasible. As the AEM provides a


better digital customer experiences across all customer touch-points including
websites, mobile sites, social networks, and customer transactions. In our project the
user can upload a package and test its contents.

4.1.2 Time Schedule feasibility:

Here we checked whether our system can be ready in time without any error, or we
can extend it in case of errors. We have planned all its phase keeping the aspect in our

48
mind, that if we find any bug or error after testing phase then we can move our
deadline to 2-4 days, as we set our deadline before the actual submission date to the
client.

4.2 PROJECT PLANNING

4.2.1 Project development approach and justification


Our project is developed using specific software development lifecycle.
Software development approach is best suited for the project that depends on the
requirement and other factors. A process model is a development strategy that is used
to achieve a goal that satisfies the requirements abiding by the constraints.
There are many types of Software Process Model like:

1. Agile Model

2. Linear Sequential Model

3. RAD Model

4. Incremental Model

We have used the Agile Model for our project.

Agile model:

Agile SDLC model is a combination of iterative and incremental process models with
focus on process adaptability and customer satisfaction by rapid delivery of working
software product.

Agile Methods break the product into small incremental builds. These builds are
provided in iterations. Each iteration typically lasts from about one to three weeks.
Every iteration involves cross functional teams working simultaneously on various
areas like planning, requirements analysis, design, coding, unit testing, and
acceptance testing.

49
50
4.2.2 Milestones and Deliverables:

MILESTONES DELIVERABLES PURPOSE

Software installation and Had Complete knowledge for To be familiar with


Understanding of technology installation and user technologies.
experience

System feasibility study, Functional specification It gives exact understanding


requirement and analysis Non-functional specifications of the system

System Design Class diagram It gives the logical structure


Use case Diagram that describes the system

Coding and unit testing and Individually tested and It gives the required module
corrections if any functional models.

51
CHAPTER 5

IMPLEMENTATION PLANNING

5.1 Coding Standards

We only code in jsp pages

Coding techniques incorporate many facts of software development. Although they usually
have to impact on the functionality of the application; they contribute to an improved
comprehension of source code. All forms of source code are considered here, including
programming, scripting mark up and query languages.

The coding techniques defined are not proposed to from an inflexible set of coding standards.
Rather, they are meant to serve as a guide for developing a coding standard for specific
software project.

LIMITATIONS:

 The checkbox list doesn’t persist.


 It is limited to web only.
 We need the access of AEM portal

FUTURE ENHANCEMENT:

 We can unzip the folder and check its contents.


 We can test the compatibility with AEM.
 If we can upload the package from the location it has been stored in the AEM
portal.
 If it allows the user to select the packages from drop down list.

52
CHAPTER 6

CONCLUSION AND DISCUSSION

6.1 Conclusions and Discussion

“AEM-Test Automation” is designed to check the contents of the package uploaded


by the user which is a zip folder. It performs automatic testing and ensures whether the
different elements are in the respective folders. The foremost test performed is whether
jcr_root and META-INF subfolders are present in the package.

The portal automatically generates test cases for the same. It first of all checks what
type of a folder is uploaded, whether it’s a package or a file and test its components
accordingly.

“AEM-test automation” allows users to test the compatibility of their uploaded


package with AEM. It allows user to perform structural and functional test cases on the
uploaded package

53
References

www.docs.adobe.com

www.adobeaemclub.com

www.labs.6dglobal.com/blog/2013-01-02/handling-file-upload-adobe-cq

www.digitaltutor.com

54

You might also like