What are the main points that must be documented for a data integration project? - documentation

I am working on a data integration project using Talend.
I have many input sources heterogeneous, I make transformations and I save output data to many output sources. Actually, I am doing Extraction, Transformation and Load (ETL).
My Talend Job is executing everyday on a linux server (the production). I have a development and test environment on a windows VM, ... In fact, I have many things I want to document and I don't really know how. I used to document web development projects (just the frontend), but not data integration projects.
Can you guys help me with some keywords, examples, templates, so that I can make a clear documentation for my client ?
Thanks in advance :)

While I can't speak to your organizational needs, Talend is designed to be largely self documenting. If you were diligent in filling out the documentation and descriptions in your job, you can right click the job and select 'Generate Doc as HTML'.

Related

Repository Tool for IT Landscape Artifacts Software Services

We are looking to store our Software company's all documents which can be easily modified, searched, shared withing Teams.
It is like Sharepoint but need more sophisticated tool which undertand various document formats
Like Swagger , Code Files, Excel, and very well sturcutre to orgainize and link documents.
We can to create our Architecture and Solution Repository
ok, then you need:
1- a store
2- version control utility
3- a tool too develop togaf specific stuff (views, viewpoints, stackholder definitions, ABBs, SBBs, architecture diagrams, container documents that refers to these diagrams such as architecture definition and architecture contract docs )
4- a tool to understand various document formats to track the changes internally (including word documents and excel sheets)
let me start from bottom up,
4-I don't know any tool that is able to understand complex format like docx, even microsoft tfs deals with word files as a binary file, thus it can't track the changes done inside a document, I think you will need to compromise this point and rely more on a well structured process of providing sufficient and precise comments by whoever commits to the repository + well utilizing components in point 3
3- Archi (free) - Sparx / visual paradigm (commercial) (I have a very small experience with it but it seems to be sufficient)
2- any source control tool (git / svn / tfs / mercural) .. and if you use Archi, it's eclipse based and eclipse has plugins to most of source control tools
1- according to point 2, the repository will be defined, in case of git for example it will be a Git repository
but any ways, you will need to define a process and guidelines inside your organization for managing the architectures then the tools will just support.
Though not perfect, hope it helps !
Though a bit late, let me try to answer from my experience. Enterprise Architecture Platforms / Tool should fit your expectations with many more features that you need for architecting solutions other than the primary document management, collaborations and content management.
I suggest you to look at Orbus IServer as it is purely document based. It accepts all Microsoft format files like visio, excel, docx, powerpoint, sharepoint, power bi. It also accepts ERWIN files
Here is the link which speaks about its integration.

how multiple automation testers work in same selenium project

We are three testers and going to prepare automation project with selenium and java code so what are the steps for environment setup , scripts integration and running the testcases and getting the results for the whole project suits
So there are a few things we have to use in order to allow multiple engineers to work on the same framework.
Step 1) Creating the framework, assuming you know how to do this already, you have working tests you can skip this stage, however if not please follow the tutorial i link below.
http://toolsqa.com/selenium-webdriver/
Step 2) Creating a REPO, my preference is GitHub, you can use any git repo however i will post the guide to set one up with GitHub, its a similar process for all. This will allow you to merge code properly without causing conflicts.
https://help.github.com/articles/create-a-repo/
Step 3) Source Control program - to push, pull and fetch from your GitHub Repo, you can do this from Command Prompt however i find cloning the repo into a program like 'SourceTree' is really easy, so i've posted that below.
https://confluence.atlassian.com/get-started-with-sourcetree
If you follow these 3 guides, you will be able to have your automation test scripts on GitHub by the end of the day.
If you have any more questions please do not hesitate to ask.
All the best, Jack
The easiest and most logical way to do this would be to create one branch in your CVS (git or SVN, etc) and have each person setup the dev environment in the same way. Work exactly like developers and pull code before you check-in/commit (this will ensure that one small error does not break your framework) and swear to resolve conflicts during merge (to ensure you don't step on each others' toes).
Also, before you kick off, agree on a standard of coding (including package naming, design pattern usage, filename and methodname usage) and if this is in sync with the dev coding standards in your company, even better.
There will be a few hiccups along the way, but experience is the best way to create a process for your development and check-in practices.
Good luck with your new project and happy coding!
You have asked two questions, in my opinion the answer of your questions is.
how multiple automation testers work in same selenium project - You can use any version control system, Git Hub is the best option which gives you a lot of facilities. You all three can work on same project at same time or you can go for any centralized version control system like tortoise svn which is not much likely used now a days. I will suggest Git Hub for that.
what are the steps for environment setup , scripts integration and running the test cases and getting the results for the whole project suits - It depends on various factors like application and the kind of framework you want to use, there are many frameworks which are widely used for automation testing like Modular Framework, Data Driven, Keyword Driven, BDD, Cucumber, TestNg etc or if you have bandwidth and time you can design your custom framework as per the needs.
I hope I put some glimpse on your queries.
Thanks

How to write test cases and test steps in redmine

I am working at a company that uses Redmine as the issue tracking tool and for user stories.
I need to design the QA for them. However I didn't find a section where someone can tie a user story or an issue with a test case. I've used to have this functionality on Rally.
Is there a free tool that integrates with Redmine or something like a plugin?
I want the following (or the more the better!)
Description
test steps (input-output)
Status (pass-fail)
Suite name (the suite the test is part of)
Attached issues
Version of SW under test
Thanks in advance
There is a "test case management" section in the Redmine Third Party tools documentation.
thanks for the support.A former colleague brought this to my attention:
https://bitbucket.org/bugzinga/redcase/wiki/Home
One thing I often see is people trying to adapt tools to do things that they were not originally designed for. Redmine is a good tool for issue tracking and is designed mainly to be a project management tool, although it is possible to adapt redmine, I would suggest in this case looking for a dedicated test management tool that has been designed to do that specific job.
I would suggest looking at TestLodge test management tool which I have worked on and is a designed to help you manage and execute your tests but at the same time integrates with Redmine and does things like automatically create tickets whenever a test fails.
By doing this, you are going to benefit from a range of things such as an interface designed for testing that will make you and your team a lot more productive along with a series of reports that will allow you to spot trends within your testing.

How can multiple developers efficiently work on one force.com application?

The company I work for is building a managed force.com application as an integration with the service we provide.
We are having issues working concurrently on the same set of files due to the shoddy tooling that is provided with the force.com Eclipse plugin. If 2 developers are working on the same file, one is given a message that he can't save -- once he merges he has to manually force the plugin to push his changes to the server along with clicking 2 'Are you really sure' messages.
Basically, the tooling does a shoddy job of merging in changes and forces minutes of work every time the developer wants to save if another person has modified the file he's working on.
We're currently working around this by basically 'locking' individual files by letting co-workers know who is editing a file.
It feels like there has got to be a better way in this day and age. Does anyone know of a different toolset we could use, process we could change, or anything we can do to make this easier?
When working with the Force.com platform my current organisation has found a number of different approaches can work depending on the situation. We all use the Eclipse Force.com plugin without issues and have found the following set ups to work well.
We have a centralised version control system that we deploy from using a series of ant commands to a developer org instance. We then depending on the scope of the work either separate it off into chunks with each developer having their own development org and merging the changes and testing them regularly, or working in a single development org together (which if you have 2 developers should be no major problem) allowing you to have almost instant integration.
If you are both trying to work on the same file you should be pair programming anyway, but if working on two components of a similar system together, sharing the same org can allow you to develop in a fast and flexible manner by creating the skeleton of the system you wish to use and then individually fleshing out the detail.
I have used both methods extensively and a I say, work really well depending on the situation.
Each developer could work in separate development sandbox (if you have enterprise edition, I think 10 sandboxes with full config & limited amount of data are included in the fee?). From time to time you would merge your changes (diff tool from any version control system should be enough) and test them in integration environment. The chain development->integration->system test->Q&A-> production can be useful for other reasons too.
Separate trick to consider can be used if for example 2 guys work on the same trigger. I've learned it on the "DEV 401" course for Developers.
Move all your logic to classes. Seriously. They will be simpler to unit test too.
Add custom field (multi-select picklist) to User object. Values should be equal to each separate feature people are working on. It can hold up to 500 values so you should be safe.
For User account of developer 1 set "feature1" in the picklist. Set "feature2" for the other guy.
In the trigger write an if that tests presence of each picklist value and enters or leaves the call to relevant class. This wastes 1 query but you are sure that only the code you want will be called.
Each developer keeps on working in his own class file.
For integration test of both features simply set the multiselect to contain both features.
I found this trick especially useful when other guy's code turned out to be non-optimal and ate too many resources. I've just disabled his feature on my user account and kept on working.
This trick can be to some extend applied to Visualforce pages too (if you can divide them into components).
If you don't want to waste query - use some logic like "user's first name contains X" ;)
We had/have the exact same problem, we have a team of 10 Devs working on a force.com application that has loads of apex classes (>300) and VF pages (>300).
We started using Eclipse plugin but found it:
too slow working outside of the USA each time a save is called takes > 5 sections
to many merge issues with a team of 10 developers
Next we tried developing in our own individual sandboxes and then merging code. This is ok for a small project but when you have lots of files and need changes to be pushed between sandboxes it becomes impossible to manage as the only thing worse then force.com development tooling, is force.coms deployment/build tools. No automation its all manual. No easy way to move data between sandboxes either.
Our third approach was to just edit all our VF pages and Apex code in the browser. (not using their embedded editor that shows up in the bottom half of the page because that is buggy and slow) but just using the regular Editor under setup > develop > Apex classes. This worked ok. To supplement this we also had a scheduled job that would download all our code and save it into our SVN repository. We also built a tool that allow us to click a folder on our desktop and zip its contents and deploy it as static resources for us.
However this approach still has its short comings, i.e. it is slow and painful to develop in the cloud, their (salesforce) idea of Development As a Service is crazy. Also we have no real SCM we only have it acting as backups.
Bottom line is force.com is a CRM and not a Development platform, if you can? run, flee, get away from it as fast as you can. Using it for anything apart from a CRM is more trouble then it is worth. Even their Slogan "No Software" makes me laugh everytime
I'm not familiar with force.com, but couldn't you use source control and pull all the files down from force.com into your repository. Then you could all do your work, and merge your changes back into the mainline. Then whenever it's necessary push the mainline up to force.com?
Take a look at the "Development Lifecycle Guide: Enterprise Development on the Force.com Platform". You can find it on developer.force.com's documentation page.
You might want to consider working on separate static resources and pages and then just being careful when editing objects, classes etc.. If most of your development happens on client side code (page, staticresource, lightning component/app) you might be interested in this project: https://github.com/bvellacott/salesforce-build . In any case I strongly suggest using version control. If not on a server then at least locally on your machine, in case your peers overwrite your work.

Managing ABAP Source Code in Source Control

Our product currently spans a large number of technologies, including Java, PL/SQL, VB.Net and ABAP. We have a fairly mature source control and build system set up for all of the languages except ABAP, which is still in the stone ages. Since SAP has a build system set up within it, our engineers do all of their development in an SAP environment export transports, and check those into source control. Since we support a number of SAP versions, it becomes very difficult to track versions and migrate code across 4.6, 4.7, 5.0, etc.
My ideal process would be to check the ABAP code into source control in text files, and then load it into SAP and generate the transports as part of the build process. The SAP engineers don't think there are tools to support this model.
If you are managing ABAP code in a source control system, what does your process look like? Are there tools available (preferably command-line) for loading ABAP code into SAP? How do your engineers manage the code/test/debug cycle? Do they code in SAP and then export the code when finished, or edit in an external editor?
I used SAPLINK (mentioned in previous answer) for that purpose. There is also a related project called "zake", that supposedly can automate some of the tasks but I never used it. I simply exported my code manually to so-called slinkees (they contain single objects like function groups; nuggets on the other hand contain several objects).
Reasons to use some external source control system:
correlation to non-abap source code (as our software consisted of .net and abap code)
hosting / maintaining SAP was not something we were exactly good at, so it was good to know you had your code in a safe place
one thing though: you need at least WAS 620 in order to use saplink
I'm interested as to what the benefit is of version control outside the ABAP stack of the SAP system.
I've never seen anyone use external source code control for ABAP, as it's built right in. I've never seen anyone code ABAP outside the SAP system either. It really doesn't fit the model.
SAP's ABAP stack is a single-development system environment. All the developers log on to the one system and develop there. The system records versions automatically, and groups changed objects into transports. A transport is just a list of changed objects. Once you export the transport, the version numbers are incremented for each object and you get the package for the other systems.
The ABAP stack also doesn't really have a "build" concept as such. Everything you do is a patch.
Also check out SAP CTS+ which is used for managing transports and version control of ABAP and JAVA based components.
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0249083-c0ab-2a10-78b8-b7a7854b1070
At the very least, modifications should be done and tested in an SAP development system. Nobody uses an external editor with ABAP. (SAP Java on the other hand...) There is no reason why you can't keep backups of the SAP code, either directly, as text files, or, (preferably) with SAPLink or transport dump files. (Ask your BASIS people about the transport files). Realize that if you go the text file route, you might miss out on things like field text, etc., which are stored elsewhere in the database.
Hy,
As Dom told you, SAP has it's own version managment. However in order to makes regular save between transport releasing, you might use tools like :
SAPLink (as saied Wili aus Rohr)
ZAPLink
this tools could be use to extract ABAP components into XML. I really do not advise to make automatic import into SAP, for many reasons :
# thoses tools have no guaranties
# not all ABAP Compoponent can be handled like this
# you will lose SAP guaranty if you do this on a productive SAP system
But it might be interesting to use tools like (Google code) to display in detail software change, which could be more complicated on ABAP Object.
I developed this on ZAP Link framework with ZAPLINK_EXTRACTOR program that export SAP Components into XML when they have changed. This prevent XML file to change (new file but same content) and to be detected by tools such as mercurial as a change.
Hope it helps.
Keep in mind that you should use SAP tools to change SAP Component. SAP consultant might explain it to you in details.
Taryck.
[http://www.steria.com Steria (France)]
The 2020 answer to the question is simply: Use AbapGit.
It gives you all the advantages of modern version control, is fully documented, open source and works like a charm.