a:6:{i:0;s:8398:"				<section id="middle">
				<div class="wrap" id="bodyFormatNT">
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls detail_pm_15"><!--MIDDLE ROW1 COL-2 STARTS-->
				
									<div class="h1"><h1>Job openings for testing engineer in bangalore</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.diyahr.com/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.diyahr.com/current-opening.htm" title="Current Opening">Current Opening</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Job openings for testing engineer in bangalore</p>
									<div class="pt10px">
				<div class="xxxlarge fw6 dif">Test Architect -- Bangalore</div>
									<p class="mt7px fw6">Bangalore</p>
									
				<br>
				<p class="aj mt7px">A deep technical specialist focusing on design, implementation, use, enablement of the testing function and so the overall development function as well.<br />
Possess broad awareness of testing approaches, practices and techniques in order to help design and deliver the overall testing methodology used by the team.<br />
Monitor the effectiveness of the testing function and bring about improvements through insights gained via analysis at all stages of the DevOps process.<br />
Identify what tools and technologies can be implemented, aligning with that already used across the broader development function and in-line with the skill set of the team.<br />
Design and develop the test automation framework, harnesses and code libraries, and Service Automation to enable the teams to both use and enhance them.<br />
Provide technical know-how, documentation and training to test and other business functions<br />
Stay up to speed on process, practice and technology developments to ensure they are brought in-house and enhance the solutions applied to the testing problems<br />
Review Feature team testing automation<br />
Review testing and deployment toolsets and configurations<br />
Maintain Error logging system.<br />
<br />
Desired Skills and Experience<br />
•	Proven Agile and DevOps Testing Architecture Experience <br />
•	Solid experience in Telecom Domain / telecom and Salesforce, Vlocity & Amdocs knowledge<br />
•	Hands on experience on preparing E2E test strategy, business testing strategy for a complex program<br />
•	Proven Experience in assessing virtualization opportunities and showcase business value benefits<br />
•	hands on assessment of shift left testing and automation feasibility <br />
•	Experience on running test planning workshops, identifying test data requirements <br />
•	Excellent stakeholder relationship management<br />
•	Excellent analysis skills<br />
•	Excellent communication Skills<br />
•	Can Demonstrate being a quick learner<br />
•	Proven Systems thi<br />
•	Maintain Service Catalogue Architecture<br />
•	Assist and Guide both CoE E2E test engineers and Feature team test Engineers</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">10 - 15 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 15  Lac  To   20 Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">IT Software - Others</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Other Bachelor Degree</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Test Architect</span>
												<span class="bdr dib p2px10px mr5px mt2px">Agile</span>
												<span class="bdr dib p2px10px mr5px mt2px">Devops Engineer</span>
												<span class="bdr dib p2px10px mr5px mt2px">CoEE2E</span>
												<span class="bdr dib p2px10px mr5px mt2px"> testing engineer</span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w195 alpha75 p5px vat">Company Name</td>
						<td class="p5px vat"><p class="dif b">Client of Diya HR</p></td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">It is a leading MNC Software Company. Having their presence across globe.</td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:contact@diyahr.com"> contact@diyahr.com </a></td>
						</tr>
										
					</table>
									
				<br />
				
									
					<div class="bdrT pt20px">
					<form name="frmvacdetail" method="post" action="enquiry-form-10009.htm">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="APPLY NOW !" />
					<input type="hidden" name="catalog_mi" value="314332">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="903863"><input type="hidden" name="subject" value="Applied for Test Architect -- Bangalore">
					</form>
					</div>
			
									</div>
				</div>			
				
				<!--MIDDLE ROW1 COL-2 ENDS--> 
				</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Location</h2>
				</div>
				<div class="ic">
				<div class="mt10px">
									<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bangalore.htm" title="Jobs in Bangalore">Bangalore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-mumbai.htm" title="Jobs in Mumbai">Mumbai</a> <b class="alpha50 bn small">(1)</b></span>
											<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-afghanistan.htm" title="Jobs in Afghanistan">Afghanistan</a> <b class="alpha50 bn small">(2)</b></span>
										</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Functional Area</h2>
				</div>
				<div style="padding:10px 18px;" class="ic">
									<p class="mb5px "><span class="fr">(2)</span><a href="jobs-in-engineering-technical-rd-fid.htm" title="Engineering / Technical / R&D Jobs">Engineering / Technical / R&D</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-sales-marketing-fid.htm" title="Sales/Marketing Jobs">Sales/Marketing</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-web-designing-programming-fid.htm" title="IT Software - Others Jobs">IT Software - Others</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxati...</a></p>
									
				</div>
				</div>
				</div>
				
				</div>
				<!--MIDDLE ROW1 COL-1 ENDS-->
				
				<!--MIDDLE ROW1 ENDS--> 
				</div>
				<br><br>
				</div>
				</section>
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
					<script>
	$.ajax({
	  url: "https://www.placementindia.com/job_posting_view.php",
	  type: "POST",
	  dataType: 'html',
	  data: {job_view_id: 'bXpLK0cyNUJEWmQreTJHYXdzVjR3Zz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:76:"Job openings for testing engineer in bangalore | Diya HR Consultants Pvt Ltd";i:2;s:208:"Test Architect -- Bangalore Jobs,Test Architect -- Bangalore Jobs in Bangalore,Test Architect -- Bangalore Vacancy in Bangalore,Test Architect -- Bangalore jobs in India,IT Software - Others jobs in Bangalore";i:3;s:291:"Apply for Test Architect -- Bangalore Jobs in Bangalore India - Test Architect -- Bangalore Vacancy  in IT Software - Others field with 10 to 15 years Work Experience, Key Skills are Test Architect,Agile,Devops Engineer,CoEE2E, testing engineer, IT Software - Others jobs in Bangalore  India";i:4;s:2743:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Test Architect -- Bangalore",
		  "baseSalary": " 15  Lac  To   20 Lac ",
		  "description": "A deep technical specialist focusing on design, implementation, use, enablement of the testing function and so the overall development function as well.
Possess broad awareness of testing approaches, practices and techniques in order to help design and deliver the overall testing methodology used by the team.
Monitor the effectiveness of the testing function and bring about improvements through insights gained via analysis at all stages of the DevOps process.
Identify what tools and technologies can be implemented, aligning with that already used across the broader development function and in-line with the skill set of the team.
Design and develop the test automation framework, harnesses and code libraries, and Service Automation to enable the teams to both use and enhance them.
Provide technical know-how, documentation and training to test and other business functions
Stay up to speed on process, practice and technology developments to ensure they are brought in-house and enhance the solutions applied to the testing problems
Review Feature team testing automation
Review testing and deployment toolsets and configurations
Maintain Error logging system.

Desired Skills and Experience
•	Proven Agile and DevOps Testing Architecture Experience 
•	Solid experience in Telecom Domain / telecom and Salesforce, Vlocity & Amdocs knowledge
•	Hands on experience on preparing E2E test strategy, business testing strategy for a complex program
•	Proven Experience in assessing virtualization opportunities and showcase business value benefits
•	hands on assessment of shift left testing and automation feasibility 
•	Experience on running test planning workshops, identifying test data requirements 
•	Excellent stakeholder relationship management
•	Excellent analysis skills
•	Excellent communication Skills
•	Can Demonstrate being a quick learner
•	Proven Systems thi
•	Maintain Service Catalogue Architecture
•	Assist and Guide both CoE E2E test engineers and Feature team test Engineers",
		  "educationRequirements": "Other Bachelor Degree",
		  "experienceRequirements": "10 - 15 Years",
		  "industry": "IT Software - Others",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Karnataka",
		      "addressRegion": "Bangalore"
		    }
		  },
		 "qualifications": "Other Bachelor Degree",
		     "skills": "Test Architect,Agile,Devops Engineer,CoEE2E, testing engineer"
		  }
		</script>
		";i:5;N;}