BSA

Business and Systems Analysts Guided Training. October 2018

Hello everybody! My name is Alexey Kiselev and I am a Lead Business Systems Analyst with 10+ years of experience. I have taught a number of in-person courses (something about 15), video courses like this one from Udemy with more than 2500 students from 120 countries. My last training in Russian was attended by 280 students, an English version was limited to 12 persons.

I started my career in 2008 as a Business Analyst, nowadays I am working with Grid Dynamics and Apple Inc. I built a couple asset management systems for oil corporations, federal government statistic storage, a number of different Case Management solutions, improved couple of platforms for budgeting and Case Management, etc.

Why do we need this training in general?

My main aim is to give you an opportunity to complete the real application requirements from idea to implementation. No long lectures, just tasks and challenges with my help and guidance (and some useful hyperlinks). The better performance – the better results.

What are we going to do with our 1 month training?

Oh, this is obvious – we are going to study. A lot.

  • You will discover problems that the customer (me) is facing
  • You will try to solve these problems somehow (for example – with a simple application).
  • You will do a full vision document.
  • You will describe one User Story with a Use Case.
  • You will fix non-functional requirements.
  • I will skip database model step.
  • I will skip creating a task for developers to implement one user interface step.

It will be no friendly customer – only my skeptical view and a limited time. Do not expect a lot of pure BPMN and UML because I’m a bit tired of them and analysis is mostly about your brain and analytical skills and techniques – not just about diagrams. I wish we could also do implementation and testing, but once again, this is 1 month express training.

How are we going to do that?

I’ll provide at least 2 feedback sessions for all your documents. This is not a boring theoretical course (if you need a boring one – you can get access by following this hyperlink). My feedback will be available via Google Class comments, via the Telegram text chat form 8 am – 10 am and 4 pm – 8 pm Pacific Standard Time (PST) weekly.

No webinars or calls planned.

What will you receive by the end of the training?

My respect and reference via Linkedin. Why respect? Because it seems OK to me to remove people from the group with no refund if they are not actively working for any reason (if you already have an intensive project at work – please do not apply). You will also get a free certificate from Udemy.

Who will find this training useful?

It seems to me that 1-5 years of experience will be best to fit the basic training requirements. All you need is a theoretical base.

What is the length of the training?

Around one month.

When are we going to start?

October 2nd.

Price

I don’t see any sense in excluding 95% of students during my training, so I will charge you for motivational amount (you can donate to WWF or any other organization) . This is non-refundable even if you were extracted from the training.

How do I become a student?

Just apply via google form: https://goo.gl/forms/dUI1Btlsm4Af725U2

There is a limited amount of spots there.

Approximate Schedule

Screen Shot 2018-08-16 at 3.42.44 PM

Standard
BSA

Business and Systems Analysts Guided Training September 2018

Hello everybody! My name is Alexey Kiselev and I am a Lead Business Systems Analyst with 10+ years of experience. I have taught a number of in-person courses (something about 15), video courses like this one from Udemy with more than 2500 students from 120 countries. My last training in Russian was attended by 280 students, an English version was limited to 12 persons.

I started my career in 2008 as a Business Analyst, nowadays I am working with Grid Dynamics and Apple Inc. I built a couple asset management systems for oil corporations, federal government statistic storage, a number of different Case Management solutions, improved couple of platforms for budgeting and Case Management, etc.

Why do we need this training in general?

My main aim is to give you an opportunity to complete the real application requirements from idea to implementation. No long lectures, just tasks and challenges with my help and guidance (and some useful hyperlinks). The better performance – the better results.

What are we going to do with our 1 month training?

Oh, this is obvious – we are going to study. A lot.

  • You will discover problems that the customer (me) is facing
  • You will try to solve these problems somehow (for example – with a simple application).
  • You will do a full vision document.
  • You will describe one User Story with a Use Case.
  • You will fix non-functional requirements.
  • I will skip database model step.
  • I will skip creating a task for developers to implement one user interface step.

It will be no friendly customer – only my skeptical view and a limited time. Do not expect a lot of pure BPMN and UML because I’m a bit tired of them and analysis is mostly about your brain and analytical skills and techniques – not just about diagrams. I wish we could also do implementation and testing, but once again, this is 1 month express training.

How are we going to do that?

I’ll provide at least 2 feedback sessions for all your documents. This is not a boring theoretical course (if you need a boring one – you can get access by following this hyperlink). My feedback will be available via Google Class comments, via the Telegram text chat form 8 am – 10 am and 4 pm – 8 pm Pacific Standard Time (PST) weekly.

No webinars or calls planned.

What will you receive by the end of the training?

My respect and reference via Linkedin. Why respect? Because it seems OK to me to remove people from the group with no refund if they are not actively working for any reason (if you already have an intensive project at work – please do not apply). You will also get a free certificate from Udemy.

Who will find this training useful?

It seems to me that 1-5 years of experience will be best to fit the basic training requirements. All you need is a theoretical base.

What is the length of the training?

This is a critical change – I must finish it till the end of September. Please have a look at the schedule to get a basic understanding why this is a problem.

When are we going to start?

September 5th.

How do I become a student?

Just apply via google form: https://goo.gl/forms/CMEoJiEWWZeh52ft2

There is a limited amount of spots there.

Approximate Schedule

Screen Shot 2018-08-16 at 3.42.44 PM

Standard
BSA, Java, NoSQL, SQL, REST API and other scary words, Requirement management (rus)

Requirements from idea to implementation. BA and SA guide

I started my career in 2008 as a Business Analyst. Since then I worked as a Business Analyst, Systems Analyst, Product Owner, Test Automation and Software Engineer. I worked with custom development projects (for example I made Federal State Statistics Unit Warehouse and Portal) and I worked with products (Case Management System, Customer Relationship Management Systems, etc), so this course is an overview of technologies, practices and tips I used during my career.

I also got couple other Udemy courses, more then 15 articles and some on-site and online courses. This course build accordingly problems I saw during educational process and I really tried to highlight that (especially you will hear a lot of “concentrate on a problem first” tips).

So, to build this course, we had a group of 10 BA-SA volunteers and we started with usual problems BA-SA got, set a course structure you can hear in introduction and wrote something like a 600 pages book, which you will find at the end of the course as a downloadable PDF attachment. This is a base information for the theoretical part. We also researched templates, prepared a set of our favorites and you’ll be able to download these documents templates. Then we made a practice section based on example from one of my practical online course I made at the end of summer 2017 (you’ll get PDF practice examples as well, but they are not 100% done because we would like to show you a process of creating requirements).

Please note that we analyzed more then 900 web sites to combine all necessary theory for you (all these hyperlinks available at the second PDF file with theory).

Here is the link:

https://www.udemy.com/requirements-guide

Discount limited promo code is – AKDISCOUNT2018

PS.

I also would like to say special thanks to my colleagues, who really helped to control quality of all
materials, examples, etc:
● Evgenia Pavlova
● Olesia Volodina
● Maria Begouleva
● Julia Dorozhkina
● Anna Letunovsky
● Dmitry Ivannikov

And there were a bunch of people who were also involved in creating of all these materials:
● Daria Volkova
● Ekaterina Ilyashina
● Julia Vasilieva

And many thanks to Ekaterina Gert for the title image.

Standard
Java, NoSQL, SQL, REST API and other scary words, QA (eng)

Cucumber + ExtentReport

Prerequisites: Cucumber Again. From Requirements to Java Test

To create any simple Cucumber+Java test, we will need to create a glue file, that is pretty simple to do, because, if you don’t need all vhistles and blows on your first step – this will be enough:

package com.cucumber.StepDefinitions;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(
        features="src/test/resources/feature",
        glue = "com.cucumber.StepDefinitions"
)
public class CukesRunner {
}

My favorite report engine is ExtentReports, so, let’s add a proper class:

package com.framework.common;

import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;
import org.testng.annotations.AfterSuite;

public class ExtentReport {
    public static ExtentReports extentReports;
    protected static ExtentTest extentTest;

    public static ExtentReports getExtentReport() {
        if (extentReports == null){
            extentReports = new ExtentReports(System.getProperty("user.dir") +"/ExtentReport/index.html", true);
        }
        return extentReports;
    }

    public static ExtentTest getExtentTest(String testName) {
        if (extentReports == null) {
            getExtentReport();
        };
        if (extentTest == null){
            extentTest = extentReports.startTest(testName);
            extentTest.log(LogStatus.INFO, testName + " configureation started");
        }
        return extentTest;
    }

    @AfterSuite
    public void endSuite(){
        ExtentReport.getExtentReport().close();
    }
}

and implementation is extremely simple:

ExtentReport.getExtentTest(getClass().getSimpleName()).log(LogStatus.INFO, "Run test for " + className);

This is how it looks like:

After that I tried to research if there are any ready to go plugins or examples about how to make reports in Gherkin-like format. I easily found one, but that was working with no problems only with Eclipse. Here is an example – (https://automationissues.wordpress.com/2017/09/29/cucumber-extent-reporting/):

Continue reading

Standard
Java, NoSQL, SQL, REST API and other scary words, QA (eng)

Cucumber Again. From Requirements to Java Test

So, this is another one article abut cucumber, but I’ll try to describe SDLC methodology. If you skipped posts about correct Gherkin/Cucumber format , please have a look here: Cucumber — bridge or another one abyss between BA and QA

If you would like to try Java+Cucumber, please, have a look here: Create a Cucumber Project by Integrating maven-cucumber-selenium-eclipse

Feature File Naming Convention

But if you would like to get a overview on a process, please, continue reading. As every educated Analysts, as a result of our work, we got a list of requirements. We know that we could have functional and non-functional requirements.  This is my typical workflow to deliver requirement to QAs:

  1. Usually I’m starting my IT Projects with Vision document where I got User Stories as a key entity,
  2. I’m doing idealization via Use Cases.
  3. QA adding extra details for my Use Case steps. In general – they are adding steps to add data like “qweqweqwe” in date and number fields and all that kind of negative testing.

If we would like to test particular requirement, then you are:

  1. Searching for a User Story
  2. Searching for a related Use Cases (via matrix, if I already spent some time to create and maintain it)
  3. Searching for a Test Cases, related to this Use Cases
  4. Open Eclipse, configure TestNG xml file to run required test.
  5. Run selected tests

So, it would be great to find one particular Use Case and run it from the one place, without tons of Word document (+ xls tables as an option). The problem is – Cucumber  is not about User Stories, Use Cases, etc. Let’s answer couple important questions:

  1. What is the difference between Use Cases and Features? Features are descriptions of high-level product functionality. We then derive one or more use cases from each feature.
  2. What is the difference between Feature and User Story? A user story can be a specific justification for a feature, or a specific way to do it. Or it could be a totally different thing, like, for exampleUser story: as a customer, I want to pay with the most popular credits cards. While Feature: support the GOV-TAX-02 XML API of the government.

I would place User story and Feature at the same detail level, but the problem is: User Story is way  too long for the Cucumber Feature. Why? Because Cucumber Feature is a simple text file, while Feature Name is a name of this file! This looks nice on the different demo, where teachers got “MyFeature1” and “MyFeature2”, but in fact,  we should split feature files into groups via packaging, otherwise this will be a disaster.But anyway, we will not be able to put all these “As a User”, so, here is the key thing why they got features, because if we are using User Stories, we got space only for ” < some goal >” from “As a < type of user >, I want < some goal > so that < some reason >”.

There is also another one method we could use – add requirement number, this will extremely help us to support consistency and traceability. Continue reading

Standard
BSA, Java, NoSQL, SQL, REST API and other scary words, QA (eng)

Udemy “Requirements from idea to implementation. BA and SA guide” course announcement

Here is my new Udemy “Requirements from idea to implementation. BA and SA guide” course . 86 lectures with examples and templates, etc. Will be available in January 2018.


I started my career in 2008 as a Business Analyst. Since then I worked as a Business Analyst, Systems Analyst, Product Owner. I worked in custom development projects (for example I made Federal State Statistics Unit Warehouse and Portal) and I worked with products (Case Management System, Customer Relationship Management Systems, etc), so this course is a overview of technologies, practices and tips I used during my career.

I also got couple other Udemy courses, more then 15 articles and some on-site and online courses. This course build accordingly problems I saw during educational process and I really tried to highlight that (especially you will hear a lot of “concentrate on a problem first” tips).

So, to build this course, we had a group of 10 BA-SA volunteers and we started with usual problems BA-SA got, set a course structure you can hear in introduction and wrote something like a 600 pages book, which you will find at the end of the course as a downloadable PDF attachment. This is a base information for the theoretical part. We also researched templates, prepared a set of our favorites and you’ll be able to download these documents templates. Then we made a practice section based on example from one of my practical online course I made at the end of summer 2017 (you’ll get PDF practice examples as well, but they are not 100% done because we would like to show you a process of creating requirements).

Please note that we analyzed more then 900 web sites to combine all necessary theory for you (all these hyperlinks available at the second PDF file with theory).

I really hope you will enjoy this course and please let me know if you would like to learn some more or would me to add some clarifications.

Thank you!


 

Standard
BSA, Java, NoSQL, SQL, REST API and other scary words, QA (eng)

Free on-line course “Practices for Systems Analysts to Write Implementation Tasks”

Free on-line course «Practices for Systems Analysts to Write Implementation Tasks»
https://www.udemy.com/sa-implementation-tasks/

This course will tell you how to write proper tasks for your developers, if you got any UI with set of fields.

What you will leard from it?
• How to write tasks for developers (UI with fields, grids, buttons)
• What is the high level difference between SQl and NoSQL
• How REST API works

Standard
BSA, Java, NoSQL, SQL, REST API and other scary words, QA (eng)

Cucumber – bridge or another one abyss between BA and QA

Cucumber Introduction:

Cucumber is a tool based on Behavior Driven Development (BDD) framework which is used to write acceptance tests for web application. It allows automation of functional validation in easily readable and understandable format (like plain English) to Business Analysts, Developers, Testers, etc.

Cucumber feature files can serve as a good document for all. There are many other tools like JBehave which also support BDD framework. Initially Cucumber was implemented in Ruby and then extended to Java framework. Both the tools support native JUnit.

Behavior Driven Development is extension of Test Driven Development and it is used to test the system rather than testing the particular piece of code. We will discuss more about the BDD and style of writing BDD tests.

Cucumber could be used along with Selenium and Java and this is more than enough to make me happy.

Cucumber Basics:

In order to understand cucumber we need to know all the features of cucumber and its usage.

#1) Feature Files:

Feature files are essential part of cucumber which is used to write test automation steps or acceptance tests. This can be used as live document. The steps are the application specification. All the feature files ends with .feature extension.

Sample feature file:

Feature: Login Functionality Feature
In order to ensure Login Functionality works,
I want to run the cucumber test to verify it is working
Scenario: Login Functionality
Given user navigates to SOFTWARETETINGHELP.COM
When user logs in using Username as “USER” and Password “PASSWORD”
Then login should be successful
Scenario: Login Functionality
Given user navigates to SOFTWARETETINGHELP.COM
When user logs in using Username as “USER1” and Password “PASSWORD1”
Then error message should be thrown

Continue reading

Standard
Java, NoSQL, SQL, REST API and other scary words

Best Practice to display image on a page

Let’s start with something simple – there are three universally supported image formats: GIF, PNG, and JPEG. In addition to these formats, some browsers also support newer formats such as WebP and JPEG XR, which offer better overall compression and more features. So, which format should you use?

1

At first – we should do a good work with images itself (this part is so boring, so, I’ll just provide a short list of recommendations):

  • Sizing. Developers / designers – make sure the images you deliver perfectly fit their required website dimensions. Even if the same image should be made into different sized thumbnails to fit different pages, it’s well worth creating all these different thumbnails rather than deliver a large image and rely on the browser to resize it.
  • Quality. don’t be afraid to experiment with lower JPEG quality levels. For certain websites we found that using a 50% JPEG quality yielded a very reasonable result.
  • Correct Format.Once again, PNG should be used for computer generated images (charts, logos, etc.), JPEG when you are showing a captured photograph.Notice that despite the common belief, PNG will outperform GIF in almost every other aspect.
  • Use compression tools
  • Useless data. Make sure you strip the meta-data off your images and user uploaded photos
  • Using images when CSS3 can be used. This one point is more interesting, but still, we are far away from algorithms. Just make sure you use CSS3 whenever possible. If your graphics designer is responsible for the markup, make sure you ask for CSS3 based elements where it makes sense. This thing should go as a non-functional requirement.
  • Incorrect image cache settings. we highly recommend using aggressive caching for all your website images by setting your images HTTP ‘Expires’ header to as far in the future as possible.
  • Using a single image size across all delivery mediums. The solution is pretty simple – identify your visitors mobile devices and resolution using their user agent and optionally additional client-side Javascript code. With the correct resolution in hand, retrieve the best fitting image from your servers.

Delivering static icons one by one

Other than photos and thumbnails, your website most likely includes many icons (arrows, stars, signs, marks) and auxiliary images. Google’s search results page is comprised of over 80 (!) tiny icons.

A simple solution for this problem is to utilize a CSS Sprite, a single image that contains all your smaller icons. Your web page is modified to download this single image from your server and the page’s HTML uses alternative CSS class names to point to the smaller images within the larger one.

Now, instead of 80 images, Google’s visitors download just a single image. Their browser will quickly download and cache this single image from Google’s servers and all images will be immediately visible.

To be honest, would also highly recommend Font Awesome to be implemented at your page.

Continue reading

Standard
Java, NoSQL, SQL, REST API and other scary words

Rest Chat – Avatars, News Feed and State Machine

So, as a next step I decided to implement Avatars, News Feed and State Machine.

Avatars

That was pretty simple to add avatars – add module which will handle image upload/cropping for future upload to the DB Avatar field. I found couple modules to add, but they are not 100% working:

  1. https://github.com/andyshora/angular-image-crop Zoom is not working for chrome 57.0 and angularjs 1.4.8
  2. https://github.com/allenRoyston/ngCroppie is not working at all (I made a bug – https://github.com/allenRoyston/ngCroppie/issues/32).
  3. etc

So, finally I found ngImgCrop module for this purpose.

State Machine

I used classic state machine to handle friendship statuses (and errors), so, I draw a pretty simple scheme with transitions and after that – excel file with description of every transition (including errors handling with proper messages). You will never see this error messages unless you would like to modify existing RESR URLs to try to approve friendship of some unknown user and etc.

Cause this is a pretty simple and well known area – here is some theoretical description and implementation of the state machine:

2017-05-18_12-58-04

code snapshot:

case "Restore Subscription":
 switch (relationFriend){
 case 0: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 1: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 10: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 11: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 12: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 20: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 21: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 22: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 23: errorExists = 1;errorText = "There is no ignored friend. "; break;
 case 30: newRelationFriend=21; break;
 } break;
 case "Unsubscribe":

News Feed

In fact, news feed is a somewhat like a messaging, but with the different security and CQL statement of course. Therefore, new requirements for the New Feed are:

  1. Add News Feed item
  2. Edit News Feed item
  3. Delete News Feed item
  4. Add subscription
  5. Delete subscription
  6. Hide News Feed item from everybody
  7. Show News Feed item for friends only
  8. Show News Feed item for everybody
  9. Select favorite authors

I don’t want to make a full description for each requirement and don’t want to describe User Stories because I’m a Facebook user and requirements on this level are pretty obvious and straight forward. I skipped some of these requirements during implementation and will implement them during some of the next iterations.

Let me describe my current database structure (I used draw.io for that):

unnamed

Let me introduce DB changes:

1)  Introduce new object to store News Feed items

2) Add fields to store avatars

So, as a result I got this demo video and a bunch of items for the next version at my backlog.

Standard
Java, NoSQL, SQL, REST API and other scary words

Cassandra Datastax and Java – best way to set up connection

I’ll research the best way to make a connection from my Java to Cassandra here. There are a lot of examples how to do that, but the main thing, but I’m developing some kind of chat application on my localhost (will do single insert/update statements, etc.) when all this Spark examples are perfect for analytical workflows.

The first one example is Spark 1.6:

public static JavaSparkContext getCassandraConnector(){
         SparkConf conf = new SparkConf();
         conf.setAppName("Chat");
         conf.set("spark.driver.allowMultipleContexts", "true");
         conf.set("spark.cassandra.connection.host", "127.0.0.1");
         conf.set("spark.rpc.netty.dispatcher.numThreads","2");
         conf.setMaster("local[2]");

         JavaSparkContext sc = new JavaSparkContext(conf);
         return sc;
    }

So, I also got an example for Spark 2.x where the builder will automatically reuse an existing SparkContext if one exists and create a SparkContext if it does not exist. Configuration options set in the builder are automatically propagated over to Spark and Hadoop during I/O. Continue reading

Standard
QA (eng)

Test Suite Report Builder Comparison

Here is a short comparison of for most popular ways to build test report for TestNG + Java framework (with comparison table in the end of the post).

Log4J

This is a pretty simple logger which throws test suite execution to the Windows Console, Eclipse Console and text file.

There is no screenshot capturing or easy navigation between multiple suites, so, this is just a huge text file.

1 Continue reading

Standard
QA (eng)

Test Framework (Java, TestNG, ANT, etc)

Introduction to Automation testing:

Testing is an essential part of a software development process. While testing intermediate versions of products/projects being developed, testing team needs to execute a number of test cases. In addition, prior to release every new version, it is mandatory that the version passed through a set of “regression” and “smoke” tests. Most of all such tests are standard for every new version of product/project, and therefore can be automated in order to save human resources and time for executing them.

Benefits of using automated testing are the following:

  • Reduction of tests’ time execution and human resources required
  • Complete control over the tests’ results (“actual results” vs “expected results”)
  • Possibility to quickly change test’s preconditions and input data, and re-run the tests dynamically with multiple sets of data

Automation workflow for the application can be presented as follows:

  • First of all it is required to identify tasks that an application has to accomplish.
  • Second, a set of necessary input data has to be created.
  • Third, expected results have to be defined in order one can judge that an application (a requested feature) works correspondingly.
  • Fourth, Executes a test.
  • Finally, Compares expected results with actual results, and decides whether the test has been passed successfully.

Goal:

The goal of this framework is to create a flexible and extendable automated testing framework, which should expand test coverage for as many solutions as possible. Framework must have input and output channels and library of methods to work with UI.

Environment Specifications:

  • Selenium Webdriver. Selenium is a suite of tools for cross-platform automated testing of web applications. It runs on many browsers and operating systems and can be controlled by many programming languages and testing frameworks. Selenium WebDriver is a functional automation tool to automate the applications. It makes direct calls to the browser using each native support for automation.
  • Eclipse IDE. Eclipse is an integrated development environment (IDE) used in computer programming, and is the most widely used Java IDE. It contains a base workspace and an extensible plug-in system for customizing the environment. Eclipse is written mostly in Java and its primary use is for developing Java applications.
  • Java.
  • TestNG. Is a testing framework inspired from JUnit and NUnit. It has extended new functionalities, which made it more powerful and easier than the other testing frameworks. It supports ReportNG (simple HTML reporting plug-in) and XLST (Graphical / Pictorial reports) plug-ins to customize or extend the default TestNG reporting style. TestNG also provides ability to implement ‘IReporter’ an interface which can be implemented to generate a Customized TestNG report by users. It has ‘generateReport()’ method which will be invoked after all the suite has completed its execution and gives the report into the specified output directory.
  • Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.
  • AutoIT Tool used to handle Windows popups for Document Uploads and Downloads.
  • Apache POI to perform operations with excel like read, write and update the excel sheet
  • Webdriver is a driver that contains programming interface for controlling all kinds of possible actions in browser.
  • Selenium TakesScreenshot to take screenshot in case of error.
  • Log4j is a reliable, fast and flexible logging framework (APIs) written in Java, which is distributed under the Apache Software License.
  • JDBC. Java Database Connectivity (JDBC) is an application programming interface (API) for the programming language Java, which defines how a client may access a database. It is part of the Java Standard Edition platform, from Oracle Corporation.

Continue reading

Standard
QA (eng)

Test Suites for Simple Chat Application (REST API)

Introduction

This is a framework with test suites which allows me to test my Simple Chat Application UI in 5 minutes.

test app

I could provide bitbucket project access upon request and this is a link to original chat application.

Short Demo

Architecure

  • TestNG and Java
  • Webdriver is a main test library
  • JDBC to work with DB (clean up test data)
  • ANT to display test results
  • Test Suites and data stores as xls files and their status updates with every run
  • Easy to use with Jenkins

Framework example to begin with

Step by step instruction how to create framework

Standard
Java, NoSQL, SQL, REST API and other scary words

Simple Chat Application (REST API)

Introduction

This is a simple restfull chat application to send messages between friends. Key features:

  • Register to the System
  • Login
  • Send/Approve Friendship Request
  • View friends list
  • Ignore User
  • Send Message
  • Delete account Minor features:
  • Auto update messages and friends lists
  • Security by Token

Link to the project upon request.

Short Demo

Continue reading

Standard
BSA

Cookies, Sessions, and Persistence

Persistence and Stickiness for SA dictionary:

When customers visit an e-commerce site, they usually start by browsing the site. Depending on the application, the site may require that the client become persisted (stuck) to one server as soon as the initial connection is established, or the application may require this action only when the client starts to create a transaction, such as when building a shopping cart.

For example, after the client adds items to a shopping cart, it is important that all subsequent client requests are directed to the same real server so that all the items are contained in one shopping cart on one server. An instance of a customer’s shopping cart is typically local to a particular server rather than duplicated across multiple servers.

E-commerce applications are not the only types of applications that require a sequence of client requests to be directed to the same real server. Any web applications that maintain client information may require stickiness, such as banking and online trading applications, or FTP and HTTP file transfers.

More info: Cookies, Sessions, and Persistence

Standard
BSA

Business and Systems Analysts Guided Training March 2018

Hello everybody! My name is Alexey Kiselev and I’m a Head of a Systems Analysts Department with 10+ years of experience. I did multiple courses (something about 15), video courses like this one from Udemy with more than 2500 students from 120 countries, my last Russian language course attended by 280 students, I also got a blog with more than 100 000 views (this one).

I started my career in 2008 as a Business Analyst, since 2013 I’m mostly playing a Systems Analyst’s role. I built couple asset management system for oil corporations, government statistic storage, amount of different Case Management solutions, improved couple platforms for budgeting and Case Management, etc.

I received more than 30 requests to repeat the training I made in Russian in 2017, so I decided to repeat it but for 6 students only.

Why do we need it in general?

My main aim is to give you an opportunity to partially complete real application requirements from idea to implementation. No long lectures, tasks and challenges only under my control and with my help (ok, my useful hyperlinks). More performance – more results.

What are we going to do?

Oh, this is obvious – we are going to study. A lot.

  • We will find a problem, we will try to solve it via our small application.
  • To create our small application – we will do a full vision with a couple of supportive diagrams like Context Diagram.
  • Then we will do a use case steps scenarios for one of the user stories defined in vision.
  • Fix non-functional requirements.
  • Do a database model.
  • Create a task for developers to implement one user interface.

It will be no customer – only year ideas and my skeptical view. Do not expect a lot of pure BPMN and UML because I’m a bit tired of them and analysis is mostly about your brain and analysis skills and techniques – not about just a diagram. I wish we could do an implementation and testing, but I believe we will have no enough developers in our group.

How we are going to do that?

I’ll provide a at least 2 feedback sessions for all of your documents. This is not a boring theoretical course (if you need a boring one – you’ll get an access to this one available on click on this hyperlink). My feedback available in Telegram text form 8 am – 3 pm weekly and 4 pm – 8 pm weekly via Telegram or Skype conference. My time zone is PST.

What you’ll receive at the end of the training?

My respect and reference via Linkedin. Why respect? Because it seem ok to me to remove people from group with no refund if they are not actively working for any reason (if you got intensive project at work – please do not apply). You’ll also get a free certificate from the Udemy.

Who’ll find this training useful?

It seem to me that 1-5 years of experience will be best to fit course entry requirements. All you need is a theoretical base.

What is the length of the course?

Depends on your performance. i would expect 1-2 months.

When are we going to start?

I believe we should start in March.

How it is possible to become a student?

Just apply via google form whenever it’ll be available. I’ll got 6 spots there only..

Approximate Schedule

# Task Days allocated
1 Problem Solving 5
1.1 Find at least 5 interesting problems you are able to solve with a small application 3
1.2 Analyze Problem (ishikawa diagram) 2
2 Vision 10
2.1 Problem Description 2
2.2 Stakeholders 2
2.3 Goals 2
2.4 Features (User Stories) 2
2.5 Context Diagram 2
3 Use Case 21
3.1 Use Case Diagram or Traceability Matrix 5
3.2 Use Case Description 10
3.3 Non-Functional Requirements 2
3.4 ER-model 4
4 Implementation Task 18
4.1 Database description 7
4.2 UI Prototype 3
4.3 UI Description 5
4.4 REST API description attempt 3

 

Standard