BLOG

By Zaigham Qureshi April 20, 2024
The 7 key aspects of Software Testing...
By Zaigham Qureshi April 20, 2024
The 7 key reasons why Software Testing is important...
By Zaigham Qureshi September 20, 2019
Plugins Click 'Jenkins' the top left link Click 'Manage Jenkins' Click 'Manage Plugins' Click 'Available' to view the list plugins Search for and Install: Green Balls - upon job completion green ball will appear instead of default blue Maven Integration plugin - an ideal plugin for maven projects Email Extension Plugin - for email sending and receiving Email Extension Template Plugin - for administrators to create email templates for global use Cucumber reports - provides html reports for cucumber where a jason report is generated Email Setup Click 'Jenkins' the top left link Click 'Manage Jenkins' Click 'Configure System' Jenkins Location Jenkins URL: http://localhost:8080/ System Admin e-mail address: Jenkins Admin Extended E-mail Notification SMTP server: smtp.gmail.com Click Advanced Set 'Use SMTP Authentication' to True User Name: enter your GMail address here Password: enter your GMail password here Set 'SSL' to True SMTP Port: 465 Charset: UTF-8 Click Save Note: Ensure E-mail Notification section is not being used to avoid conflicts Global Tool Configuration Click 'Jenkins' the top left link Click 'Manage Jenkins' Click 'Global Tool Configuration' JDK: Name: JAVA_HOME JAVA_HOME: C:\Program Files\Java\jdk1.8.0_151 Maven: Name: MAVEN_HOME MAVEN_HOME: C:\Users\qureshiz\Apache Maven 3.6.0 Click Save
By Zaigham Qureshi September 12, 2019
Download Steps Goto https://jenkins.io/download/ Under Long-term Support (LTS) Click on Windows to download Jenkins Note: Jenkins in a zip file will be download Installation Steps Extract the zipped folder Double click to jenkins.msi to start the installation wizard Follow the instructions to install Jenkins Note: It will be installed under your Program Files folder Setup and Unlocking Steps Open up a command prompt window to the download directory Run the command java -jar jenkins.war Browse to http://localhost:8080 Note: Wait until the Unlock Jenkins page appears From the Jenkins console log output, copy the automatically-generated alphanumeric password Paste this password into the Administrator password field Click Continue Note: Setup and Unlocking Jenkins is completed Creating First Administrator When the Create First Admin User page appears Enter administrator user details Click Save and Finish When the Jenkins is ready page appears Click Start using Jenkins Note: Jenkins is almost ready! click Restart or Refresh the page Reference: https://jenkins.io/doc/book/installing/
By Zaigham Qureshi September 12, 2019
Steps to create a CI job: Click 'New Item' Enter jobs name in the field Note: Ideally without space as this could used to run from command prompt Select 'Maven Project' from the list Note: You would have created maven project as it helps handle dependencies General Description: You can add your description here Build Triggers Build whenever a SNAPSHOT dependency is build: checked by default Build periodically: Jenkins uses cron expressions for scheduling jobs e.g. Every 5 mins: */5 * * * * Every day at 10am: 0 10 * * * Build Root POM: enter the full path to your pom.xml e.g. C:\Users\qureshiz\ECLIPSE\Workspace\TrackerWebsite\pom.xml Goals and options: typically... clean install Enable triggering of downstream projects: checked by default Use custom workspace: enter path to your project e.g. C:\Users\qureshiz\ECLIPSE\Workspace\TrackerWebsite Post Steps Execute Windows batch command: Select this option to run the maven project from the batch file e.g. cd C:\Program Files (x86)\Jenkins java -jar jenkins-cli.jar -s http://localhost:8080/ build TrackerWebsite Post-build Actions Select 'Editable Email Notification' from the pick list Project Recipient List: enter recipient's email address Attachments: Here you can add the location to your report e.g. **/cucumber-reports/*.html Attach Build Log: Select 'Attach Build Log' Click 'Advanced Settings' Remove any existing triggers and click 'Add Trigger' Select 'Always' Keep Send To 'Recipient List' References: https://en.wikipedia.org/wiki/Cron#CRON_expression
By Zaigham Qureshi September 6, 2019
Introduction Software Testing Life Cycle (STLC) is an integral component of Application Development Lifecycle Management (ADLM). Software Testing is a distinct phenomenon during and after the development of software. The scope and methodology may vary from product to product, customer to customer, and organization to organization. There are 7 stages of Software Testing Life Cycle that should be followed as standard: Requirement Analysis : All the documents related to customer requirements and business rules that are required for software design and development should be supplied to QA. QA reviews these documents. In case of any query or any discrepancy is found then it should be noted and reported to the product owner immediately. Test Planning: The area which needs to be tested is discussed in detail. Development and testing environment are made clear to the QA. Test duration as decided by test manager based on scope of work and team strength. Test Development: Test conditions, test scenarios, test cases, test scripts, test environments are setup and prepared. The QA team discuss entry and exit criteria based on the time allotted. Prioritizing testing depending on the scope to ensure maximum coverage is attained. Test Execution: Manual : After the Software development release or build of a module, QA starts Smoke testing. If during the development the requirement has been changed on customer demand or due to any other reason, then that should be documented and reported to the QA team. Exploratory and end-2-end scenarios are also carried out at this stage to detect unusual behaviour. The order of manual tests executions should be: Functional Testing System Integration Testing Regression Testing Non-Functional Testing User Acceptance Testing Automated : Based on automation feasibility, the test cases of the following types of software testing are automated: Functional Testing Non-Functional Testing User Interface Testing Regression Testing Bug Management: Bug Reporting: A comprehensive Bug Report is prepared by the Testers and a review by testing head takes place. Before handing over this report to development team there is a thorough review of bugs list by test manager and in case of any clarification required on a bug submitted, the testing head discusses the bugs with the assigned tester. Then the bug report is released by the testing team to development team that normally points the cases to the JIRA. Bug Tracking: Discussion of bugs by tester with development team. The time required for fixing the bugs should be made clear by Development team at this stage. Regression Testing: Any changes in the software being made in respect to fix these bugs should be made clear to the QA team by the Development team. Testing team then Re-test the bugs fixed by the development team. Regression testing is also carried out at this stage to ensure that the bug fixing has not created new bugs. Release Management: The steps 4 to 6 are followed until the product has reached a stage where it can be released to customer. Test Closure: Exit criteria of the testing should be defined by the development/project manager like when all major bugs are reported and fixed. Major bugs mean the bugs that affect the client's business. Test Summary: The testing summary report is created and sent to the project team. Once the report is accepted then the release is forwarded to the dev/support team for deployment. Also, Test Monitoring: Tested release is pushed into live environment and business team carries out confidence testing to ensure it hasn’t broken anything and the basic functionality is intact. Business Checkout: Based on the confidence testing results the business decides to carry out final checks in the live environment. Note: Test Monitoring and Business Checkout are mainly carried out by the end-user but it may have some testing team involvement for monitoring purposes.
By Zaigham Qureshi August 30, 2019
Many of the times the focus is on one particular lifecycle depending on which team member is leading the show. In reality, the entire project progress has many activities and all of them are collaborative. Some organisations would even have their own ways of carrying out tasks but there are certain standards that are expected throughout Application Development Lifecycle Management (ADLM). The organisations practising Agile sometime miss the basic element in a quality application development that doesn’t just meet but exceeds customer’s expectations, is the involvement of the key members at the right time. Looking at the entire ADLM one will notice immediately the collaborative activities in the Project Life Cycle (PLC), Software Development Life Cycle (SDLC) and Software Testing Life Cycle (STLC). There are certain set of rules if put in practice then optimum results can be achieved. The different stages should be clear to eliminate any mix-ups that may lead to serious obstacles The meeting/session must be timed to avoid any disruption in the project delivery The right key member must participate and highlight any confusion or suggestion if necessary The relevant matters must be discussed and agreed The outcome must be achieved in the form of concise documentation (even electronic) Team Acronyms: SMT: Senior Management Team PO: Product idea Owner BA: Business Analyst PM: Project Manager DEV: Developer QA: Quality Assurance TS: Technical Support/Service DBA: Database Administrator BUS.: Business Document Acronyms: NPR: New Project Request BRD: Business Requirement Document TOR: Terms of Reference FRD: Functional Requirement Document TRD: Technical Requirement Document SARA: Systems Application Release Authority RTM: Requirement Traceability Matrix PSM: Project Status Meeting RCA: Root Cause Analysis
By Zaigham Qureshi August 30, 2019
Introduction In general, BDD (Behaviour-Driven Development) is set of practices that aim to reduce common “wasteful activities” in software development life cycle. Such as: Misunderstood Requirement that leads to Rework: One of the popular cause of delay in project delivery is unclear or incomplete requirements that gets misunderstood by the development team. Reluctance to Refactor Code that leads to Technical Debt: It does take time to look at somebody else code, understand and simplify without changing its behaviour. Sometime development team ends up providing a temporary patch instead of using a better approach that would take longer. Slow Hand-overs that leads to Slow feedback cycles: Hand-over between the teams easily delays the project delivery whether it’s between PO, BA, DEV, QA even business. BDD process promotes healthy collaboration and continuous communication that results in better understanding and precise requirements. Real world examples used during Amigo meetings helps in early defect detection and developing useful automation scripts. The Three Amigos In BDD environment, three voices in any project must be heard always as these three bring different set of perspective on board. Business Development Testing The three work together to discuss product development (before, during and after). One of the focus in these amigo meetings is the Acceptance Criteria. Acceptance Criteria Any amigo can write acceptance criteria but preferably, it should be conscripted by a non-technical person that bring business perspective. This cycle is repeated until each amigo is satisfied that the scenarios accurately describe what is required in a testable manner. The acceptance criteria is written in Gherkin. Gherkin Gherkin is a Domain Specific Language for writing acceptance criteria for a user story. It is created to describe behaviour without defining how to implement it. It outlines all the actions that a user must take to perform a task and the result of those actions. For example, a real-world Gherkin example might look like this: Scenario: User login Given user in on the login screen And user enters the username And user enters the password When user clicks submit button Then user is logged on This Given-When-Then is a gherkin structure to write test cases. The can be tested manually or automated by Cucumber. Cucumber Cucumber is a BDD tool for collaboration used by programmers for testing other softwares. It can execute gherkin functional test cases written in plain English. It was originally written in Ruby but today it supports variety of different programming languages. Feature File: Scenarios based on user stories, written in Gherkin text Given, When, Then, And, But Step Definition: Public Functions/Methods of the scenarios mentioned in the Feature file Runner Class: In Cucumber, the execution starts from here Using Gherkin to write scenarios makes it simple to show the flows that the product needs to have. Feature files help organise those flows into logical chunks. Cucumber scans those chunks and gives a live readout of which piece of software work and which don’t. Benefits There are many benefits but to highlight the top 5: Universally accepted language: It is understandable and easy to communicate by all the members of the team, which reduces misunderstanding Software development meets business requirements: Using the common language the intensive behaviour software development gets happy business user as the requirements are communicated with little complications Lower costs: Improving the quality of development, reduces the costs of maintenance Higher visibility: Using a universal language gives a stronger visibility throughout the project Greater Collaboration: BDD doesn’t just increases but also improves collaborations. It enables everyone involved in the project to easily engage in the product development cycle References: https://cucumber.io/docs/bdd/
Show More
Share by: