Thursday, 4 January 2018

What is Manual Testing ?

What is Manual Testing ?

Manual Testing is a process of finding out the defects or bugs in a software program. In this method the tester plays an important role of end user and verifies that all the features of the application are working correctly. The tester manually executes test cases without using any automation tools. The tester prepares a test plan document which describes the detailed and systematic approach to testing of software applications. Test cases are planned to cover almost 100% of the software application. As manual testing involves complete test cases it is a time consuming test.

The differences between actual and desired results are treated as defects. The defects are then fixed by the developer of software application. The tester retests the defects to ensure that defects are fixed. The goal of Manual testing is to ensure that application is defect & error free and is working fine to provide good quality work to customers.

  1. Procedure of Manual Testing
  2. Requirement Analysis
  3. Test Plan Creation
  4. Test case Creation
  5. Test case Execution
  6. Defect Logging
  7. Defect Fix & Re-Verification
Difference Between Error Mistake Fault Bug Failure Defect

Why is it that software system sometimes don’t work correctly? We know that people make mistakes – we are fallible.

If someone makes an error or mistake in using the software, this may lead directly to a problem – the software is used incorrectly and so does not behave as we expected. However, people also design and build the software and they can make mistakes during the design and build. These mistakes mean that there are flaws in the software itself. These are called defects or sometimes bugs or faults.

When the software code has been built, it is executed and then any defects may cause the system to fail to do what it should do (or do something it shouldn’t), causing a failure. Not all defects result in failures; some stay dormant in the code and we may never notice them.



What is an Error or Mistake?
Error is a human action that produces an incorrect result. It is deviation from actual and expected value. The mistakes made by programmer is known as an ‘Error’. This could happen because of the following reasons
  1. Some confusion in understanding the requirement of the software
  2. Some miscalculation of the values
  3. Or/And Misinterpretation of any value, etc.
It represents mistake made by people and Mistake in the program leads to error.


What is a Bug?
A Bug is the result of a coding Error or Fault in the program which causes the program to behave in an unintended or unanticipated manner. It is an evidence of fault in the program. Bugs arise from mistakes and errors, made by people, in either a program’s source code or its design. Normally, there are bugs in all useful computer programs, but well-written programs contain relatively few bugs, and these bugs typically do not prevent the program from performing its task.

What is a Defect or Fault?
A Defect is a deviation from the Requirements. A Software Defect is a condition in a software product which does not meet a software requirement (as stated in the requirement specifications) or end-user expectations. In other words, a defect is an error in coding or logic that causes a program to malfunction or to produce incorrect/unexpected result. This could be hardware, software, network, performance, format, or functionality.

What is a Failure?
Failure is a deviation of the software from its intended purpose. It is the inability of a system or a component to perform its required functions within specified performance requirements. Failure occurs when fault executes.

Thursday, 28 December 2017

The basics of MS SQL (Microsoft SQL Server) & their datatype

The basics of SQL:
What are the difference between DDL, DML and DCL commands?
  1. DDL is Data Definition Language statements. 
    • CREATE - to create objects in the database 
    • ALTER - alters the structure of the database 
    • DROP - delete objects from the database
    • TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed 
    • COMMENT - add comments to the data dictionary 
    • GRANT - gives user's access privileges to database 
    • REVOKE - withdraw access privileges given with the GRANT command
  2. DML is Data Manipulation Language statements. 
    • SELECT - retrieve data from the a database 
    • INSERT - insert data into a table 
    • UPDATE - updates existing data within a table 
    • DELETE - deletes all records from a table, the space for the records remain 
    • CALL - call a PL/SQL or Java subprogram 
    • EXPLAIN PLAN - explain access path to data 
    • LOCK TABLE - control concurrency
  3. DCL is Data Control Language statements.
    • COMMIT - save work done 
    • SAVEPOINT - identify a point in a transaction to which you can later roll back 
    • ROLLBACK - restore database to original since the last COMMIT
    • SET TRANSACTION - Change transaction options like what rollback segment to use

SQL Data Type
  1. Exact numerics
    • bigint 
    • numeric
    • bit
    • smallint
    • decimal
    • smallmoney
    • int
    • tinyint
    • money
  2. Approximate numerics
    • float
    • real
  3. Date and time
      • date
      • datetimeoffset
        • datetime2
        • smalldatetime
        • datetime
        • time
      1. Character strings
        • char
        • varchar
        • text
      2. Unicode character strings
        • nchar
        • nvarchar
        • ntext
      3. Binary strings
        • binary
        • varbinary
        • image
      4. Other data types
        • cursor
        • rowversion
        • hierarchyid
        • uniqueidentifier
        • sql_variant
        • xml
        • Spatial Geometry Types
        • Spatial Geography Types
        • table

      Thursday, 21 December 2017

      Repeat Rows N Times According to Column Value in SQL Server

      CREATE TAblE #temp
      (
      T_Name      VARCHAR(50),
      T_Times      BIGINT
      )

      INSERT INTO #temp(T_Name,T_Times) VALUES ('ASHISH',4)
      INSERT INTO #temp(T_Name,T_Times) VALUES ('PANKAJ',3)
      INSERT INTO #temp(T_Name,T_Times) VALUES ('RUPESH',2)
      INSERT INTO #temp(T_Name,T_Times) VALUES ('MANISH',5)

      SELECT t.T_Name ,t.T_Times FROM
      (SELECT  T_Name,T_Times,CAST(('<val>'+REPLICATE(T_Name+'</val><val>',T_Times-1)
      +'</val>') AS XML )AS X FROM #temp)t CROSS APPLY t.X.nodes('/val')y(z)

      drop table #temp



      Function with no Arguments but Return Value In C

      1. /*C program to check whether a number entered by user is prime or not using function with no arguments but having return value */  
      2. #include <stdio.h>  
      3. #include <conio.h>  
      4. int input();  
      5. void main(){  
      6.     int num,i,flag = 0;  
      7.     num=input();     /* No argument is passed to input() */  
      8.     for(i=2; i<=num/2; ++i){  
      9.     if(num%i==0){  
      10.         flag = 1;  
      11.         break;  
      12.     }  
      13.     }  
      14.     if(flag == 1)  
      15.         printf("%d is not prime",num);  
      16.     else  
      17.         printf("%d is prime", num);  
      18.     getch();  
      19. }  
      20. int input(){   /* Integer value is returned from input() to calling function */  
      21.     int n;  
      22.     printf("Enter positive integer to check:\n");  
      23.     scanf("%d",&n);  
      24.     return n;  
      25. }  

      The ASCII Character Set

      Character data is represented in a computer by using standardized numeric codes which have been developed. The most widely accepted code is called the American Standard Code for Information Interchange ( ASCII). The ASCII code associates an integer value for each symbol in the character set, such as letters, digits, punctuation marks, special characters, and control characters. Some implementations use other codes for representing characters, but we will use ASCII since it is the most widely used. The ASCII characters and their decimal code values are shown in Table 4.2. Of course, the internal machine representation of characters is in equivalent binary form.


      The ASCII table has 128 characters, with values from 0 through 127. Thus, 7 bits are sufficient to represent a character in ASCII; however, most computers typically reserve 1 byte, (8 bits), for an ASCII character. One byte allows a numeric range from 0 through 255 which leaves room for growth in the size of the character set, or for a sign bit. Consequently, a character data type may optionally represent signed values; however, for now, we will assume that character data types are unsigned, i.e. positive integer values, in the range 0-127.

      Looking at the table, note that the decimal values 0 through 31, and 127, represent non-printable control characters. All other characters can be printed by the computer, i.e. displayed on the screen or printed on printers, and are called printable characters. All printable characters and many control characters can be input to the computer by typing the corresponding keys on the keyboard. The character column shows the key(s) that must be pressed. Only a single key is pressed for a printable character; however, control characters need either special keys on the keyboard or require the CTRL key pressed together with another key. In the table, a control key is shown by the symbol '136. Thus, '136A is control-A, i.e. the CTRL key kept pressed while pressing the key, A.

      Notice that the character 'A' has the code value of 65, 'B' has the value 66, and so on. The important feature is the fact that the ASCII values of letters 'A' through 'Z' are in a contiguous increasing numeric sequence. The values of the lower case letters 'a' through 'z' are also in a contiguous increasing sequence starting at the code value 97. Similarly, the digit symbol characters '0' through '9' are also in an increasing contiguous sequence starting at the code value 48. As we shall see, this feature of the ASCII code is quite useful.

      It must be emphasized that a digit symbol is a character type. Digit characters have code values that differ from their numeric equivalents: the code value of '0' is 48, that of '1' is 49, that of '2' is 50, and so forth. The table shows that the character with code value 0 is a control character, '136@, called the NULL character. Do NOT confuse it with the digit symbol '0'. Remember, a digit character and the equivalent number have different representations.

      Besides using single quotes, it is also possible to write character constants in terms of their ASCII values in a C program, using either their octal or their hexadecimal ASCII values. In writing character constants, the octal or hexadecimal value follows the escape character, , as shown in Table 4.3. At most three octal digits or at most two hexadecimal digits are needed. Note, after the escape backslash, a leading zero should not be included in writing octal or hexadecimal numbers

      Wednesday, 13 December 2017

      C# Calculate Directory (Folder) & Sub Directory (Sub Folder) File Size

       public static long DirSize(DirectoryInfo d)
          {
              long size = 0;
              // Add file sizes.
              FileInfo[] fis = d.GetFiles();
              foreach (FileInfo fi in fis)
              {
                  size += fi.Length;
              }
              // Add subdirectory sizes.
              DirectoryInfo[] dis = d.GetDirectories();
              foreach (DirectoryInfo di in dis)
              {
                  size += DirSize(di);
              }
              return size;
          }



       String fldName1 = "~/" +   hfFileLocation.Value;
                  string path = Server.MapPath(fldName1);
      double fsize = 0.00;
      fsize = DirSize(new DirectoryInfo(path));
      Response.Write(fsize );
      double fsize_MB = 0.00;
       fsize_MB = fsize / (1024 * 1024);
      Response.Write("File Size in MB : "+fsize_MB );


      Tuesday, 12 December 2017

      How to Integrate “No CAPTCHA reCAPTCHA” in Your Website

      Note:
      First, we need an API key, so head on over to https://www.google.com/recaptcha/admin. To gain access to this page you’ll need to be logged into a Google account. You’ll be asked to register your website, so give it a suitable name, then list domains (for example ashishsrivastava.info) where this particular reCAPTCHA will be used. Subdomains (such as blog.ashishsrivastava.info) are automatically taken into account


      Code :
      Example 1 :

      Create Class
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Web;
      using Newtonsoft.Json;
      /// <summary>
      /// Summary description for ReCaptchaClass
      /// </summary>
      public class ReCaptchaClass
      {
          public static string Validate(string EncodedResponse)
          {
              var client = new System.Net.WebClient();

              string PrivateKey = "Your KEY";

              var GoogleReply = client.DownloadString(string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", PrivateKey, EncodedResponse));

              var captchaResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ReCaptchaClass>(GoogleReply);

              return captchaResponse.Success;
          }

          [JsonProperty("success")]
          public string Success
          {
              get { return m_Success; }
              set { m_Success = value; }
          }

          private string m_Success;
          [JsonProperty("error-codes")]
          public List<string> ErrorCodes
          {
              get { return m_ErrorCodes; }
              set { m_ErrorCodes = value; }
          }


          private List<string> m_ErrorCodes;
      }

      Using webservice

      protected static string ReCaptcha_Key = "Your Key";
          protected static string ReCaptcha_Secret = "Your Secret";

          [WebMethod]
          public string VerifyCaptcha(string response)
          {
              string url = "https://www.google.com/recaptcha/api/siteverify?secret=" + ReCaptcha_Secret + "&response=" + response;
              return (new WebClient()).DownloadString(url);
          }


      HTML PAGE
      JS
      <script src="https://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>
      or
      <script src='https://www.google.com/recaptcha/api.js'></script>

      <div class="g-recaptcha" data-sitekey="6LfWVw8UAAAAAFioLPix8GJ4dJC83PC6V7Kb26Fd"></div>

      Validate using class

       string EncodedResponse = Request.Form["g-Recaptcha-Response"];
                 
                  bool IsCaptchaValid = (ReCaptchaClass.Validate(EncodedResponse) == "true" ? true : false);

                  if (IsCaptchaValid)
                  {
      }
       else
                  {
                    /
                      ScriptManager.RegisterStartupScript(this, this.GetType(), "msg", "javascript:alert('Please verify captcha');", true);
                   
                  }

      Validate using Web Service
      using Newtonsoft.Json;

      MyService objMyService = new MyService();

       string EncodedResponse = Request.Form["g-Recaptcha-Response"];
                  String json = objMyService.VerifyCaptcha(EncodedResponse);

                  dynamic stuff = JsonConvert.DeserializeObject(json);
         if (stuff.success == "True")
      {
      }
                  else
                  {
                   
                     ScriptManager.RegisterStartupScript(this, this.GetType(), "msg", "javascript:alert('Please verify captcha');", true);
                   

                  }

      Upload valid file in C#

          protected bool CheckFileExtandLength(HttpPostedFile HtmlDocFile)     {         try         {             Dictionary<string, byte[]>...